好友
阅读权限25
听众
最后登录1970-1-1
|
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。
本帖最后由 blsn3548 于 2012-4-30 15:50 编辑
别的看不懂,只好选了个.net的下手,直接上代码吧。.net没保护是很容易的:(
private void Form1_Load(object sender, EventArgs e)
{
if (File.Exists("52.key"))
{
FileStream stream = new FileStream("52.key", FileMode.Open, FileAccess.Read);
StreamReader reader = new StreamReader(stream);
string s = reader.ReadToEnd();
byte[] bytes = Encoding.Default.GetBytes(s);
byte[] buffer2 = Encoding.Default.GetBytes("520.1234");
reader.Close();
stream.Close();
if ((bytes[4] == buffer2[3]) && (bytes[2] == buffer2[6]))
{
this.btnOk.Enabled = true;
}
}
}
构造“52.key”文件在根目录,内容为:XX3X.(X可以为任意值)。到此确定按钮可以使用。
接下来的代码是计算序列号的:
private void button1_Click(object sender, EventArgs e)
{
string str = textBox1.Text.Trim();
//string str2 = this.txtPass.Text.Trim();
if ((str != "") || (str.Length >= 8))
{
string s = str.Substring(1, 4);
string str4 = str.Substring(6, 1);
byte[] bytes = Encoding.Default.GetBytes(str4);
byte[] buffer2 = Encoding.Default.GetBytes(s);
string str5 = "";
for (int i = 0; i < buffer2.Length; i++)
{
str5 = str5 + buffer2;
}
textBox2.Text = string.Concat(new object[] { str5, s, str4, bytes[0] });
}
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|