原题地址:159K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3y4@1k6W2)9J5k6i4m8W2k6r3W2&6i4K6u0W2j5$3!0E0i4K6u0r3i4K6y4r3k6$3q4E0k6g2)9J5k6r3k6A6k6$3S2@1i4K6u0V1x3K6q4Q4x3X3g2Z5N6r3@1`.
1.载入OD后 BP GetWindowTextA 下断,
2.F9 运行,
3.随便输入一个字符串(尽量不要相同)我这里就输入123456
点击(Register)此时被断下。CTRL+F9 执行到返回。一直返回到程序领空。
单步走几下发现如下信息:
这就说明,注册吗在这段代码之间进行了一个判断。现在只要分析中间这段代码就ok!为什么是这样?
下面具体来说明下,首先下断的是GetWindowTextA这个API。这个API简单的理解就是获取用户输入文本的一个函数。MessageBoxA弹出消息框。不管成功失败给出提示信息。由此我们可以分析出。注册码在中间这段代码之间进行了比较。所以分析中间这段就ok.清楚了这点之后 我们就在返回到程序领空的第一行下断。
在点击注册按钮。
断在这个位置。单步F8.
下面这个CALL传入我们输入的注册码。先不管他。路过(步过)。因为下这个call的返回值和4进行了比较猜测他是获取输入注册码长度的一个函数。在看看后面又有4个和CL比较。而这个EBP-1C这个地址,指向的是我们输入的中注册码的ascii的值。00401232 · 384D E4 CMP BYTE PTR SS:[EBP-1C], CL00401235 ·▼ 0F84 94000000 JE WannaLOL2.004012CF0040123B · 384D E5 CMP BYTE PTR SS:[EBP-1B], CL0040123E ·▼ 0F84 8B000000 JE WannaLOL2.004012CF00401244 · 384D E6 CMP BYTE PTR SS:[EBP-1A], CL00401247 ·▼ 0F84 82000000 JE WannaLOL2.004012CF0040124D · 384D E7 CMP BYTE PTR SS:[EBP-19], CL
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
1