首页
社区
课程
招聘
[原创]安卓5.0oat文件原生逆向浅析视频教程
发表于: 2016-2-18 21:00 7993

[原创]安卓5.0oat文件原生逆向浅析视频教程

2016-2-18 21:00
7993

大家好,我是七少月,安卓5.0系统已成常态,而大部分朋友的思维依然在Davlik阶段,本例就是一个简单的使用oatdump工具逆向安卓5.0特征文件oat文件的一个演示。目前,对于oat文件逆向和oatdump工具大多教程为图文,此为视频,仅供参考,希望提出宝贵意见。

oatdump文件在/system/bin路径下,
该文件只能在手机连接下使用
命令:
adb shell oatdump --oat-file=/data/dalvik-cache/arm64/data@app@com.example.helloworld1-1@base.apk@classes.dex

这是我手机里的情况,如有时/dalvik-cache/arm64路径是/dalvik-cache/arm,
自己修改。另外,这个文件路径一般不要改动,虽然理论上没问题,但实际会
出现Unknown的问题,当然你可以试试在su下情况。

现象:与安卓4.4以前版本不同,原本/data/app/包名.apk,现在为/data/app/包名/base.apk,当我们对base.apk进行替换,替换为另一个修改过的base.apk,那么当打开软件是,是被替换过的APK运行情况。而当你替换=/data/dalvik-cache/arm64/data@app@com.example.helloworld1-1@base.apk@classes.dex这个文件时,则依然以原APK方式运行,此时这个dex文件实则是OAT文件。

结论:
1.在安卓5.0系统及其以上,打不打开一个APK并不重要,重要的是APK在安装时;
2.dex2oat,也就是APK的DEX文件是在安装时编译为oat文件的;
3.即使oat文件出现错误或被删除,依然可以正常运行,用的就是原davlik虚拟机模式,所以才发生上述的现象。

技巧:
简化你的APP:由于cmd窗口容量有限,如果不进行简化,根本看不到我们关心的smali及其方法。我们把R.SAMLI等全部删掉,发现APK依然可以成功运行。这样我们就只保留关键的mainactivity.smali,可以完全看到该smali的原生情况。
另外,APK能不能打开也不重要,因为即使APK不能打开,它安装时就会生成oat文件,丝毫不影响我们去分析oat文件。这与原davlik必须打开才生成相应的DEX文件有根本区别。

下载链接:http://pan.baidu.com/s/1nus8EYd


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 3
支持
分享
最新回复 (4)
雪    币: 268
活跃值: (3238)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
好东西,,谢谢~~
2016-2-19 09:55
0
雪    币: 6911
活跃值: (9069)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
3
支持一个,正好学习一下。
2016-2-19 11:26
0
雪    币: 206
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
关心的另外问题是:如果APK是加壳或者混淆的,生成oat文件是否也是加壳还是原生态的???
2016-2-19 11:41
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
必然的也是
2016-2-20 13:16
0
游客
登录 | 注册 方可回帖
返回
//