查殼
1.先看下目錄結構:
2.查下,是什麼語言 ==> Net的,那不用說了,肯定能破解(畢竟是老本行嘛~)
混淆與反混淆
3.dnSpy開啟後發現很多變數是亂碼
4.用de4dot跑一波
5.生成了一個反混淆過的exe
程式除錯
6.改名後開啟,亂碼問題解決
下斷
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哦)