.net破解示例(转)
一、准备 需要的软件: Ildasm.exe:用来将dll,exe编译为IL文件 ilasm.exe:用来将IL文件编译回来dll或exe 这2个工具装好VS就有了(VS2005的可以处理2003的,反过来不行) 文本处理工具: UltraEdit :http://www.crsky.com/soft/1469.html EmEditorPro:http://www.crsky.com/soft/4278.html 根据不同情况需要使用上面不同的工具 其他工具: Reflector.exe :http://www.pediy.com/tools/dotnet.htm xenocode FOX: http://www.pediy.com/tools/dotnet.htm 修改过的Ildasm:http://www.pediy.com/tools/dotnet.htm 平时可以使用Reflector,有些特别的使用Fox方便。当处理一些版权保护的或经过特殊混淆的.net1.X时需要使用修改过的Ildasm 上面这些东东在用到的时候再具体说 .net的通常破解流程大致就是: 1,使用ildasm编译目标文件(exe/dll)为IL 2,去掉强名,使用ilasm反编译回来看看是否可正确运行 如果可以运行,那么基本都可以搞定(步骤3);如果不可以(步骤4) 3,查找IL文件中的限制进行修改再次反编译直到破解完成 4,查看IL文件是否还有其他限制找到并剔除 如果还是不能运行可能该死的东东不能使用通常的方法破解,具体问题具体分析了 二、示例 选择一个日程控件(下载:http://www.mediachase.com ) 安装、运行后看看他的试用限制是怎么体现的 我们随便找一个页面运行看看效果Home/fullsample.aspx 我们看到,当没有注册时会出现警示语 (有些软件的试用提示是随机出现的,但不管怎么说,我们要破解一个软件时第一步就是要了解这个软件的限制是什么) 接下来我们尝试看看是否可以反编译 打开Ildasm.exe编译为IL文件 (Ildasm.exe默认在C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin ) 我们用EmEditor打开IL文件并删除强名 删除强名,是使用反编译方法破解的必须步骤,只要使用了Ildasm编译就必须删除强名 灰色部分就是强名,全部删除并保存 接下来将IL编译回DLL 进入VS2005命令行(如果直接用cmd进入DOS因为环境变量的问题可能需要输入全路径) 切换到IL目录执行 ilasm /dll /resource=Mediachase.Web.UI.WebControls.res Mediachase.Web.UI.WebControls.il 执行成功(但不表示该控件可通过此方法破解) 我们还是回到VS刷新刚才打开的页面,发现没有出现错说,这基本上说明该控件是可以用这种方法破解的 接下来我们就要进入爆破点查找阶段 EmEditor打开IL文件 查找关键字,我们输入“This is” 找到了2个结果
接下来定位一下这个是在那里掉用的,我们往下翻页看到 是在Calendar::RenderContents中 打开Reflector.exe,读取DLL并定位 ,一共2处,并且都在同一个过程内 我们发现2个有个共同点,都是根据变量IsDemoVersion来决定是否输出警示语 那么我们现在有2条路 1直接删除警示语,那么自然就OK了 2,修改变量IsDemoVersion 我们选择2 点击Me.IsDemoVersion跳转 ,鼠标右击-Analyze 查看所有调用IsDemoVersion变量的地方 发现只有两处,一个是我们刚才停留的地方,还有一处,我们看看 我们看到,当实例初始化的时候IsDemoVersion被赋值True 并且我们也通过之前的不走步骤得出只有这一个地方是改变IsDemoVersion的 所以,我们只要把IsDemoVersion改为False就大功告成了 最后操刀 打开EmEditor并定位 找到对应位置,我们只要把True改为False(IL中是ldc.i4.1改为ldc.i4.0) 保存IL 重新dos编译 再次刷新页面 警示语不见了 总结:
|



浙公网安备 33010602011771号