逆向破解之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循環中異或計算值的右邊一位,也就是最后一位。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM