首页
社区
课程
招聘
[原创]第六届“湖湘杯”线上CTF赛逆向第2题easyre
发表于: 2020-11-3 11:20 2922

[原创]第六届“湖湘杯”线上CTF赛逆向第2题easyre

2020-11-3 11:20
2922

机缘巧合有幸参加了第6届“湖湘杯”线上CTF赛,逆向第2题easyre不太难,没有反调试,没有加壳,现将分析过程简要描述下。

 

随意输入字符串会提示长度错误。
图片描述

 

根据错误提示定位到main函数
图片描述

 

不知什么处理,IDA不能F5出main函数代码,报错“call analysis failed”
图片描述

 

只好设断点一步步跟踪

 

在40DA9F会判断长度,要求0x18个字符
图片描述

 

将输入的字符按照下列步骤进行计算:
每次计算涉及2个字节,计算(s[x]<<3)+(s[x+1]>>5),并写入原地址
图片描述

 

与下标异或,写入原地址,下标从0开始计算
图片描述

 

最后1位不需要下标参与运算,取{[(s[0]&0xE0)>>5]+[s[len-1]<<3]}的低8位,写入原地址
图片描述

 

要求计算出来的数值与411000开始的内存段相同
图片描述

 

411000的0x18个字节内容为
图片描述

 

如果输入的0x18字符全部正确则将地址41102C的内容逐字节与0x8F异或输出信息
图片描述

 

根据上述算法,利用集合的特性写出求解脚本reverse2.py,运行后得到字符串:ea5yre_1s_50_ea5y_t0_y0u

 

输入后,提示flag为字符串的MD5,即为18295eb198c57aa68728814fbc740a71
图片描述

 

附件为原题和求解脚本。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-11-3 11:36 被elecs编辑 ,原因:
上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//