**0x0:什么是重啟驗證**
重啟驗證顧名思義就是在程序啟動時驗證注冊信息。
**0x1:執行流程**
基本的執行流程:
`注冊信息輸入-->程序重啟-->執行驗證機制-->正常執行`
擴展的執行流程:
`注冊信息輸入-->執行部分驗證機制/執行假驗證機制-->程序重啟-->執行真驗 證機制-->正常執行`
> 對于有經驗的作者來說,可以在注冊信息輸入和程序重啟之間加入假的驗證機制,假的驗證機制一般比較簡單,比如說只是當單純的明碼比較,當我們輸入這個假的注冊碼的,程序一般會提示注冊成功,此時程序就會知道我們是逆向者,在程序重啟時就會假裝注冊成功,在執行程序功能時就會報錯或是無反應,這就是所謂的暗樁。
**0x2:重啟驗證的類型**
重啟驗證根據寫入信息位置的不同一般分兩類:
一類是將注冊信息寫入文件
一類是將注冊信息寫入注冊表中。
**0x3:定位關鍵代碼**
**1.字符串定位**
通過OD字符串插件掃描敏感字符串,一般出現的文件路徑或是注冊表路徑都可能是驗證信息的保存位置
**2.監控工具定位**
通過procmon等監控工具監控注冊信息的寫入位置
**3.API定位**
通過定位CreateFile,RegCreateKey等API來獲取注冊信息的寫入位置
`CreateFile->WriteFile->ReadFile->比較算法`
找到驗證成功前的算法CALL獲取正確驗證碼
或者直接nop算法CALL下面的跳轉
* * * * *
例子:
https://pan.baidu.com/s/1tkQ1KWLE6NAGQ3iHy9AtFg
作業:
https://pan.baidu.com/s/1IKfDEHdkD-JWcrEYgniXFg