記一次Net軟件逆向的過程(經典)

查殼

1.先看下目錄結構:flex

2.查下,是什麼語言 ==> Net的,那不用說了,確定能破解(畢竟是老本行嘛~)3d

混淆與反混淆

3.dnSpy打開後發現不少變量是亂碼調試

4.用de4dot跑一波blog

5.生成了一個反混淆過的exedns

程序調試

6.更名後打開,亂碼問題解決ip

下斷

PS:剛開始你單步跟着後面走走`F11`,遇到系統方法就`F10`跳過,或者導航返回一步`←`,在跳進方法的下一行設置個斷點`F9`,而後繼續運行就好

7.在程序入口處下個斷資源

8.單步走一波編譯

9.F11到了程序入口處變量

10.核心點亂碼

11.單步跟進去後發現程序動態加載了一個dll(至於我爲何知道是驗證dll,請繼續日後看)

12.在方法尾部,發現有個返回的bool值,大膽推測下,就是關鍵性的驗證了

13.驗證框

14.順便輸入點東西(激活碼長點)

15.激活窗口關閉後會返回一個驗證失敗的bool值

16.調試修改看看

17.調試已繞過,可是打開的時候閃退

18.說明修改不完全,後面程序仍是經過ClassMain.boolrun來判斷

19.那就編輯一下,發現特殊符號編譯不經過

20.那就換個新的突破點

21.發現驗證方法,那就編輯下

22.廢掉驗證,而後編譯

23.修改完畢

24.保存下dll

25.大部分軟件這一步就搞定了,可是這邊仍是不行

PS:老版本這一步就搞定了,新版本會始終從資源文件中釋放dll

反編譯

26.那就繼續上大招:Reflector打開

27.去資源列表裏面找dll

拖進dnspy發現,倒數第四個就是的了

28.那感情好啊,用咱們以前調試生成的破解版dll替換下資源項的值

29.用修改後的dll替換舊的資源值

30.reflexil保存下

31.保存替換

32.ok了(根目錄木有vip那個dll哦)

相關文章
相關標籤/搜索