欢迎光临 Rick 's BLOG
日志首页  | C# .Net编程  | 原创作品  | 生活点滴  | C\C++相关  | 多媒体相关※ERMP  | VB相关  | 其它运维与编程  |  留言簿
IL字节码解码工具更新 V2.0 #pragma 指示符应用举例
未知  实现自动脱壳被加密的Net程序集
[ 发布日期:18年前 (2006-10-28) ]   [ 来自:rick@博客园 ] [分类:原创作品]
本次脱壳的测试对象是CodeLib 2 V14.9.2468.42911 更新日期是2006-10-5 目前的最新版本。

运行脱机程序到如下界面:



选中列表中的第二项,codelib.exe,选择一个保存路径,点击dump按钮,即可完成脱壳。
脱壳完的程序保存到codedump.exe。

注意这个文件是直接dump脱壳的结果,不能直接运行。
使用ildasm 反编译,然后打开il文件
查找 IL_0000:  call       void InFaceMaxtoCode::Startup()
替换为 //IL_0000:  call       void InFaceMaxtoCode::Startup()
即取消对 maxtocode 运行库的引用。
然后运行 ilasm 编译成exe文件。
放在codelib的安装目录中即可正常运行了。


下载地址:codelib_dumped.rar
对 codelib注册算法有兴趣的可以下载回去研究研究。
注意:先重命名安装目录中的codelib.exe,然后解压缩放进去就可以运行了。
这个程序里面还有很多anti,不过都不重要了,可以通过直接修改il来去掉anti。

脱壳机暂时不准备公开,DRT小组内部共享。
这次先简单介绍一下原理,下次有机会再详细介绍一下如何实现通用的内存程序集dumper。
这个dumper首先按照 pe dumper的原理,从内存里面dump出pe文件。
然后在在pe文件中增加一个只读的锻。用来放dump出来的il码。
通过前面几篇帖子介绍的方法,利用net 2.0的新特性取道方法的methodbody,
然后重建header,datatable,将结果存入新锻中,再修改相应method的rva指向新的header。

对所有的方法都这样处理一遍,即可完成dump。

这种方式对压缩壳,加密壳都有效。
引用通告地址 (0):
复制引用地址https://www.rickw.cn/trackback/146
复制引用地址https://www.rickw.cn/trackback/146/GBK
[ 分类:原创作品  | 查看:7478 ]

暂时没有评论,快来发表一个评论吧。
发表评论
作者:   用户:[访客] 
评论:

表  情
禁止表情 | 禁止UBB | 禁止图片 | 识别链接
对不起,你没有权限上传附件!
验证:
 
PoweredBy R-Blog V1.00 © 2004-2024 WWW.RICKW.CN, Processed in second(s) , 7 queries    京ICP备17058477号-5