-
-
[原创]看雪.京东 2018CTF 第四题 密界寻踪
-
发表于:
2018-6-22 19:25
4313
-
[原创]看雪.京东 2018CTF 第四题 密界寻踪
常规做法,拿到程序后,拖到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编辑
,原因: