攻防世界 gametime

gametime

  • 首先查壳, 发现无壳. 打开程序看一下. 果然是一个游戏, 简单的看了一下, 是让我们在规定时间输入屏幕上显示的字符.

  • ida打开, 看伪代码, 很冗长, 向下浏览一下可以看见好几个判断函数. 且都是一个函数, 程序肯定不应该是退出. 我们的目的就是让它的返回值为 非0

攻防世界 gametime_第1张图片

  • 进入 sub_401507 看看. 发现还有个判断的地方, 我们的目的: 让它返回1 记录下地址. 0x00401563. 攻防世界 gametime_第2张图片

  • 此时程序下面还有类似的判断函数, 那么相同的方法, 先找到地址, 记录下来.

  • 最后发现, 程序的核心判断函数就只有2个. 地址分别为: 0x00401563 , 0x004014DB

  • 把程序载入OD. 跳到我们找到的地址, 发现地址对不上, 那程序是开启了 ASLR 的, 但是 RVA 是一样的, 简单的算一下就可以了. 另外一个地址, 相同的操作.攻防世界 gametime_第3张图片

  • 最后F9运行, 游戏进行一段时间, 出现flag.攻防世界 gametime_第4张图片

  • 总结: 简单的动态调试的应用, 注意地址是不是 image base.

你可能感兴趣的:(ctf)