1. 程式人生 > >逆向破解之160個CrackMe —— 014

逆向破解之160個CrackMe —— 014

CrackMe —— 014

160 CrackMe 是比較適合新手學習逆向破解的CrackMe的一個集合一共160個待逆向破解的程式

CrackMe:它們都是一些公開給別人嘗試破解的小程式,製作 crackme 的人可能是程式設計師,想測試一下自己的軟體保護技術,也可能是一位 cracker,想挑戰一下其它 cracker 的破解實力,也可能是一些正在學習破解的人,自己編一些小程式給自己破。

CrackMe簡稱CM。 程式下載地址:點選我

來源 <-點選檢視

編號 作者 保護方式
014 bjanes Serial(VB5)

 

 

 

工具 

x32dbg

VB Decompiler Pro

peid

開始破解之旅

ON.1

首先使用peid查殼,發現是VB的程式

使用x32dbg開啟014號程式,查詢字串

找到了報錯字串,雙擊進入報錯字串地址,在上方跳轉處下斷點,執行發現並沒有攔截到斷點處,可能斷點地址是錯誤的

我們按Ctrl+B  輸入“816C24” 這是VB的按鈕事件,在這裡我們要選擇整塊,不然搜尋不到,點選確定

搜尋到五處地址,我們在五處地址上分別下斷點

在程式上輸入任意資料,點選Check it按鈕,程式停在了我們的斷點處,F7兩次進入第一個jmp ,單步向下走

此時我們來到了00403A04地址處,發現在該出跳轉,跳轉到了錯誤的提示字元,我們將JNE改為NOP執行

bingo  爆破成功~

ON.2

使用VB Decompiler Pro開啟014號程式 

將反編譯程式碼轉換為Python程式碼

code = ''
for i in range(1, 10):
a = i ^ 2
code = code + str(a)[-1]
print(code)

得出結果為301674501我們輸入到輸入框內,點選Check it按鈕

bingo ~答案正確

在這裡我們需要看一下彙編程式碼,在彙編中計算異或後我們得到的是一個一位數,8和9的迴圈計算答案是兩位數,這裡我們需要細心觀察一下反編譯程式碼中Right指的是右邊的一位,所以就是8和9迴圈中異或計算值的右邊一位,也就是最後一位。

&n