1. 程式人生 > >.net 反編譯筆記(2)

.net 反編譯筆記(2)

最終 使用 很多 項目 否則 大型 復雜 lsp 可選

自上次分享net軟件反編譯相關已一年多,今天再次分享一點幹貨。

1、net反編譯軟件已經相當成熟,具有導出項目的能力。不過大型項目導出的錯誤修復仍然是最耗時的工作,並且初級開發人員容易將一些代碼修復得不對邏輯但是這很難發現。

2、我手上用的dnspy和ilspy成為了我反編譯工作的主力。

3、今年因一個項目需要完成了重新簽名工具,dll拖進去,新的簽名就完成了,可直接投入使用。幾個項目測試下來,暫未發現任何問題。

4、ilmerge在解決多程序集合上起到很大作用,多個dll可以合並成為一個dll使用。

5、對於多個被obsfuscator混淆並有依賴關系的dll,不能直接de4dot,否則類型的引用將被打亂。

6、我的處理方式 :解密字符串(我自己寫的工具)->limerge合並dll(順序需要嘗試)->de4dot->重新簽名->最終dll->源碼(可選)

7、很多的dll裏面可能使用了三方源碼,並且因為算法復雜,反編譯出源碼後,編譯錯誤很多,多是類型轉換錯誤,邏輯跳轉問題編譯不過,修復起來相當麻煩。

這種情況找出關鍵詞,搜到對應版本的源碼替換之。

8、dnguard成為很多開發者首選加密方式,新版反編譯工具尚未流出或開發出來。前幾天更新的win10版本,手裏幾個dnguard加密的程序啟動後毫無反應。

嘗試靜態反匯編hvmruntime,流程比較深,多是算法操作內存,跟了兩天發現眼睛受不了遂放棄。。。

9、java的byte其實是net的sbyte

.net 反編譯筆記(2)