160个Crackme045
生活随笔
收集整理的這篇文章主要介紹了
160个Crackme045
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 導入符號
- 用CE尋找切入點
- 分析算法
- 寫出注冊機
- 校驗結果
【軟件名稱】:Dope2112.2.exe
【軟件大小】:171kb
【下載地址】:自行搜索下載
【加殼方式】:無殼
【保護方式】:Name/Serial
【編譯語言】:Delphi
【調試環境】:W10 64
【使用工具】: OD+IDA
【破解日期】:2019-5-28
【破解目的】:純屬興趣
導入符號
首先將程序載入到IDA,導入所有的Delphi簽名
接著生成map文件
然后在OD中導入
用CE尋找切入點
由于不能用DarkDe,而且無法搜索到字符串,我試了好幾個API斷點也斷不下來,所以只能用CE來搜索地址,首先用OD載入,然后再打開CE,這樣可以省去后面再用OD附加的麻煩
由于Delphi中存儲的都是ASCII的形式,所以我們直接搜索1111的十六進制ASCII值31313131
接著變換1111為2222
可以很明顯的看到我們要的地址就是這兩個中的一個了
找到上面兩個地址,依次對下面兩個地址下一個字節的內存訪問斷點
程序斷下
接著點擊K,查看調用堆棧
可以看到當前所在的是memcpy這個函數,而最下面的是GetText獲取用戶輸入,直接記下這個地址0x421DF7
分析算法
找到0x421DF7函數頭的位置0x00421DC8 ,開始分析整個算法,校驗步驟如下
下面貼上IDA的偽代碼注釋
寫出注冊機
注冊機代碼如下:
#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("請輸入用戶名:");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; }校驗結果
輸入用戶名和計算的序列號
提示成功 破解完成
需要相關文件的可以到我的Github下載:https://github.com/TonyChen56/160-Crackme
總結
以上是生活随笔為你收集整理的160个Crackme045的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源一个ShellCode生成框架
- 下一篇: Adobe Reader栈溢出漏洞(CV