.net破解二(修改dll)


多謝大家支持!

昨天說了一下反編譯與剝殼(.net破解一(反編譯,反混淆-剝殼,工具推薦)),今天就來修改修改dll,為了方便,我自己寫一個簡單程序用來測試

代碼如下:

一個 ConsoleApplication,輸出Hello World.

現在我想修改它,讓他輸出我想要的內容,或者直接改變該方法的功能,但是沒有源碼,只有Console.exe


 

工具:Reflexil 它是Reflector的一個插件

工具獲取:1.可以直接到Reflector官網下載http://www.red-gate.com/products/dotnet-development/reflector/add-ins

     2.打開Reflector, Tool=>Add-ins=>Add-In Gallery, 跳轉到 上面的下載地址

下載好Reflexil后,在Add-ins 界面,點"+",選擇Reflexil.Reflector.AIO.dll,然后Close

現在在Tool中會多一個Reflexil選項

它的界面


用法:

把我剛才寫的Hello world拖進Reflector,我們選中程序集,命名空間,類命,方法, Reflexil的界面都是不一樣的.

這里可以知道,我們能注入類,接口,枚舉,方法,等,也可以重命名,刪除.

現在我們來添加一個方法試試,選擇Inject method   Item Name:Demo(此時只能聲明無參,無返回值的方法,后面會講什么添加這些)

點ok會給出警告

 意思就是,做大改動(注入,刪除,重命名)時你是看不見結果,讓你保存一次在導入新的dll文件,那就保存一次

保存好后,把新dll拖到Reflector中,就會發現在 Programe中多了一個Dmeo方法.

現在來給Demo 寫實現

選擇Demo 后右邊的界面為:

選擇Main:

instructions 中是IL指令, 高玩可以直接修改添加指令,但不是高玩咋辦?

我們選擇Replace all with code... 替換所以代碼.

不過在這之前 先在Parameters添加一個參數string name,並在Attributes 將Return type設為stirng

我再次點擊Replace all with code...  代碼已經更新為

 

 

修改完成后,點compile 如果沒有錯誤,就會生成IL指令,點ok就行

現在在來修改一下Main方法,調用Demo

代碼已經改完,現在保存看看執行效果:

原程序:

修改后程序:

 總結:上一篇文章我是需要登錄,而現在我們也知道方法,只需要找到對應的登錄方法,直接改成返回true,就能登錄了

發現問題 請留言,如果喜歡請推薦一下,

轉載請注明出處! 謝謝

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM