.net程序(dll文件)編譯和反編譯方法
我只做個(gè)簡單的小例子,給大家一個(gè)思路,吼吼~~~~
1使用工具
Reflector.exe 用來查看.net代碼 這個(gè)就不用多說了它是學(xué).net必備神器
Ildasm.exe:用來將dll,exe編譯為IL文件
ilasm.exe:用來將IL文件編譯回來dll或exe
EmEditor文本處理工具這個(gè)大家如果沒有我這有下載里面有注冊(cè)碼EmEditor.rar
2Ildasm和ilasm基本知識(shí):
ilasm.exe與ildasm.exe的使用
首先打開cmd命令。cd 到 C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin
然后把要查看的 dll文件或者exe文件拉進(jìn)來這里面(因?yàn)槲覀兪且妹?,你直接打開ildasm.exe也可以找到各目錄打開)
比如 text.dll (里面有console.writeline("hello word"))
ildasm text.dll 打開dll 找到方法可以查看
ildasm text.dll /output:text.il 按回車就編譯好一個(gè)il文件(可用記事本打開并且編輯hello word保存)
然后用ilasm工具反匯編成 dll或者exe 文件
ilasm text 按回車自動(dòng)查找text4.il 文件并且編譯成 text4.exe
或 ildasm text /dll 可以編譯成 text.dll 文件(記得先刪除原來的text4.dll)
3 開始工作吧
用reflector打開我們的程序,開始分析哪里有驗(yàn)證
這一步要有足夠的耐心
找到了一個(gè)方法是沒有加密狗就退出的程序方法
現(xiàn)在用Ildasm.exe打開我們的程序,把程序倒出成IL文件
就轉(zhuǎn)成utf-8格式
會(huì)生成4個(gè)文件
最主要的就是那個(gè)il文件
用EmEditor打開
找到我們要修改的方法SetDoLock()
這我這個(gè)例子里我把它們刪除直接改成
.method public hidebysig instance void void SetDoLock() cil managed { // 代碼大小 103 (0x67) .maxstack 5 IL_0000: ret } // end of method Login::SetTextBox
保存
現(xiàn)在就用到 ilasm.exe 出場(chǎng)了 用來將IL文件編譯回來dll或exe
上邊已經(jīng)有用它的方法了我也就不多說了
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>ilasm.exe C:\IL\aa.il
好了看一下生成的exe 吧
把生成的exe放回到原來的程序里去運(yùn)行一下
作者:bluejance 出處:http://www.cnblogs.com/li-peng/
相關(guān)文章
PHP+Ajax實(shí)現(xiàn)無刷新分頁實(shí)例詳解(附demo源碼下載)
這篇文章主要介紹了PHP+Ajax實(shí)現(xiàn)無刷新分頁的方法,以完整實(shí)例形式詳細(xì)分析了PHP結(jié)合ajax實(shí)現(xiàn)無刷新分頁的具體步驟與相關(guān)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-04-04php的crc32函數(shù)使用時(shí)需要注意的問題(不然就是坑)
這篇文章主要介紹了php的crc32函數(shù)使用時(shí)需要注意的問題(不然就是坑) ,需要的朋友可以參考下2015-04-04PHP中copy on write寫時(shí)復(fù)制機(jī)制介紹
這篇文章主要介紹了PHP中copy on write寫時(shí)復(fù)制機(jī)制介紹,需要的朋友可以參考下2014-05-05PHP數(shù)據(jù)庫調(diào)用類調(diào)用實(shí)例(詳細(xì)注釋)
PHP開發(fā)中我們經(jīng)常需要用一些數(shù)據(jù)庫類,這里簡單的分享下調(diào)用類的代碼,學(xué)習(xí)php數(shù)據(jù)庫操作的朋友可以參考下2012-07-07