IDA Pro逆向實戰之Crackme(簡單篇),idaprocrackme
今天手閑的很,沒事就拿出了以前沒解決的逆向題來做一下,具體的來源程式在附件裡,廢話少說,直接上菜:
0. 來源程式運行效果(輸入不對的,直接退出):
Exeinfo PE 查殼:
看到是無殼的小程式,看來練手一定會很容易!!!那接下來直接載入到IDA中看看程式執行邏輯吧!
IDA Pro 查看程式執行邏輯
這裡截的是一張白圖,不過對於剖析器流程已經足夠了,順便解釋裡的紅線是False分支執行的,綠線是True分支執行的,大致看下這裡的分支不是很多,所以這個程式逆起來應該不是很複雜!
3. 神奇的IDA F5 直接看源碼吧
我暈啊,這裡的辛辛苦苦編輯的高清圖片,最後只能是上面這個樣子,講究這看吧,分析出了關鍵函數,下面是男人就跟進來吧!
4. 點擊關鍵函數,進入驗證段代碼,還是直接看反編譯源碼吧
看到這裏手都癢了,趕緊用C語言寫個反向演算法,把他的關鍵字符串逆回去!
5. C 語言編寫的的簡單逆向演算法
執行結果:
填進去看看結果呐!
6. 最後的勝利!
最後,這麼搓的小程式都不好意思拿出手,但還是希望大家多多討論。
(原創文章,作者:ByteWay)這裡是我自己的論壇,歡迎大家來逛:http://itpark.sinaapp.com/thread-index-fid-4-tid-121.htm
crc32crackme簡單爆破
【破解過程】:
大家好,今天給大家做一個簡單的爆破示範~這個稍微和前面2個有點不一樣~呵呵~還是需要我們分析代碼,把代碼看清楚了就沒什麼難的了!查殼:Borland Delphi 4.0 - 5.0
試運行,輸入wynney 444520,提示“錯誤的註冊碼”
用W32asm無極版載入,尋找“錯誤的註冊碼”,雙擊,來到代碼處!
:00404386 85F6 test esi, esi //比較真假註冊碼
:00404388 7419 je 004043A3 //等於則跳,不等於就不跳咯
:0040438A 6A00 push 00000000* Possible StringData Ref from Code Obj ->"錯誤"
|
:0040438C 680C444000 push 0040440C* Possible StringData Ref from Code Obj ->"錯誤的註冊碼" //***
|
:00404391 6814444000 push 00404414大家往上看看,在
00404388 7419 je 004043A3
有個跳轉是可以(注意這個用詞)跳到004043A3的我們去004043A3看看吧~* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00404388(C)
|
:004043A3 6A00 push 00000000* Possible StringData Ref from Code Obj ->"恭喜"
|
:004043A5 6824444000 push 00404424* Possible StringData Ref from Code Obj ->"正確的註冊碼"呵呵~是不是已經很明了了啊,如果跳到這裡來了,我們看到的不就是提示正確了嗎?那好~我們把00404388的je(74)改成jmp(無條件跳轉,就是無論如何都要跳,EB)[這裡也可以改成(jne)75]都是一樣的結果!是運行下儲存的程式,輸入wynney,444520
呵呵~提示“正確的註冊碼”好了,今天的動畫就到現在啦~~大家好好分析下,找找思路~!~還是那句話我們學破解的,是為了思路,不是為了去破某個軟體。。如果你的目的是後者,那麼你是會停止不前的!^_^,拜拜咯~
具體操作還要慢慢練習哦