标 题: 【原创】解决ilasm.exe无法编译 IL代码一例
作 者: tease
时 间: 2009-09-05,15:05:46
链 接: http://bbs.pediy.com/showthread.php?t=97204
众所周知,ildasm.exe和ilasm.exe是破解DONET常用工具之一,但是有时候我们会发现有的程序可以用ildasm反编译,却无法用ilasm编译回去。其中部分是由于包含非托管代码而引起的,这种混合类的程序用ilasm是100%不会成功的,本文也不会讨论这种情况。或许更多的时候你会遇到这样的情况:
错误是:Failed to open managed resource file 'xxx.resource'这类程序大多是被{SA}混淆过的。为什么会找不到这些资源文件呢?结果我们发现这些资源文件根本没有被反编译程序导出来,于是我们用Reflector手动来导出看看。
结果提示无效的文件名。原来程序经过混淆后,将资源名更改成了windows不支持的文件名,那么当然无法导出这些文件了。那么解决此问题的办法就是我们可以在导出的时候将其更改为一个合法的新资源文件名就行了。但是不要忘了,我们同时还应该在导出后的IL代码中将调用的旧资源名的地方也要修改成新的资源文件名。代码方面可以通过GetManifestResourceNames()和GetManifestResourceStream(xxxx)实现。但是为了把傻瓜精神进行到底,我特别写了一个程序来方便大家。
第一个选项是自动导出,自动修改IL代码,正常情况下,被导出的IL代码是可以被直接编译成功的,但是程序毕竟是程序,不可能预见到所有的突发情况。那么大家可以使用第二或者第三个选项自己导出资源文件,自己修改IL代码了。
耳听为虚,眼见为实,我们拿刚才那个无法编译回去的程序试一试。
导出IL代码后,我们再用ilasm.exe编译回去看看。
怎么样,还不错吧。
用Reflector打开看看。资源名已经被修正了。
附件提供了不能被反编译回去的crackme。
如果有更好的意见,欢迎一起讨论。另外这个程序是用WPF写的,需要安装DONET Framework3.5 SP1或以上版本。
http://bbs.pediy.com/attachment.php?attachmentid=33525&d=1256485356
解决ilasm.exe无法编译 IL代码一例
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Python与家国天下
豌豆花下貓
2019-02-24 22:22:40
windows下配置php
jason1982
2019-02-24 12:57:09
windows2003+CA+S3300+802.1X
qyh282110204
2019-02-23 14:05:36
win7如何以管理员身份登录
wwtwwttc
2019-02-23 14:05:22
windows系统常用快捷键
LQ_112
2019-02-23 13:47:18
Antigen for exchange 部署+评测
coinking
2019-02-23 13:36:48
windows2003前言
starruning
2019-02-23 13:33:37
windows server 2008 登录中 取消CTRL+ALT+DEL
菜鳥小苗
2019-02-23 13:31:29
windows server 2008中实现颗粒化的密码策略
菜鳥小苗
2019-02-23 13:31:29
教你如何隐藏windows系统账户
幽鳴草
2019-02-23 13:28:10
linux下挂载windows NFS文件共享出错
chefei0824
2019-02-23 13:27:20
win2000/xp自动关机技巧
hack_888
2019-02-23 13:24:59
计算机十二种常用密码破解法
lichenjing9
2019-02-23 14:06:52
Web服务器测试和监控工具及组件介绍
znlingdong
2019-02-23 13:29:59