160个crackme03

1

打开页面首先是一个7秒的等待NEG,OD打开。

猜测程序一开始的初始401000地址运行这个命令,先内存定位到401000处,搜索time,找到如图

2

看到timer命令后往下面找7秒,这里是小端存储,7秒是7000毫秒,0x1B58就是需要的时间,这里直接改为0001。

接下来就是要破解序列号,F9运行

3

通过找到字符串定位判断函数,往上找到该函数的起点,下断点,单步运行

4

获取用户名长度 然后根据得到的结果算出来一个值 我这里这个结果为622335

5

首先将刚才计算的结果转为浮点数 放入到FPU栈 然后将结果加上2.0 得到622337。逆向这个程序你并不需要 看懂每一条浮点指令,只需要单步跟踪 然后时时观察FPU栈的情况。

6

还是将刚才的结果转为浮点数并入栈 然后将622289乘以一个值再减去一个值 最后得到结果ST0=1867009,最后减一个数就是正确的序列号。

1867024

7