攻防世界——gametime 动态调试初探

 

这里以gametime作为dbg的例题,哎,水平比较低,搞了两天。

 

我们先用ida的静态调试,其实这个时候我对这个程序已经比较熟了

 

这里是转c语言,我们发现if的判断条件会导致其return,但事实上我们是不想让它退出的。

 

上面的是热身的部分,已经下面的也有这种if的判断,而对应的汇编语言也就是jz loc_401a60

也就是如果达到跳转的条件,您就搞不成了,就gg了。所以我们需要nop掉这种判断条件,计算我们输入错误的,不输入也不会跳到loc_401a60。

接下来是动态调试部分:

 

这里也是先右键搜索字符串,(我一般喜欢从字符串下手)可以看到我们主要的的一些roooooh,you fancy、niiice job)都可以找到,我们双击跟进

 

可以看到这个 je gametime.D91A60 就是我们要找的小妖精了,可以看到她会转到下面D91A60的位置,那里多半就是完蛋了,也就弹出不了roooh you fancy了,所以我们不让她跳转,我们直接nop掉。

 

注意不光是这一句,她上面的下面的,只要和D91A60有关的都nop掉。这是正式比赛的部分,前面的热身赛也是差不多的原理。

 

这里是我自己找到断点,咱们再f7跟进

 

这里找到了字符串failure,我们不想执行这里所以把她上面的jne直接改成jmp跳过

最后得到flag

 这里是阿伟写的第一篇博客,若是观者觉得有理,有可取之处伟当倍感荣幸,若是觉得有不足的,心中不吐不快,也欢迎和伟联系,一同学习,一同进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值