160個Crackme之001 Acid_burn

1.概述

作者:Acid burn
難度:★
保護方式:Nag,Name/Serial,Serial

運行Acid burn.exe,啓動界面如下:
在這裏插入圖片描述
![hello you have to kill me! Welcorne to this Newbies Crackrne nude by ACiD BuRN Crac:KerWoRlD1

要將上面的對話框去掉

在這裏插入圖片描述

點擊按鈕Serial/Name,進去要求輸入用戶名和序列號:

在這裏插入圖片描述

點擊按鈕Serial,進去要求輸入序列號:
在這裏插入圖片描述

2.Serial/Name

它有兩個按鈕,一個是Check it Baby,另一個是I give Up。隨便輸入個用戶名和序列號,顯示如下圖:

在這裏插入圖片描述

如果輸入錯誤,會彈對話框,字符串“Sorry,Theserial is incorect”可以作爲一個線索,

使用OD加載程序,運行程序,使用OD中的字符串插件找到字符串,雙擊跳轉過去,找到函數開始的地址,打斷點。

重新在OD中運行程序,在name欄輸入“tutucoo”,在serial欄輸入123456789,點擊確定,程序斷在了0x42f9a9處,下面有很多個CALL,估計算法包括在中間,先不急着分析每個函數,先猜一下函數的作用是什麼。
在這裏插入圖片描述

在這裏插入圖片描述

通過分析,序列號是根據用戶名計算得來的,而用戶名規定必須大於4個字節,本例輸入tutucoo,算法得出的正確序列號是"CW-9512-CRACKED",CW和CRACKED是固定的,中間的數字是通過計算得來的,具體算法如下(以tutucoo爲例):

1.0x74*0x8-0x74=0x32c,0x74是用戶名第1個字符t的ASCII碼

2.0x75*0x10+0x32c=0xa7c,0x75是第2個字符u的ASCII碼

3.0x75*0xb=0x507,0x75是第4個字符u的ASCII碼

4.0x74*0xe=0x658,0x658+0x507=0xb5f=2911,0x74是第3個字符t的ASCII碼

5.0x290x740x2 = 0x2528 = 9512,0x74是首字符的ASCII碼,0x29和0x2都是固定的

前面4步貌似沒有什麼實際用處,通過第5條公式可以直接計算出結果。

3.Serial

在這裏插入圖片描述

輸入12345678後點Check it Baby,出現錯誤:

在這裏插入圖片描述

用OD加載,找到字符串"Try Again"跳轉到代碼處,往上找到函數的開始處打斷點,運行程序後,重新輸入12345678後點Check it Baby,程序斷下。

在這裏插入圖片描述

在這裏插入圖片描述

下面是核心算法
在這裏插入圖片描述

看到這裏直接試一下字符串"Hello Dude!"是否是正確的序列號

在這裏插入圖片描述

果然沒錯

4.去掉彈窗

程序剛啓動時有個彈窗,既然要去彈窗就要找到調用MessageBoxA處,然後patch掉就可以了。

用OD加載程序,命令窗口執行bp MessageBoxA,運行程序,程序順利斷下。

這時斷在了系統領空,點k按鈕打開調用堆棧窗口:

在這裏插入圖片描述

跳轉到它的調用函數處,選中代碼右鍵->二進制->用Nop填充

在這裏插入圖片描述

然後右鍵->複製到可執行文件->選擇,會出現下面的彈窗,選擇是

在這裏插入圖片描述

點右上角的關閉,保存到文件選擇是,系統會彈出另存爲對話框,保存到本地。

在這裏插入圖片描述

運行patch到本地的程序,彈窗已經不見了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章