暑期CTF练习——第六周

本文详细介绍了在攻防世界reverse进阶区挑战EASYHOOK的解题过程,涉及IDA分析、OD动态调试,以及关键函数的加密和判断逻辑。通过调试发现,输入的字符串经过特定加密后必须与内存中的一段字符串相等,最终得到flag为flag{Ho0k_w1th_Fun}。
摘要由CSDN通过智能技术生成

攻防世界reverse进阶区EASYHOOK

参考了攻防世界的wp。

查壳
在这里插入图片描述
ida打开,关键字符定位
在这里插入图片描述
查交叉引用后看伪代码
在这里插入图片描述
发现程序首先打印please input the flag,当输入完成后对输入进行审查,如果输入的字符串长度没有13h(19),就会puts wrong,如果长度符合要求就进入下一个流程。之后的流程在输入长度正确和puts success之间有四个函数调用,推测,这四个函数调用中很可能有一个或两个是关键的加密函数。

上OD:
研究这四个函数对输入进行的加密操作,直接运行发现程序停止0x004014fd处等待输入,在输入完成后继续运行程序puts wrong结束。

尝试在0x004014fd后下断点,但程序仍然puts wrong,说明程序的输入部分在0x004014fd内部,在od中按f7跟进0x004014fd函数内部,发现了scanf函数等,尝试进行输入操作,随便输入一串字符串,发现此时程序把输入的字符串与0x13进行了比较,如果不相等,直接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值