Broland Delphi 3.0.
有Serial + Name 验证和 Serial 验证.
程序使用的是MessageBox, 所以 bp MessageBoxA. (ShowMessage不可以)
- Serial + Name 验证
随便输入:
标准的错误提示是:
程序停在MessageBoxA的地址,
来自0x0042A1A9的跳转, 转到这个地址.
这里上面应该压入了错误提示.
往上走找到这个子程序的第一句, 即0x42A170下断.
再次输入Serial 和 Name.
程序停在0x42A170.
看堆栈.
跳转来自0x 0042FA74 , 转到该地址.
地址附近有不一样的提示. Congratz…作者是打错了吗..不过看到Good Job总没错.
找到这个子程序的第一句下断, 在 0x0042F998.
再次输入Serial 和 Name.
程序停下来后开始用F8单步步过.
由于本来就打算爆破, 所以非比较和跳转的地方可以快速跳过.
直到 0x0042FA57 CMP EAX, 4
跳转在这里不会执行, 而是直接向下, 下面是我们看到的错误提示.
JGE 大于等于跳转, 带符号的. 修改标志位S, 跳转执行, 避开错误.
继续F8, 直到0x42FB03.
成功提示怎么可以错过! 修改标志位Z, 跳转失效,继续F8.
于是乎爆破成功.
将 JGE 改为 JMP, 将 JNZ NOP 掉, 保存, 就干掉了这个CrackMe(的一部分).
- Serial
和上面的完全没区别…
不费口舌了.
单从爆破的角度来看这个Crack Me 难度不大…
算法且不分析, 火候没到.
2014.6.13 第一次自己独立爆破Cm.
14.6.13 爆破Acid_burn,布布扣,bubuko.com
时间: 2024-10-11 03:48:27