Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

这里开发了一个CrackMe实例,源码打包下载如下:

https://github.com/fengfanchen/Qt/tree/master/CrackMe_1

 

程序是这个样子的:

程序从10s开始倒计时:

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

到0s后提示Game over

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

这里的倒计时的数在代码中是这样体现的:

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

resource,并且为static,进程在计算机中有4个空间,一个是代码区负责逻辑相关的功能,一个是常量区,如HelloWord字符串都在那里面资源文件等,静态区,就这些静态资源和全局变量了。耳环就是堆区和栈区。

 

这里我们就不用CE查找了。直接qDebug()打印出来:

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

这个0x404008就是这个变量的地址,内存地址一般是这样编排的,最小的是代码区,然后是常量区,然后去静态区,随后是堆区和栈区。

这里的0x404008就是在静态区,在程序员中他叫静态变量,在逆向中这样的数一般称为静态基址。

 

下面利用IDA Pro对其进行修改。首先选中:

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

Hex View-1这个Tab。然后按Ctrl + g

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

选择00404000开头,按OK

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

看见0x404008就是那个0A的地方,在程序中是int型,所以是4个字节,也就是8个16进制格子。从中可以看是小端的表现方式。

这里我们把他修改为99999,换成16进制就是1869F,换成小端就是9F 86 01,修改成这样

右键Edit

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

修改完后按下右键然后:

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

然后就是:

edit->Plugins->modifyfile

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

然后点击确定更改,就可以了。保存好,运行他

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

点击保存,运行这个文件,就成功实现破解了:

Windows破解&逆向-CrackMe_1实例(使用IDA Pro修改静态区资源)

 

上一篇:CrackMe第一题


下一篇:第一次独立使用ollydbg破解crackme测序