首页
社区
课程
招聘
[原创]看雪.京东 2018CTF 第四题 密界寻踪
发表于: 2018-6-22 19:25 4313

[原创]看雪.京东 2018CTF 第四题 密界寻踪

2018-6-22 19:25
4313

常规做法,拿到程序后,拖到IDA Pro,由于没有壳,可以找到许多有用的信息。使用findcrypt-yara插件,可以找到AES算法中使用到的常数。再查看一下字符串,可以确定使用了MIRACL库。

用条件跳转指令对main函数的入口做了一点混淆,手动改好即可。

为了更好的利用IDA Pro的反汇编功能,可以使用keypatch插件将main函数的入口修复的一下。

在其他的地方,使用call指令进行了混淆,例如0x00402580出的函数,同样的,修复一下。就可以用F5了。

我们可以做的更好,使用nop将这一段垃圾指令清楚掉,然后用F5。

利用这个函数,可以解析出一些字符串。

剩下的工作就没有什么技巧可言了,对照MIRACL库,将用到的函数标注出来,可以发现其验证流程。

验证分为两部分,输入的前三个字符,作为AES密钥的一部分,使用ECB模式,加密字符串pediy(需要补0),其结果与912CA2036A9A0656D17B6B552F157F8E对比。


上图中arg0即为输入的前三个字符,有一个全局变量dword_495728不用管他,反正密钥本身也需要破解三个字符。爆破出来密钥是5211314000000000。所迷密钥的前三个字符为52#,#不确定。

剩下的字符,先做一个hex编码,然后变成一个大整数,用RSA来验证

n可以使用factordb.com分解

然后可以通过RSA解密出来明文为69616d6168616e64736f6d656775796861686131。hex解码一下就是iamahandsomeguyhaha1

所以flag为520iamahandsomeguyhaha1。其中第三个字符一猜就是'0'啦。

做这个题需要找出使用的库,否则去逆库函数的话,需要花的时间太多了。

美男子,惹不起,惹不起O(∩_∩)O


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2018-6-22 19:30 被iweizime编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 4
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
请问一下“使用keypatch插件将main函数的入口修复”这个怎么做呢
2018-7-1 01:22
0
雪    币: 930
活跃值: (1333)
能力值: ( LV15,RANK:750 )
在线值:
发帖
回帖
粉丝
3
JuicyBoy 请问一下“使用keypatch插件将main函数的入口修复”这个怎么做呢
就把用跳转混淆的那几条指令写到main函数的开头就行了啊
2018-7-2 11:05
0
游客
登录 | 注册 方可回帖
返回
//