首页
社区
课程
招聘
[原创]主办方说要在正确的地方写writeup
2015-10-18 22:00 4261

[原创]主办方说要在正确的地方写writeup

2015-10-18 22:00
4261
第三题 writeup

解压程序 反编译程序后发现调用了底层so中的check方法。

将so文件导入到so中读取,发现导入导出表都被隐藏或没有被反编译,阅读反编译的汇编代码也没有发现合适的入口地址。

此题放弃。 :(

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JDS 2015-10-20 17:50
2
0
第二题 writeup
将APK进行反编译,可以找到判断输入结果的位置在Ch.java的ch方法中。
运行AliCrackme_2,在ch函数上添加断点,可以发现调用函数位置为so中的74F09DDC,输入的字符串作为函数的第一个参数。
之后在函数跳转到74F08DE0中,会将输入的字符串会诸位与下标相加。并跳转到74F084A4
在跳转到的位置,函数会将字符串与长度为16的数组进行相加,然后跳转到74F08944
在跳转位置发现程序执行了密钥为128位的加密操作,之后结果会与一个128位的数组作比较。
根据函数的加密方式猜测加密函数可能为AES算法或变体。
将提取到的密钥和比较的字符串代入到AES的解密函数中,并与第3步中的数组相减得到输出的结果为kboloy0
输入AliCrackme_2中,运行通过。
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JDS 2015-10-20 18:02
3
0
第一题 writeup
反编译程序,发现判断函数为Check.java的check方法。
查看check方法的返回位置,共有三处。在三个位置添加Log输出,发现实际运行的位置应为v8 % 1000000 + 124750 == v10这一步判断。
进一步输出v8和v10的结果,发现v10的值为520676,v8的值和输入的值相同。所以推断答案为395926
输入到AliCrackme_1,通过
雪    币: 110
活跃值: (189)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
无名诸葛 2015-10-21 23:23
4
0
就这么放弃了么 兄台。。。。
一起玩玩第三题吧

qq群:456853837
游客
登录 | 注册 方可回帖
返回