首页
社区
课程
招聘
[原创]看雪CTFQ1-RepwnWP
2019-3-21 16:15 2064

[原创]看雪CTFQ1-RepwnWP

2019-3-21 16:15
2064
这个题,首先多谢放过一马2333只用交第一次输入。
首先运行,然后根据提示在Ida中寻找字符串,查看引用找到主函数。
来到主函数以后看到题目要求输入,然后进行一个if的判断,如果不通过则失败。通过则进入另外一个函数。先查看func_judge_do函数。
大意是从输入的第9位开始与v4进行一位一位的比较,总共比较12位,然后输入的第21为必须为‘H’。然后返回。由此得到一部分输入。
返回func_magic_do(我开始看不懂这个函数,取名为magic23333)
这个函数首先判断输入是不是24,也是有一个if,判断前8输入。进入func_st8_do查看。
这个函数首先对输入做一个变换,然后开始多项式计算,这个可以用z3-solver计算出来。这个func_change_do就是把输入的每一位减去0x30,也就是‘0’的ASCII值,显然是字符转换为数值的操作。
得知前21位,我们需要回到func_magic_do函数里,看看最后是要干什么。。。
这一段我硬是看了很久,直到我x64dbg动态调试,才发现这最后的四位经过变化后的值会覆盖掉返回的值(难怪题目名字是Repwn,Re+pwn2333)
这就很好判断了,Str[20]已经直到等于‘H’,根据地址,Str[23]-'k'应该为0,而且通过观察函数地址,都是0x0040xxxx,所以Str[22]-3应该等于0x40。这样就得到后四位应该是H?Ck。这。。。就有点意思了。。。看起来应该是a的变形233333然后通过试验得到结果为a。这样第一次输入就得到了,经过检验确实也是(没想到还有第二段23333)
题目和idb放附件了。

[培训]《安卓高级研修班(网课)》月薪三万计划

上传的附件:
收藏
点赞1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回