申请会员ID:小政【冒充他人作品申请】
1、申 请 I D :小政2、个人邮箱:1520765870@qq.com
3、原创技术文章:net程序破解
今天同学给我发了个百度文库下载器让我看下,要注册,习惯性的先抄起OD,不过载入后没断下来程序直接跑起来了。。。看了下原来是.net程序撒,一直没搞过这玩意,网上找了下资料,发现也不是很难。
程序是这样子的,我擦CSDN传不了图片?
反正就是这样,拿Reflector打开找到关键位置
view plaincopyprint?
[*]private void Button9_Click(object sender, EventArgs e)
[*]{
[*] try
[*] {
[*] RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\老张百度文库下载器", true);
[*] key.SetValue("注册码", this.TextBox3.Text.Trim());
[*] Module1.code2 = this.TextBox3.Text.Trim();
[*] key.Close();
[*] key = null;
[*] Module1.IsCopyRight = Conversions.ToBoolean(Module1.Get_zccode(Module1.code1, Module1.code2));
[*] if (Module1.IsCopyRight)
[*] {
[*] this.TabPage3.Text = "软件注册(已注册)";
[*] this.Button9.Enabled = false;
[*] this.Button8.Enabled = false;
[*] this.Button10.Enabled = false;
[*] this.TextBox3.ReadOnly = true;
[*] Interaction.MsgBox("注册成功,感谢您使用正版软件!", MsgBoxStyle.OkOnly, null);
[*] }
[*] else
[*] {
[*] this.TabPage3.Text = "软件注册(未注册)";
[*] Interaction.MsgBox("注册失败,请检查您的注册码或与软件提供商联系!", MsgBoxStyle.OkOnly, null);
[*] }
[*] }
[*] catch (Exception exception1)
[*] {
[*] ProjectData.SetProjectError(exception1);
[*] Exception exception = exception1;
[*] Interaction.MsgBox(exception.Message, MsgBoxStyle.OkOnly, "系统提示");
[*] ProjectData.ClearProjectError();
[*] }
[*]}
[*]
[*] 可以看到 Module1.IsCopyRight = Conversions.ToBoolean(Module1.Get_zccode(Module1.code1, Module1.code2));
[*] if (Module1.IsCopyRight)
private void Button9_Click(object sender, EventArgs e){ try { RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\老张百度文库下载器", true); key.SetValue("注册码", this.TextBox3.Text.Trim()); Module1.code2 = this.TextBox3.Text.Trim(); key.Close(); key = null; Module1.IsCopyRight = Conversions.ToBoolean(Module1.Get_zccode(Module1.code1, Module1.code2)); if (Module1.IsCopyRight) { this.TabPage3.Text = "软件注册(已注册)"; this.Button9.Enabled = false; this.Button8.Enabled = false; this.Button10.Enabled = false; this.TextBox3.ReadOnly = true; Interaction.MsgBox("注册成功,感谢您使用正版软件!", MsgBoxStyle.OkOnly, null); } else { this.TabPage3.Text = "软件注册(未注册)"; Interaction.MsgBox("注册失败,请检查您的注册码或与软件提供商联系!", MsgBoxStyle.OkOnly, null); } } catch (Exception exception1) { ProjectData.SetProjectError(exception1); Exception exception = exception1; Interaction.MsgBox(exception.Message, MsgBoxStyle.OkOnly, "系统提示"); ProjectData.ClearProjectError(); }} 可以看到 Module1.IsCopyRight = Conversions.ToBoolean(Module1.Get_zccode(Module1.code1, Module1.code2)); if (Module1.IsCopyRight) view plaincopyprint?
[*]
就是计算注册码然后设置IsCopyRight布尔变量的值,将判断语句条件改为!Moudle.IsCopyRight就可以了。。。懒得看算法,其实进去看了也不难。。
怎么改呢,切换到IL
view plaincopyprint?
[*]L_005d: stsfld bool 老张百度文库下载器.Module1::IsCopyRight
[*] L_0062: ldsfld bool 老张百度文库下载器.Module1::IsCopyRight
[*] L_0067: brfalse.s L_00b8
L_005d: stsfld bool 老张百度文库下载器.Module1::IsCopyRight L_0062: ldsfld bool 老张百度文库下载器.Module1::IsCopyRight L_0067: brfalse.s L_00b8
计算的值出栈到IsCopyRight,然后入栈判断是否为false来跳转,我们将brfalse.s改为brtrue.s就可以了。
打开ildasm找到对应的位置,显示字节
view plaincopyprint?
[*]IL_005d:/* 80 | (04)00004C */ stsfld bool '老张百度文库下载器'.Module1::IsCopyRight
[*]IL_0062:/* 7E | (04)00004C */ ldsfld bool '老张百度文库下载器'.Module1::IsCopyRight
[*]IL_0067:/* 2C | 4F */ brfalse.sIL_00b8
[*]IL_0069:/* 02 | */ ldarg.0
IL_005d:/* 80 | (04)00004C */ stsfld bool '老张百度文库下载器'.Module1::IsCopyRight IL_0062:/* 7E | (04)00004C */ ldsfld bool '老张百度文库下载器'.Module1::IsCopyRight IL_0067:/* 2C | 4F */ brfalse.sIL_00b8 IL_0069:/* 02 | */ ldarg.0
特征码2C 4F 02,本来我天真的以为,这玩意改下跳转地址也可以的,我打算是将4F(是跳转的偏移,错误跳到的标号处)改为01,但是没成功。
正确的是将2C改为2D,不懂的看下IL指令,ue中修改后保存运行,随便输入一个注册码,注册成功
http://blog.csdn.net/evi10r/article/details/7381262
这是你? 表示已醉! Hmily 发表于 2015-9-1 11:45
http://blog.csdn.net/evi10r/article/details/7381262
这是你?
H大亮了,哈哈哈。原文章找出来了 抄的抄的,最后几行都没排版。 Hmily 发表于 2015-9-1 11:45
http://blog.csdn.net/evi10r/article/details/7381262
这是你?
偷别人博客的文章吧?原文是12年的。。。 偷得别人的,上面的“CSDN传不了图片”都还没删。。 我也是看醉了啊 H大怎么那么叼?人家抄袭的你也能找到原文{:301_1002:} 起码要偷国外的呀
页:
[1]
2