首页
社区
课程
招聘
[原创]第二届MSC移动安全挑战赛第一题解题报告
发表于: 2015-10-21 11:10 11772

[原创]第二届MSC移动安全挑战赛第一题解题报告

2015-10-21 11:10
11772
其实我一直是研究Web安全的,之前看到这次阿里举办的比赛,于是学了半个月Android。因为或许能得到阿里提供的工作机会啊,毕竟阿里的工作机会本来就难得,错过一次下次就难喽。虽然不是平常研究方向,但背水一战说不定成功了呢?哈哈,这个谁能说的准……^_^

      有幸做出第一题,分享之

      这其中做了大量的无用之举绕了太多弯子,就不说了

Number 1
      用Andoid killer打开AliCrackme_1,查看其中的smali代码,我们能看到其中的check函数,接下来我们分析这个函数,发现有8个if跳转:

      看了一下代码,感觉好多坑,而且大多代码并没有太大意义……于是,翻了一下《Android软件安全与逆向分析》,这本书之前研究过,所以很快就找到地方了,书中有if跳转的地方用了注入,那我们也来注入一下呗

Number 2
      可以看出这8个if中只有if_nez是有用的,因此可以排除5个,现在只在这3个if_nez上面做log,看能否得到有价值的东西,最后经过多次测试,发现需要在if-nez v4处注入

      新建一个smali文件,然后直接调用smali文件中的log类型
      注入具体参考这篇文章:http://0nly3nd.sinaapp.com/?p=573
      注入代码:invoke-static  {v4}, Lcrack;->J(J)V

      重点围绕在:if_nez  v4, :cond_3 处

      现在在if_nez  v4, :cond_3的上方代码段:const-wide/32 v4, 0xf4240,将v4的赋值从16进制转换为10进制后为:124750
然后看logcat的打印结果,发现520676是不变的,而v10的数值会根据输入的内容不同而变化……

      因此考虑使用520676-124750,得到结果395926
      至此,解题成功

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

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//