首页
社区
课程
招聘
3
[原创]交流贴-阿里聚安全分析笔记1
发表于: 2015-7-14 23:09 15801

[原创]交流贴-阿里聚安全分析笔记1

2015-7-14 23:09
15801

在看雪潜水也好久了,也关注过各位大大的各种加固工具的技术贴,受益匪浅。下午有人问我,了解过聚安全吗?我愣了下,说没有,又问为什么没了解过?我着实没考虑过这个问题,想了想好像只能用要桑课和做实验室项目来安慰自己了,可这不是我想要的呀,于是我决定试着分析下,并通过看雪这个平台和大家交流下,水平有限,中间也会遇到各种未知的槛,望大大们不吝赐教。

分析过程:
原始apk是非虫书上的例子debugjniso.apk,加固的版本是找到的五月份加固的样本(能找到归功于做科研培养的良好的样本收藏习惯)。
1. 利用APKTool反编译,发现是可以的

2. 解压后比较下加固前后文件夹

首先lib目录下增加了四个so文件,源apk中的libdebugjniso.so没改变,显然没对so进行加壳。
另外AndroidManifest.xml和dex文件改变了,估计留在外面的dex是壳,后面再分析这两个文件。

3.Dex2jar生成jar包,jd-jui打开查看

这里只看到根据cpu类型加载不同的so库,arm下是libmobisec.so,x86下是libmobisecx.so,另外声明了两个jni函数,attachBaseContext和onCreate()。
查看反编译后的smali代码,也确实是这样,dex2jar没受到影响。

4.安装运行,单进程。(之前受梆梆加固多进程反调试荼毒太深。。)

5.尝试附加一下。用IDA attach下试试,what?这样就附加上了?一定有阴谋。看看先~
6.不明觉厉,不管了,先试着dump dex。

然后找到应用进程,查看maps并dump dex

打开查看,找到了dey和dex,好高兴,准备从里面取出dex.

等等,不对啊,内存dump的这个dex和外面的dex壳很像呀,比较下还真是一样。。。
那真正的dex在哪里?回头查看刚才忽略的so,发现libmobisecy.so其实不是一个so,如图

用IDA打开发现,libmobisecy.so其实是个存储了dex的zip.

7.解压libmobisecy.so后得到一个dex,Baksmali反编译,得到如下:

对比源apk的dex反编译目录

现在一个一个文件夹分析。
先比较android目录,和预想的一样,加固前后没变化。
分析a目录,里面就一个an.smali,查看代码,发现了一个testdex2jarcrash函数,后来发现pnf里的exit.smali与an.smali是一样的。
看名字好像是用来干扰dex2jar的,验证了下还真是:
(下图是so中获取的dex转成jar查看,有testdex2jarcrash)

dex2jar打出的log如下:
com.googlecode.dex2jar.DexException: while accept method:[La/a/a/a/a/an;.testdex2jarcrash(Ljava/lang/String;Ljava/lang/String;)V]
at com.googlecode.dex2jar.reader.DexFileReader.acceptMethod(DexFileReader.java:701)
......省略
Caused by: com.googlecode.dex2jar.DexException: while accept parameter annotation in method:[La/a/a/a/a/an;.testdex2jarcrash(Ljava/lang/String;Ljava/lang/String;)V], parameter:[0]
at com.googlecode.dex2jar.reader.DexFileReader.acceptMethod(DexFileReader.java:670)
... 9 more
Caused by: java.lang.RuntimeException: EOF
at com.googlecode.dex2jar.reader.io.ArrayDataIn.readUByte(ArrayDataIn.java:131)
......省略
... 9 more

这个很熟悉呀,之前<<Android Dex攻防>>中提到过,看雪链接如下:
http://bbs.pediy.com/showthread.php?t=177114

因此去除a目录和pnf目录(实验中发现其实只去除a目录即可,pnf其实没影响,不知道为什么),效果如下:

Pnf目录提过了,就不说了,不过路径很幽默,就是下面这个 —。—!
xxx\pnf\this\boject\does\not\Exist.smali

然后开始看com目录,发现许多方法中抛出RuntimeException异常,如图

另外在DebugjnisoActivityn中发现许多native函数的声明,如图

今天的分析先到这,对基本确定的小结一下:
1.加固后外面的是个壳dex,真正的dex放到libmobisecy.so中了。
2.解压缩后得到的dex不能直接dex2jar,去掉其中的a目录和pnf目录然后回编译就能正常了。
准备明天分析下RuntimeException作用、native函数的作用和libmobisec.so。之前没接触过RuntimeException,准备明天现学下,希望能得到指点。其他方面也希望大大们不吝赐教


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

上传的附件:
收藏
免费 3
支持
分享
赞赏记录
参与人
雪币
留言
时间
飘零丶
为你点赞~
2024-5-31 05:18
shinratensei
为你点赞~
2024-5-31 05:12
PLEBFE
为你点赞~
2023-2-26 02:37
最新回复 (11)
雪    币: 116
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
= = 图挂了
2015-7-15 01:23
0
雪    币: 47
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
已修复
2015-7-15 08:28
0
雪    币: 1885
活跃值: (722)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好文啊,支持,希望楼主也能把你分析时,具体使用的工具和版本发一下,谢谢
2015-7-15 09:32
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
5
论坛活动->11)移动安全挑战赛(MSC)
先看看里面的解题报告吧,阿里的加固来回也就那么点东西 =。= (大阿里的小伙伴们看不到,看不到,看不到~~看到了也别来拍我)

好吧,事实上现在市面上的加固也没什么新东西,之前都分析文章都讲得差不多了
2015-7-15 10:18
0
雪    币: 188
活跃值: (167)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
好文!~~
2015-7-15 10:22
0
雪    币: 47
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
谢谢QEver大大的提醒,正想找些解题报告类的找些思路呢
2015-7-15 10:38
0
雪    币: 1385
活跃值: (1636)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
NISL Android Attack platform这个工具在哪下载啊?
2015-7-15 15:09
0
雪    币: 47
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
这个是在实验室开发的小工具,目前还只支持几个基本的功能,回头完善下会开源的~
2015-7-15 18:53
0
雪    币: 47
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
其实大部分都是常见的工具,等后面分析完了会再补充上的~
2015-7-15 18:58
0
雪    币: 1885
活跃值: (722)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
好的,谢谢了
2015-7-19 10:35
0
雪    币: 349
活跃值: (2468)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
支持好文,||||收藏学习|~
2015-7-25 12:43
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册