注册看雪这么久,很想转正,但由于水平有限,一直未如愿。今天在天空下了个要收费的软件,把它破了,破解的步骤很简单,只改了两处代码
,本来实在不好意思拿出来献丑,但为了邀请码,还是把它帖上来,希望斑竹能给个邀请码。。
软件打开后提示注册:
点击软件注册弹出输入注册码对话框:
随便输入个码弹出错误提示:
这里用OD附加,并在MessageBoxA处下断,重新点确定注册,顺利断下来了,删掉断点,返回上层函数会看到这些代码:
我们看到,程序是从0x4bcc24处跳转到这里弹出错误提示的,跟上去:
把这个JE语句NOP掉,重新注册看一下,弹出如下提示:
关掉程序重新打开,依然提示你要注册。看来这个软件是每次打开都会从某处提取你的注册信息并验证它的正确性。它会不会是把信息保存在注册表呢,把修改保存到文件后CTRL+F2重新运行程序,并在RegQueryValueExA下断。
发现它果然会断下,堆栈数据如下,它读了一个键名为“Name”的值:
这个函数调用传了入的是空Buffer指针,它用来取得buffer所需长度。按F9继续运行,又在RegQueryValueExA处断下:
这次Buffer不为空,取出了Name键的值。再按F9,程序又以同样的方式取了一个键名为“pass”的值:
数据窗口跟随保存结果的Buffer0xe45120,并以文本方式显示数据窗口,可以看到0xe45120处保存的正是输入的假注册码:
在0xe45120处下个硬件访问断点并删除RegQueryValueExA处断点,F9运行,断在一个小函数里,repne scas在取字符串长度,再F9,断在此处:
断下之后,在堆栈意外发现我们输入的假注册码后紧跟着一个字符串指针,莫非这就是程序计算出我们输入的用户对应的正确注册码?赶紧拿它注册一下,果然~
,程序进入使用界面:
我们回到断下处,Alt+F9返回上层函数。发现它后面紧跟着一个jnz跳转并且该跳转已实现:
既然假码跳走,想来真码应该是不跳的,既然如此,把这个JNZ语句NOP掉。保存至EXE文件。运行,
成功了,不再提示你注册。
软件可以在这下载。http://www.skycn.com/soft/57414.html
谢谢各位的回帖。我跟踪这个软件只是闲得无聊,没有别的,它不提示我注册了,我就罢手了,也没有去测试,感谢 ttgood 指出我上面的破解只是“假注册,没有用。。。”,为了完整,现在把手尾给做了,让它不再只让压缩20%
。另:我也是新手,去年才学会使用OD。
既然有提示框,在MessageBoxA下断,断下后Ctrl+F9返回:
先把这个JE改成JMP保存至exe文件不让它再提示只压20%.接着让它在cmp byte ptr [eax+4b1],0 这句下断让它断下并在数据窗口db [eax+4b1]处下个硬件访问或内存访问断点。
断在这里:
把这个JE改成JMP,保存至EXE文件后。就不会再“没用”了吧。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!