標 題: 【原創】解決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