[Android]2015移动安全挑战赛MSC解题思路

信息安全 2561 Views

2015 移动安全挑战赛 1.22-1.25

前言

2个多月前,也就是11月中旬去深圳玩了一趟,在同学的带领下,花了2天在腾讯内部感受他们的环境和工作氛围,加班的很多,感觉他也确实很幸苦。回来之后,第一天晚上没睡着,感觉别人都在玩命,而我却在潇洒。于是便买了一本移动安全的书,扎扎实实得学了两个月。尽管挫折很多,多次想放弃,在此就要谢谢我的小伙伴们了,因为之前PC端朋友们的鼓励和移动端朋友们耐心解答我这个新手的问题,我坚持了下来。参加这次比赛在我看来我只是抱着一种学习的心态来看看,多亏有上天眷顾,幸运获奖。下面就分享下比赛中题目的解题思路。

第一题:

1.Apktools反编译之后定位到MainActivity中的onCreate函数,发现关键跳:

2.往上看发现了:

v4 v2 v5 都是Log出来的,打开DDMS。输入123看log:

发现enPassword为123对应的加密字符串,pw其实就是正确的密码了。

为了找到pw所对应的字符串作为输入,输入0123456789ABCDEF再次log出来。

对照可以知道,只要输入“581026”对应的就是正确的pw了。

第二题:

1.Apktools反编译之后可看到:

关键函数就是这个SecurityCheck了,这个函数在so里面。

2.去反调试

由于这个程序用IDA附加后跑根本跑不起来,所以需要跟一下流程。

在Jni_Onload函数下好断点,动态调试。

分析后发现nop这个call可以过反调试:

3.在SecurityCheck函数段首F2,输入“123456”触发断点,F8单步分析到这里;

R2存放正确的password:

R0为输入的password:

然后下面CMP R3,R1 之后就是关键跳了。

看到R2前面的提示,很明显了。

输入“aiyou,bucuoo”

提示密码正确,第二题就是这样了。

第三题:

1.Apktools反编译,发现内容加载了一个so。应该是早期Ali的一个壳子。

2.IDA附加跑程序,发现会退出,又是反调试,那就需要去掉反调试。

到了第三题,为了保险起见,直接在ptrace下断点好了,IDA载入libmobisec.so

找到ptrace函数的引用:

在2个函数段首下好断点。IDA附加:

断下来首先停在这个函数:

找到段尾的出栈操作的Hex 把第二句替换掉,实际上也就达到了nop掉整个call的效果。但是这个函数nop掉会出错,可能还与其他call有关联,毕竟是一个大call。

接着试一下另外一个函数,F9就会断在第二个函数了如图:

把第二行改成让它直接POP出去如下:

然后程序就能跑起来了,直接F9跑起来,这个时候代码已经全部解密了。

在16进制窗口找到:

这是1个odex的头,我们从dex.035开始往后翻,找到一段全为0的区域(因为区块中间都是会有一大段00 00 00,就把前面的dump下来,如果不行,继续往下翻,这样就可以把解密的dex dump出来了。再用baksmali和smali进行转换一下,就可以得到脱壳后的dex原始文件了。用JEB查看:

如图所示,重点就是b类和e类了。

然后就是几种思路了:

1.把anti-debug代码去掉重打包。

2.Hook anti-debug的函数,让它们“闲着”。

3.用其他绕过去

把脱壳后的dex重打包签名,安装好,准备动态调试。

主要方法就是JEB里面静态分析与动态调试smali代码相结合的方式。

首先静态分析可以知道一下内容:

因为我比较懒,就用Eclipse来调试Smali了,走了几遍,发现了SendEmptyMessage后面的参数为0才是正确的。所以往下找分析如下:

s5的算法:

31x+y=3618

x+y=168

解出来就是s5

然后在Eclipse的变量窗口中找到v_51的值为“7e1p”:

所以“s57e1p”就是正确的字符串密码了。

在e类的table中一一对应好,所以真正的密码为:

“… _____ ____. . ..___ .__.”。

写得比较简洁,过程还是比较长的,最后的算法要绕过层层判断才能深入内部,得到7e1p的值。

最后感谢各位一起玩耍的小伙伴了,有你们世界真精彩!剩下的就是做世间最难做的一件事了—-“坚持”,再坚持2个月就奖自己一台电脑好了。加油加油,等着好了。

Ericky

2015.1.26

–推荐给朋友

公众微信号:吾爱破解论坛

或搜微信号:pojie_52

–内容分享

点击右上角“…”标志,分享到朋友圈

–更多精彩内容

请点击右上角“…”标志,点击“查看公众号”,往下拉一点再点击“查看历史消息”即可!

–官方论坛

www.52pojie.cn

如未说明则本站原创,转载请注明出处:NULL » [Android]2015移动安全挑战赛MSC解题思路