资源描述:
《第27课 .net程序破解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第27课.net程序破解.net程序破解主要使用的工具是.netReflector。本教程所用的版本为4.2.43.0。.net程序要想运行起来,系统必须装有.netFrameWork环境,目前有1.1和2.0两个版本。有6种语言可供切换、选择。你可以选择你熟悉的编程语言。IL是中间语言,可读性差。但修改时要通过它来定位字节码,修改指令,最后通过16进制编辑器(ultraedit或winhex)来达成心愿。微软的Ildasm只能反汇编为IL语言,可读性差,因此,破解时不如.netReflector好用。另外
2、,IDApro也是破解.net程序不错的工具。Ildasm的使用参见附录1,IL语言中各函数的含义参见附录2,仔细研读,你就会熟悉il语言,破解起来游刃有余。〔例1〕ForUIC运行程序,如图:就是弹出个窗口,说未注册.netReflector载入程序,如图:目标程序总在最下方,像剥粽子一样的层层剥开。注意:其中,References不是我们关心的,不必展开。双击Main程序,在右边可以看到代码,我选的是VB。如图:你若稍微懂一点编程,很容易看懂。程序进行了一个比较,13和23比,不相等,因此,永远弹出注册
3、失败。因此,有3种改法:(1)13改为23(2)23改为13(3)num1不等于23,不相等则跳,bne改为beq然后,切换到IL语言,代码如下:.methodpublichidebysigstaticvoidMain()cilmanaged{.entrypoint.maxstack2.localsinit([0]int32num1)L_0000:ldc.i4.s13L_0002:stloc.0L_0003:ldloc.0L_0004:ldc.i4.s23L_0006:bne.un.sL_001aL_000
4、8:ldstr"Registrato!"L_000d:ldstr"Crackme"L_0012:call[System.Windows.Forms]System.Windows.Forms.DialogResult[System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string,string)L_0017:popL_0018:br.sL_002aL_001a:ldstr"Deviregistrarmi!:-("L_001f:ldstr"Cr
5、ackme"L_0024:call[System.Windows.Forms]System.Windows.Forms.DialogResult[System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string,string)L_0029:popL_002a:ret}光标停在L_0000:ldc.i4.s13显示指令1f而13的16进制为0d光标停在L_0002:stloc.0显示指令0a用ILDasm察看,更加清晰。注意:“视图”菜单中,将
6、“显示字节”打上对号,如图:.methodpublichidebysigstaticvoidMain()cilmanaged//SIG:000001{.entrypoint//方法在RVA0x2050处开始//代码大小43(0x2b).maxstack2.localsinit(int32V_0)IL_0000:/*1F
7、0D*/ldc.i4.s13IL_0002:/*0A
8、*/stloc.0IL_0003:/*06
9、*/ldloc.0IL_0004:/*1F
10、17*/ldc.i4.s23IL_0006:/*
11、33
12、12*/bne.un.sIL_001aIL_0008:/*72
13、(70)000001*/ldstr"Registrato!"IL_000d:/*72
14、(70)000019*/ldstr"Crackme"IL_0012:/*28
15、(0A)00000E*/callvaluetype[System.Windows.Forms]System.Windows.Forms.DialogResult[System.Windows.Forms]System.Windows.Forms.MessageBox::Show
16、(string,string)IL_0017:/*26
17、*/popIL_0018:/*2B
18、10*/br.sIL_002aIL_001a:/*72
19、(70)000029*/ldstr"Deviregistrarmi!:-("IL_001f:/*72
20、(70)000019*/ldstr"Crackme"IL_0024:/*28
21、(0A)00000E*/callvaluetype[System.Windows.For