版权声明:墨痕诉清风 https://blog.csdn.net/u012206617/article/details/88038738
找到切入点字符串 <unregistered
但是about里面依然是未注册信息
我们以 <Unregistered Veresion> 做尝试继续查找字符串
查找到字符串下断点后,查看上一个跳转判断,因为如果此跳转不成立将不显示查找的字符串。
修改跳转的标志位设置为反
破解成功。
高级方法(高手)
推理:
如果自己写程序,肯定有一个条件做比较做判断,来确定此软件是否为注册,如何进入功能分支。
比如,注册信息的结构体某一个变量做注册标志位,然后判断此标志位的值来运行。
此图将60E88C的值给与eax,再将eax中值与0做比较。
很明显60E88C中存放的就是结构体注册标志位变量的值。
如果我们把60E88C的值修改呢?
此程序还有一个判断,就是试用期15天是否到期的判断。
也就是共两个判断
跟进发现60E88C和60F10C均为二级指针,里面的值均为00
右键60E88C
可以看到所有此地址的值,我们要找的是此地址第一次初始化时出现的值。
右键将所有指令地方下断点。
将60E88C中的地址给与dx
将al给与值00给与dx
明确得出此处为初始化赋值
我们把al值改为1尝试
破解成功