一胡桨、破解過程
查找字符串”很抱歉官帘,注冊失敗“,會出來很多結(jié)果昧谊。找到和出錯提示相符的刽虹,分析匯編代碼,會找到關(guān)鍵跳呢诬;
00453310 |. E8 4B20FBFF call 00405360
00453315 |. 833D 0CDB5D00>cmp dword ptr ds:[0x5DDB0C],0x1
0045331C |. 0F84 23090000 je 00453C45
00453322 |. E8 399BFBFF call 0040CE60
只是更改關(guān)鍵跳是不夠的涌哲,但是找到了常量0x5DDB0C,可以使用“查找所有常量”法了尚镰。在找到的所有的結(jié)果上設置斷點阀圾。
2、再次點擊注冊狗唉,會斷下來初烘,
004532C0 E8 DB3F0000 call 004572A0
004532C5 A3 0CDB5D00 mov dword ptr ds:[0x5DDB0C],eax
分析一下代碼: 004572A0這個call的返回值放到eax中,然后eax的值給了[0x5DDB0C]分俯。這就說明004572A0的返回值給了[0x5DDB0C]账月。那么004572A0這個call就是關(guān)鍵call了。
3澳迫、進入04572A0這個關(guān)鍵call局齿。
在斷首下斷點后,單步執(zhí)行橄登,發(fā)現(xiàn)最后eax的值為1抓歼。但是在單步過程中是有不少跳轉(zhuǎn),跳過了eax賦值為其他值的:2拢锹、3谣妻、4、5卒稳。于是猜測蹋半,是不是eax改為這些值就是注冊版了呢?試驗著將斷首改為
修改為5充坑,得到的是:
修改為4减江,得到的是:
修改為3,得到的是:
修改為2捻爷,得到的是:
不同的值對應于不同的版本辈灼。
二、視頻總結(jié)
視頻中也榄,作者也是通過查找字符串找到了常量0x5DDB0C;接下來對0x5DDB0C地址處的內(nèi)存下硬件寫入斷點巡莹,從而找到了關(guān)鍵call——04572A0;然后進入04572A0這個call內(nèi)部,單步運行,注意堆棧窗口中出現(xiàn)假碼和可疑字符串在一起降宅,就復制下來骂远。
最后把復制處的可疑字符串試一試。