記一次簡單的軟體破解記錄
剛好學員請教我一個逆向的問題,我就給他講了基礎,就故此寫了這篇文貼了過來。
是非常基礎的一次逆向過程,各位讀者可以學習一下。
1.首先打開軟體查看具體信息。
可以看到是需要註冊碼註冊的,並且有三次機會的提示,三次密碼錯誤之後將會結束掉軟體。
2.查看軟體是否加殼
可以看到是沒有加殼的,並且軟體是由Delphi寫的,直接載入OD進行反調試。
3.OD反調試破解
在進入程序區域後,搜索字元串,這裡破解是思路是:
註冊成功與否的提示。
所以我們直接找註冊失敗或者成功的字元串跳過去就行了。
這裡的登錄失敗就可以作為一個突破點,我們跟過去看看。
可以看到從圖中的
00539AC0 /75 31 jnz short Protecti.00539AF3
00539AF3 > 8B83 FC020000 mov eax,dword ptr ds:[ebx+0x2FC]
eax=0063DEB0 (Protecti.0063DEB0)
跳轉來自 00539AC0
簡單說,這段驗證代碼,是驗證的程序的密碼,從00539AC0開始驗證,到00539AF3結束,如果密碼正確,就通過驗證,執行程序進入界面。反之,如果驗證失敗,就會彈出還有幾次機會。
那麼我們的破解思路就很明顯了,直接把這串關鍵JNZ跳轉給他NOP掉,讓程序無法驗證密碼的正確即可。
00539AC0 90 nop
00539AC1 90 nop
00539AC2 . A1 B8496400 mov eax,dword ptr ds:[0x6449B8]
00539AC7 . 8B55 FC mov edx,dword ptr ss:[ebp-0x4]
00539ACA . E8 29AFECFF call Protecti.004049F8
00539ACF . A1 6C406400 mov eax,dword ptr ds:[0x64406C] ; ▏d
00539AD4 . 50 push eax ; Protecti.0063DEB0
00539AD5 . B9 0A000000 mov ecx,0xA
00539ADA . BA 01000000 mov edx,0x1
00539ADF . 8B45 F8 mov eax,dword ptr ss:[ebp-0x8] ; Protecti.004044A4
00539AE2 . E8 DDB3ECFF call Protecti.00404EC4
00539AE7 . C783 4C020000>mov dword ptr ds:[ebx+0x24C],0x1
00539AF1 . EB 5A jmp short Protecti.00539B4D
00539AF3 > 8B83 FC020000 mov eax,dword ptr ds:[ebx+0x2FC]
NOP掉關鍵跳轉後,軟體將不再對這裡的驗證做出檢查,就是無論密碼的正確與否,他都會繼續執行正確的步驟。
最後,不輸入密碼也能直接進入程序界面,就達到了破解的效果。
TAG:黑客與思考 |