160个Crackme045
文章目錄
- 導(dǎo)入符號(hào)
- 用CE尋找切入點(diǎn)
- 分析算法
- 寫出注冊(cè)機(jī)
- 校驗(yàn)結(jié)果
【軟件名稱】:Dope2112.2.exe
【軟件大小】:171kb
【下載地址】:自行搜索下載
【加殼方式】:無(wú)殼
【保護(hù)方式】:Name/Serial
【編譯語(yǔ)言】:Delphi
【調(diào)試環(huán)境】:W10 64
【使用工具】: OD+IDA
【破解日期】:2019-5-28
【破解目的】:純屬興趣
導(dǎo)入符號(hào)
首先將程序載入到IDA,導(dǎo)入所有的Delphi簽名
接著生成map文件
然后在OD中導(dǎo)入
用CE尋找切入點(diǎn)
由于不能用DarkDe,而且無(wú)法搜索到字符串,我試了好幾個(gè)API斷點(diǎn)也斷不下來(lái),所以只能用CE來(lái)搜索地址,首先用OD載入,然后再打開CE,這樣可以省去后面再用OD附加的麻煩
由于Delphi中存儲(chǔ)的都是ASCII的形式,所以我們直接搜索1111的十六進(jìn)制ASCII值31313131
接著變換1111為2222
可以很明顯的看到我們要的地址就是這兩個(gè)中的一個(gè)了
找到上面兩個(gè)地址,依次對(duì)下面兩個(gè)地址下一個(gè)字節(jié)的內(nèi)存訪問(wèn)斷點(diǎn)
程序斷下
接著點(diǎn)擊K,查看調(diào)用堆棧
可以看到當(dāng)前所在的是memcpy這個(gè)函數(shù),而最下面的是GetText獲取用戶輸入,直接記下這個(gè)地址0x421DF7
分析算法
找到0x421DF7函數(shù)頭的位置0x00421DC8 ,開始分析整個(gè)算法,校驗(yàn)步驟如下
下面貼上IDA的偽代碼注釋
寫出注冊(cè)機(jī)
注冊(cè)機(jī)代碼如下:
#define _CRT_SECURE_NO_WARNINGS #include <windows.h> #include <stdio.h>int main() {int result = 0x37;char username[20] = { 0 };char serial[20] = { 0 };printf("請(qǐng)輸入用戶名:");scanf_s("%s", username, 20);int usernameLen = strlen(username);if (usernameLen>=4){for (int i = 0; i < usernameLen; i++){result += username[i] << 9;}}printf("%d\n", result);system("pause");return 0; }校驗(yàn)結(jié)果
輸入用戶名和計(jì)算的序列號(hào)
提示成功 破解完成
需要相關(guān)文件的可以到我的Github下載:https://github.com/TonyChen56/160-Crackme
總結(jié)
以上是生活随笔為你收集整理的160个Crackme045的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 开源一个ShellCode生成框架
- 下一篇: Adobe Reader栈溢出漏洞(CV