吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16622|回复: 43
收起左侧

[Android 原创] 菜鸟之2015MSC解题思路

  [复制链接]
Ericky 发表于 2015-1-28 17:43
2015 移动安全挑战赛 1.22-1.25
前言
2个多月前,也就是11月中旬去深圳玩了一趟,在同学的带领下,花了2天在腾讯内部感受他们的环境和工作氛围,加班的很多,感觉他也确实很幸苦。回来之后,第一天晚上没睡着,感觉别人都在玩命,而我却在潇洒。于是便买了一本移动安全的书,扎扎实实得学了两个月。尽管挫折很多,多次想放弃,在此就要谢谢我的小伙伴们了,因为之前PC端朋友们的鼓励和移动端朋友们耐心解答我这个新手的问题,我坚持了下来。参加这次比赛在我看来我只是抱着一种学习的心态来看看,多亏有上天眷顾,幸运获奖。下面就分享下比赛中题目的解题思路。
第一题:
1.Apktools反编译之后定位到MainActivity中的onCreate函数,发现关键跳:
图片1.png
2.往上看发现了:
图片2.png
v4 v2 v5 都是Log出来的,打开DDMS。输入123看log:
图片3.png
发现enPassword为123对应的加密字符串,pw其实就是正确的密码了。
为了找到pw所对应的字符串作为输入,输入0123456789ABCDEF再次log出来。
图片4.png
对照可以知道,只要输入“581026”对应的就是正确的pw了。
第二题:
1.Apktools反编译之后可看到:
图片5.png
关键函数就是这个SecurityCheck了,这个函数在so里面。
2.去反调试
由于这个程序用IDA附加后跑根本跑不起来,所以需要跟一下流程。
在Jni_Onload函数下好断点,动态调试。
分析后发现nop这个call可以过反调试:
图片6.png
3.在SecurityCheck函数段首F2,输入“123456”触发断点,F8单步分析到这里;


图片7.png
R2存放正确的password:
图片8.png
R0为输入的password:
图片9.png
然后下面CMP R3,R1 之后就是关键跳了。
看到R2前面的提示,很明显了。
输入“aiyou,bucuoo”
提示密码正确,第二题就是这样了。
第三题:
1.Apktools反编译,发现内容加载了一个so。应该是早期Ali的一个壳子。
2.IDA附加跑程序,发现会退出,又是反调试,那就需要去掉反调试。
到了第三题,为了保险起见,直接在ptrace下断点好了,IDA载入libmobisec.so
找到ptrace函数的引用:
图片10.png
在2个函数段首下好断点。IDA附加:
图片11.png
断下来首先停在这个函数:
图片12.png
找到段尾的出栈操作的Hex 把第二句替换掉,实际上也就达到了nop掉整个call的效果。但是这个函数nop掉会出错,可能还与其他call有关联,毕竟是一个大call。

接着试一下另外一个函数,F9就会断在第二个函数了如图:
图片13.png
把第二行改成让它直接POP出去如下:
图片14.png
然后程序就能跑起来了,直接F9跑起来,这个时候代码已经全部解密了。
在16进制窗口找到:
图片15.png
这是1个odex的头,我们从dex.035开始往后翻,找到一段全为0的区域(因为区块中间都是会有一大段00 00 00,就把前面的dump下来,如果不行,继续往下翻,这样就可以把解密的dex dump出来了。再用baksmali和smali进行转换一下,就可以得到脱壳后的dex原始文件了。用JEB查看:

图片16.png
如图所示,重点就是b类和e类了。
然后就是几种思路了:
1.把anti-debug代码去掉重打包。
2.Hook anti-debug的函数,让它们“闲着”。
3.用其他绕过去
把脱壳后的dex重打包签名,安装好,准备动态调试。
主要方法就是JEB里面静态分析与动态调试smali代码相结合的方式。
首先静态分析可以知道一下内容:
图片17.png

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

图片18.png
s5的算法:
31x+y=3618
x+y=168
解出来就是s5
然后在Eclipse的变量窗口中找到v_51的值为“7e1p”:
图片19.png
所以“s57e1p”就是正确的字符串密码了。
在e类的table中一一对应好,所以真正的密码为:
“... _____ ____. . ..___ .__.”。

写得比较简洁,过程还是比较长的,最后的算法要绕过层层判断才能深入内部,得到7e1p的值。
最后感谢各位一起玩耍的小伙伴了,有你们世界真精彩!剩下的就是做世间最难做的一件事了----“坚持”,再坚持2个月就奖自己一台电脑好了。加油加油,等着好了。
Ericky
2015.1.26

2015移动端安全挑战赛1.22-1.25.zip

145.08 KB, 下载次数: 115, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 10热心值 +10 收起 理由
lawlier + 1 我很赞同!
傲世V雄哥720 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
kennedy + 1 我很赞同!
Daemon + 1 我很赞同!
Chago + 1 我很赞同!
FierceWind + 1 学习了!
7777777line + 1 谢谢@Thanks!
小淫仙 + 1 我很赞同!
kian + 1 热心回复!
逍遥枷锁 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Ericky 发表于 2015-1-29 17:44
Hmily 发表于 2015-1-29 16:04
安卓里用log输出日志是个不错的方法,顺便编辑下帖子去掉了一些不能识别的效果代码。

好像没找到不能识别的。。。。晕

点评

正文是从哪复制过来的吧?有一些没事别,我去掉了。  详情 回复 发表于 2015-1-29 17:49
 楼主| Ericky 发表于 2015-9-8 17:42
kevking 发表于 2015-9-7 18:23
看到楼主写的东西,很有共鸣。大家都在努力,我也不能再懒散下去了,为了那些爱我的和我爱的人,加油!

加油。。。。
myoldid 发表于 2015-1-28 22:39
疯狂的破解员 发表于 2015-1-29 09:50
向大牛们学习!
JPK 发表于 2015-1-29 11:15
学习了 谢谢楼主!
西枫游戏 发表于 2015-1-29 14:44
很牛的 。好好学习
Hmily 发表于 2015-1-29 16:04
安卓里用log输出日志是个不错的方法,顺便编辑下帖子去掉了一些不能识别的效果代码。
Hmily 发表于 2015-1-29 17:49
PoJie_小雨 发表于 2015-1-29 17:44
好像没找到不能识别的。。。。晕

正文是从哪复制过来的吧?有一些没事别,我去掉了。
 楼主| Ericky 发表于 2015-1-29 17:50
Hmily 发表于 2015-1-29 17:49
正文是从哪复制过来的吧?有一些没事别,我去掉了。

直接从word复制过来的,把图片插入了一下

点评

恩,可能word里的格式代码discuz无法识别。  详情 回复 发表于 2015-1-29 17:52
Hmily 发表于 2015-1-29 17:52
PoJie_小雨 发表于 2015-1-29 17:50
直接从word复制过来的,把图片插入了一下

恩,可能word里的格式代码discuz无法识别。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-27 09:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表