【218期-7】apk文件基本结构+dex2jar的使用

 

apk文件基本结构+dex2jar的使用...





来源:网安杂谈(ID:sdpcwa)

作者:山东警院 张璇

01.apk文件的基本结构

apk文件,即Androidapplication package文件,其中包含了应用的二进制代码、资源、配置文件等。apk文件实际是一个zip压缩包,可以通过解压缩工具解开。这里我们以一个拦截马样本为例来说明。直接右键解压缩可以看到拦截马的包结构如下图所示:

a.AndroidManifest.xml

是每个应用都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等等信息。

b.META-INF目录

存放的是签名信息,用来保证apk包的完整性和系统的安全。拿到一个apk包后,如果想要替换里面的图片、代码、或其他信息,想直接解压缩、替换再重新打包,基本是不可能的。软件修改要先将里面的证书文件删除(***.RSA、***.SF、***.MF三个文件)再重新签名,否则软件无法安装。

c.classes.dex文件

classes.dex是java源码编译后最终生成的dalvik 字节码。

d.res目录

res目录存放资源文件。res文件夹里存放的大部分是软件所需的资源及布局文件(drawable存放资源、layout、xml存放布局文件***.xml),部分需要汉化的单词、语句会在这些***.xml文件里。

e. resources.arsc

编译后的二进制资源文件。resources.arsc文件是编译后的资源文件,大多数情况下,需要汉化的单词、语句绝大多数都在这个文件里,汉化的时候首先就要看这个文件。

f.assets目录

assets目录可以存放一些配置文件,这些文件的内容在程序运行过程中可以通过相关的API获得。比如可以把一个text文件放到工程的asset目录下,然后把这个txt当作普通文件处理。同理,asset也可以放置其他文件,最近比较流行的拦截马样本就是将真正的恶意代码放到assets目录下。

g.lib目录

如果有的话,一般lib目录下的子目录armeabi存放的是一些so文件。

02.dex2jar的使用

上一部分我们看到了,apk包中,classes.dex文件必然存在。除了使用改之理、androidkiller等集成工具外,可以用dex2jar工具直接处理,将delvik字节码转换为jar,然后就可以用jd-gui来阅读java源码了。

下载dex2jar2.0,解压看到里面集成了很多工具。我们就以dex转换成jar的功能为例。
a.设置java环境变量。参考http://jingyan.baidu.com/article/f96699bb8b38e0894e3c1bef.html

b.将apk包解压,拷贝其中的classes.dex文件到dex2jar工具目录下。

c.打开cmd命令界面,并进入dex2jar目录。执行命令:dex2jar.batclasses.dex (此处为方便,将转换命令重命名成了dex2jar.bat,根据版本不同,输入具体命令)
 
转换完毕,能看到文件夹下多了classes-dex2jar.jar文件。
d.打开jd-gui,file选项选择打开classes-dex2jar.jar,就能查看源码了。
扩展阅读:

1、Android勒索软件研究报告

http://blogs.360.cn/360mobile/2016/04/12/analysis_of_mobile_ransomware/?from=timeline&isappinstalled=0

2、Android DEX安全攻防战

http://bbs.pediy.com/showthread.php?t=177114

3、apk的混淆、加壳与加密

http://mp.weixin.qq.com/s?__biz=MzAwMTMzMDUwNg==&mid=403394848&idx=1&sn=6c074aa3b33ffe373e1b861a1540fa43&scene=1&srcid=0411SKdV5QEcvMktzDxipsbR#wechat_redirect

4、Android 上百实例源码分析以及开源分析

http://mp.weixin.qq.com/s?__biz=MzIxMTE0ODU5NQ==&mid=402721390&idx=1&sn=944454e72d2708334d5c663aa4f67cae&scene=1&srcid=0412OFOAlLnRBhjogtZlozL7#wechat_redirect

5、App安全之网络传输安全

https://mp.weixin.qq.com/s?__biz=MzAxMzE2Mjc2Ng==&mid=2652154683&idx=1&sn=f16dadabad48b01159deadfa9e7ea09b&scene=1&srcid=0416rAnrTr0kS1nvmbnzKZVh&key=b28b03434249256b550a0f5d779ab9e4ff82c51f1ca7e7a01e311184ae74601a6507e1d015c7403d3e8cc04ba074e530&ascene=1&uin=MTc2MzMxMzY0Mg%3D%3D&devicetype=Windows+7&version=61050015&pass_ticket=3ZmmmEQXUP%2B%2Fp8j50I%2FW2%2BYDHrMcFM5IJmfZOZiLa6XpJzWfB7wxu2ZV11NH2LMZ

6、Android应用安全开发之浅谈网页打开

APPhttp://mp.weixin.qq.com/s?__biz=MzIwMTI4Nzk5Ng==&mid=2650218960&idx=1&sn=4d31e055a0aa9955b78e8195db61c39f&scene=1&srcid=0425H4aZBSbYYYAokm2JB8Dj#wechat_redirect

7、手把手教你反编译别人的app

http://mp.weixin.qq.com/s?__biz=MzAxMzE2Mjc2Ng==&mid=2652154744&idx=1&sn=d5c2a2660a79a8f43d6512b6300758f9&scene=0#wechat_redirect

8、如何利用dex2jar反编译APK

http://jingyan.baidu.com/article/ae97a646ce78c2bbfd461df0.html

今日推荐:“网安杂谈”

关注方法:

1、长按下面图片二维码,识别图中二维码,关注;

2、进入微信,添加朋友,公众号,输入“sdpcwa”后“搜索”到“网安杂谈”,点击,“关注”即可。


    关注 电子物证


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册