先运行一发,进行观察


输入abcd abcd 后点击 check it baby

出现重要信息The serial is incorect
将程序拖入到OllyDBG中
搜索该字符串

发现好像有两处,都下断点,看会停在什么地方
F9走下去,输入abcd abcd ,发现确实停在了一处断点处。

现在从该位置向上分析

发现调用一个函数后有一个条件转移指令。下断点跟进该函数中进行分析

发现EAX 保存着一个很像密码的字符串,而EDX保存着我们输入的字符串。
这里要解释一下关于函数调用约定相关的知识,cdecl stdcall 都是栈传值,而fastcall是寄存器传值。所以这里我们推测这里可能是编译器优化或者本身就是fastcall而使之是寄存器传值。
再次运行程序,输入abcd CW-7954-CRACKED试一试!


网友评论