先运行一发,进行观察 01.png 02.png 输入abcd abcd 后点击 check it baby 03.png 出现重要信息The serial is incorect 将程序拖入到OllyDBG中 搜索该字符串 04.png 发现好像有两处,都下断点,看会停在什么地方 F9走下去,输入abcd abcd ,发现确实停在了一处断点处。 05.png 现在从该位置向上分析 08.png 发现调用一个函数后有一个条件转移指令。下断点跟进该函数中进行分析 09.png 发现EAX 保存着一个很像密码的字符串,而EDX保存着我们输入的字符串。 这里要解释一下关于函数调用约定相关的知识,cdecl stdcall 都是栈传值,而fastcall是寄存器传值。所以这里我们推测这里可能是编译器优化或者本身就是fastcall而使之是寄存器传值。 再次运行程序,输入abcd CW-7954-CRACKED试一试! 06.png 07.png 成功破解!