发新帖

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

[复制链接]
8993 4
大家好,我是七少月,安卓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

举报 使用道具

回复

精彩评论4

我放不下你    发表于 2016-2-19 11:18:46 | 显示全部楼层
资磁月少!!!

举报 使用道具

回复
lies2014    发表于 2016-2-19 12:47:11 | 显示全部楼层
与时俱进,谢谢分享!

举报 使用道具

回复 支持 反对
逆向学习菜鸟    发表于 2016-2-19 15:42:34 | 显示全部楼层
师傅作品 ,先顶上去

举报 使用道具

回复 支持 反对
无名侠    发表于 2016-2-19 16:08:19 | 显示全部楼层
看了你在看雪的文章,支持一个。

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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