[破解实例][OllyDbg] CrackMe003-Afkayas.2

[破解实例][OllyDbg] CrackMe003-Afkayas.2


本例可执行文件(含破解版)下载:CrackMe003-Afkayas.2


一、查壳

用PEiD查壳结果为Microsoft Visual Basic 5.0 / 6.0,无壳。


二、破解

使用OllyDbg工具打开Afkayas.2.exe,进入调试运行,断在程序入口处。

错误提示框为:

错误提示框

同以前的方法,找到出现字符串”Try Again”对应的汇编代码位置:

验证代码

验证过程显然在这段代码之前,往前分析可得,
0x00408677之前的代码验证了输入的Name/Serial是否正确,根据验证结果进行跳转。因此只需将0x00408677处的条件跳转NOP掉,就能完成破解(从后面的代码分析可知还需NOP掉0x004085D2处的函数调用,因为该处检验Serial是否为数字)。
也可直接分析得出正确的Name/Serial关系,将0x004081CD - 0x00408677的代码单独拎出来,以输入Name=”0123”为例,分析如下:

004081CD .. CALL DWORD PTR DS:[EAX+A0]                   ; get the Name we input
...
004081E9 .. MOV EDX,DWORD PTR SS:[EBP-B0]
004081EF .. MOV EAX,DWORD PTR SS:[EBP-1C]                ; save Name to EAX
004081F2 .. PUSH EAX                                     ; push Name
004081F3 .. MOV EBX,DWORD PTR DS:[EDX]
004081F5 .. CALL DWORD PTR DS:[<&MSVBVM50.__vbaLenBstr>] ; get length of Name
004081FB .. MOV EDI,EAX                                  ; EDI = length of Name
004081FD .. MOV ECX,DWORD PTR SS:[EBP-18]                ; save Name to ECX
00408200 .. IMUL EDI,EDI,15B38                           ; EDI *= 0x15B38 = 0x56CE0
00408206 .. PUSH ECX                                     ; push Name
00408207 .. JO AfKayAs_.004087C4                         ; jump if</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值