这里以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
这里是阿伟写的第一篇博客,若是观者觉得有理,有可取之处伟当倍感荣幸,若是觉得有不足的,心中不吐不快,也欢迎和伟联系,一同学习,一同进步。
今天的文章攻防世界——gametime 动态调试初探分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/88197.html