这集视频是通过断在GetPrivateProfileStringA,然后找到注册码的。视频中的方法只是其中一个,还有其他的方法来破解,尤其是前几集的方法可以来自己试试。
-
运行程序
输入假码111111,提示重启。通过这判断这是一个重启来验证的,那么它是如何来验证的呢?观察程序目录下会发现有一个名为“config.ini"的文件
那么判断是通过读取ini文件来进行验证的。所以可以在GetPrivateProfileStringA处下断点,在它读取了ini中的注册码后,必然会与真码进行比较,那么我们就可以找到真码了。
-
载入OD
下API断点:GetPrivateProfileStringA。这次是在这里设置断点:
运行程序,断下来
此时,就位于了GetPrivateProfileStringA函数里面。我们对这个函数不感兴趣,所以Alt+F9返回到用户代码去。-
观察汇编代码
从系统空间返回程序了,可是这里没什么关键跳,也没再寄存器窗口里看到可疑的字符串。只好一路F8直到retn。
跳出了上个call后,还是没发现什么。只好继续F8了。不久,就又断在了GetPrivateProfileStringA处,还是老办法Alt+F9返回到用户代码去。
返回用户空间后,只好继续F8。F8的过程中,观察堆栈和寄存器,不久就会出现这个:
可疑字符串出现了,感觉都复制出来,一一试验一下。
5、找到了真码