首页
社区
课程
招聘
[原创]无线安全挑战赛:第二题
2015-1-25 20:08 2003

[原创]无线安全挑战赛:第二题

2015-1-25 20:08
2003
拿到apk,反编译,先看一下dex,发现java层没有做什么东西,验证的方法写在了native层,好吧,请神器IDA。


找到验证方法,进去,F5……


上面两个if被自动忽略了,关键就在上面那个地址,点进去看一下,顿时好开心,wojiushidaan,哇擦!这么明目张胆!果断先试一下……下面的故事就一个悲剧。

不是说我就是答案嘛!怎么试了那么多次还不对!做人最基本的诚信还有了没有了啊!没办法,动态调试吧,赶紧找找资料,现学现用下,一坑未平一坑有现呀!动态调试JNI_OnLoad刚走完就退出了,看来是在JNI_OnLoad里面加了反动态调试了,但是,没有什么能阻止楼主一条道走到黑的心,既然在JNI_OnLoad中加了反调试,那我不执行它不就好了,那就自己编一个so然后通过dlsym调用验证函数吧(当然nop也可以),妥妥的动态调试没有问题了,最终跟完了验证函数,证明上图真的只是一个字符串对比的方法,而且密码还是wojiushidaan,顿时累觉不爱。

死脑筋了好久,最后终于转了个弯,关键还在JNI_OnLoad里面,这个方法不止用于反动态调试,同时修改了密码的内容,确定了这个方向,就简单了,在JNI_OnLoad里面动态的跟就能查到密码了。

不过这题还有一个比较简单的方便,直接利用上图里面的log,修改打印字符串的地址为密码的地址,就能让它自己把密码吐出来了。

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

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回