crackme -002

打開後也是輸入賬號和序列號來進行判斷的。

在彈框處設置斷點,打開堆棧

從msvbm50可知,這是一個vb寫的程序。右鍵顯示調用

調用爲加斷點的那一行,上邊有一個jmp的跳轉。,應該是無條件跳轉到註冊正確的call那裏。那麼推測會有一個判斷並跳轉到jmp的下一行的指令。向上找果然找到了。

這有一個je指令,當ZF爲1時跳轉。即和上邊的test有關。

單步測試,果然過了test以後ZF變成了1。test爲與運算。

在je之前將ZF改成0,測試成功。

因此把je 這一行NOP掉就可以了。

註冊算法的話,向上找到這段程序的開頭開始逐步分析。

上邊乘了0x17CFB,在這裏有一個溢出跳轉

經過上邊的call以後,出現了“585235”

此時已經出來了輸入的654321.

 

先得到註冊碼的長度, 然後取出註冊碼第一個字符的ANSI值cName, 讓後計算長度*0x17CFB+cName,將計算的值轉換爲10進制文本,前面加上”AKA-”組成最後的註冊碼。

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