gametime
-
首先查壳, 发现无壳. 打开程序看一下. 果然是一个游戏, 简单的看了一下, 是让我们在规定时间输入屏幕上显示的字符.
-
ida打开, 看伪代码, 很冗长, 向下浏览一下可以看见好几个判断函数. 且都是一个函数, 程序肯定不应该是退出. 我们的目的就是让它的返回值为 非0
-
进入 sub_401507 看看. 发现还有个判断的地方, 我们的目的: 让它返回1 记录下地址. 0x00401563.
-
此时程序下面还有类似的判断函数, 那么相同的方法, 先找到地址, 记录下来.
-
最后发现, 程序的核心判断函数就只有2个. 地址分别为: 0x00401563 , 0x004014DB
-
把程序载入OD. 跳到我们找到的地址, 发现地址对不上, 那程序是开启了 ASLR 的, 但是 RVA 是一样的, 简单的算一下就可以了. 另外一个地址, 相同的操作.
-
最后F9运行, 游戏进行一段时间, 出现flag.
-
总结: 简单的动态调试的应用, 注意地址是不是 image base.