这里开发了一个CrackMe实例,源码打包下载如下:
https://github.com/fengfanchen/Qt/tree/master/CrackMe_1
程序是这个样子的:
程序从10s开始倒计时:
到0s后提示Game over
这里的倒计时的数在代码中是这样体现的:
resource,并且为static,进程在计算机中有4个空间,一个是代码区负责逻辑相关的功能,一个是常量区,如HelloWord字符串都在那里面资源文件等,静态区,就这些静态资源和全局变量了。耳环就是堆区和栈区。
这里我们就不用CE查找了。直接qDebug()打印出来:
这个0x404008就是这个变量的地址,内存地址一般是这样编排的,最小的是代码区,然后是常量区,然后去静态区,随后是堆区和栈区。
这里的0x404008就是在静态区,在程序员中他叫静态变量,在逆向中这样的数一般称为静态基址。
下面利用IDA Pro对其进行修改。首先选中:
Hex View-1这个Tab。然后按Ctrl + g
选择00404000开头,按OK
看见0x404008就是那个0A的地方,在程序中是int型,所以是4个字节,也就是8个16进制格子。从中可以看是小端的表现方式。
这里我们把他修改为99999,换成16进制就是1869F,换成小端就是9F 86 01,修改成这样
右键Edit
修改完后按下右键然后:
然后就是:
edit->Plugins->modifyfile
然后点击确定更改,就可以了。保存好,运行他
点击保存,运行这个文件,就成功实现破解了: