首页 > 其他 > 详细

X-CTF(REVERSE高级) gametime

时间:2020-02-05 17:05:02      阅读:73      评论:0      收藏:0      [点我收藏+]

看见s马上敲空格,看见x敲x,看见m敲m,然后弹出Now you know everything you need to know再次开始游戏

技术分享图片
技术分享图片

看来是我太菜了,可以通关的

技术分享图片
strings window

函数sub_40158A()是程序的全部执行流程,我们可以看见卡在LETS PLAY下面的函数是sub_401507(),也就是说刚刚玩游戏断在了这里

技术分享图片
sub_40158A()

比较一下可以发现,sub_401507()是输入判断没错了

进入sub_401507(),v6是传入的第二个参数与sub_401260()有关,return也和sub_401260()有关

说明sub_401260()很关键

技术分享图片
技术分享图片
技术分享图片
sub_401507()

进入sub_401260(),是个bool函数

判断:

一、用户输入是否是超时(v5=-1超时)

二、输入是否正确(v5==v3正确)

技术分享图片
sub_401260()

这道题的flag和用户输入无关,是通关即可得flag的类型

解决思路:

一.od动态调试强制通关  

二.找flag生成代码,直接生成flag

一、od调试

所有test al,al处下断点,将eax的值改为1

技术分享图片

得到个什么玩意儿???key is not...

技术分享图片

好,因为所有的判断都交给了sub_401260,把判断结果修改即可

sub_401260中v5 != -1 && v5 == v2;的两处判断和loc_4012AD有关,nop掉这个跳转,或者修改cmp的比较内容为相同也可以

技术分享图片

参考ida的汇编知道,在od里智能查找字符串\rUDDER FAILURE! http://imgur.com/4Ajx2可以得到sub_401260的入口

技术分享图片
技术分享图片
双击进入

把跳转nop掉

技术分享图片
这里是跳转
技术分享图片
nop掉

运行程序,等它运行结束得到flag,然后我们也看到了之前的“key is not”原来是没有把test al,al改完啊,后面还有,真的key在后面

技术分享图片
技术分享图片

直接提交flag:no5c30416d6cf52638460377995c6a8cf5

 

二.找flag生成代码,直接生成flag

两个do-while循环里是flag的生成代码,太麻烦了不想看....

技术分享图片

X-CTF(REVERSE高级) gametime

原文:https://www.cnblogs.com/blackicelisa/p/12263672.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!