.net 初破 心得
本帖最后由 hqm1234 于 2011-8-15 15:37 编辑今天早上闲来无事,看来下52的暑假cm(上),拿来其中一个cm,用.net写的,由于之前完全没有接触过.net的破解方面,今天早上花了一上午终于把这个暴力破解了。下面写下我的心得体会。
1.先看看需要用的工具Reflector.exe(用于查看反编译的c#代码,不过这个cm比较简单可以不用)
ildasm 把.net程序翻译成il文件(具体什么是il文件,自己搜)
ilasm 把.il文件编译成exe文件(另外上面反编译出来的几个文件必须需要才能编译成exe文件,不然编译不成功)
另外需要了解il指令,http://www.cnblogs.com/flyingbirds123/archive/2011/01/29/msil_ref.html
2.现在先来看具体步骤
先用Reflector.exe打开,基本上可以看出这个cm的思路,由于程序比较简单,可以很容易就逆出他的算法,由于要爆破,继续往下走。
下面我们来看下如何爆破
先用ildasm反编译,,得到一系列文件
用010edit打开il文件,这么多,挨个看太麻烦了。由上面可以看到cm成功或者失败 都是用messgebox显示的,所以直接搜messgebox果然有,重点就是下面这段代码了。
IL_0048:brtrue.s IL_0080
IL_004a:nop
IL_004b:ldarg.0
IL_004c:ldfld class System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox1
IL_0051:ldc.i4.0
IL_0052:callvirt instance void System.Windows.Forms.Control::set_Visible(bool)
IL_0057:nop
IL_0058:ldarg.0
IL_0059:ldfld class System.Windows.Forms.TextBox WindowsFormsApplication1.Form1::textBox2
IL_005e:ldc.i4.0
IL_005f:callvirt instance void System.Windows.Forms.Control::set_Visible(bool)
IL_0064:nop
IL_0065:ldarg.0
IL_0066:ldfld class System.Windows.Forms.Label WindowsFormsApplication1.Form1::label3
IL_006b:ldc.i4.1
IL_006c:callvirt instance void System.Windows.Forms.Control::set_Visible(bool)
IL_0071:nop
IL_0072:ldstr bytearray (4F 00 4B 00 02 30 53 00 75 00 63 00 63 00 65 00 // O.K..0S.u.c.c.e.
73 00 73 00 ) // s.s.
IL_0077:call valuetype System.Windows.Forms.DialogResult System.Windows.Forms.MessageBox::Show(string)
IL_007c:pop
IL_007d:nop
IL_007e:br.s IL_008b
IL_0080:ldstr bytearray (4E 00 6F 00 02 30 66 00 61 00 69 00 6C 00 65 00 // N.o..0f.a.i.l.e.
64 00 ) // d.
IL_0085:call valuetype System.Windows.Forms.DialogResult System.Windows.Forms.MessageBox::Show(string)
IL_008a:pop
IL_008b:ret
两个messagebox肯定就是我们需要爆破的地方了,通常就是改跳转,结合Reflector反编译的,我们可以得出IL_0085这个call就是显示成功crack的地方
在往上看到IL_0048:brtrue.s IL_0080,查询il指令,
brtrue.s 如果 value 为 true、非空或非零,则将控制转移到目标指令(短格式)
改成IL_0048:brfalse.s IL_0080,保存。
调用ilasm编译 命令为(ilasm 求爆破)默认编译成exe,
OK 爆破成功!
这个.net程序,没有用到其他的加密措施,如加壳,混淆代码等,故比较简单,希望以上的一点心得对大家有帮助,
。。。貌似这个cm破解心得有人发了,之前没发现,囧~~~~~~~~
谢谢 第一次发贴 hqm1234 发表于 2011-8-15 15:31 static/image/common/back.gif
今天早上闲来无事,看来下52的暑假cm(上),拿来其中一个cm,用.net写的,由于之前完全没有接触过.net的 ...
不错,感谢提供的思路和资料~ 先顶 再看 谢LZ了 还是比较喜欢用SAE直接修改..方便多
转IL 只在非常时期 嘿嘿 LS 我也是第一次破.net
想请教下SAE是什么东东 Simple Assembly Explorer (SAE) 用来破解和汉化。net 常用 看个人喜好~ http://code.google.com/p/simple-assembly-explorer/ 加个地址上去吧
页:
[1]
2