Android 逆向入门系列-apk 文件架构与dex2jar获取java层代码
来源:互联网 发布:华为mate8预装软件列表 编辑:程序博客网 时间:2024/06/05 03:15
- APK 文件结构
- dex2jarjd-gui获取java层代码
- java代码分析
- 总结
APK 文件结构
最简单的HelloWorld.apk zip 解压后的文件目录:
- META-INF:存放apk签名信息,完整性校验信息。
- res:存放资源文件。
- AndroidMainfest.xml,apk配置xml文件,经过压缩,直接打开为乱码。
- classes.dex:dex字节码文件(在Davlik虚拟机中运行的代码文件)。
- resources.arsc:资源文件与资源文件ID的映射关系。
这只是最基础的apk文件目录,很多apk的文件目录不止包含这些。(还可能包括lib、assets等文件夹)
lib:存放so库文件;assets包含资源文件,与res有差别。
dex2jar、jd-gui获取java层代码
1.将apk zip解压目录下得dex文件拷贝至dex2jar目录下
2.dex2jar目录下运行d2j-dex2jar.bat(windows环境下)
d2j-dex2jar.bat classes.dex
dex2jar目录下将生成一个jar文件
3.jar文件可以用jd-gui打开:
java代码分析
由上图我们可以看到jar中不仅包含开发者编写的java代码,还包含android自带的代码库,我们直接分析开发者编写的代码即可。
查看MainActivity.class:
与android studio源码比较:
课件反编译效果很棒,不过参数名被重新命名,资源ID未还原至映射的资源,在R.class里可以对应找到:
总结
apk的文件架构可以帮助读者理解apk的运行过程,dex反汇编为java代码可能更容易让不熟悉smali代码的人阅读分析。当然smali代码是进阶要求,在后面需要完成apk插桩重打包等功能时是必不可少的。
java代码分析时要注意区分库代码和开发者编写代码,把主要的精力放在开发者编写代码上。
- Android 逆向入门系列-apk 文件架构与dex2jar获取java层代码
- Dex2jar 与 JD-GUI快速反编译Android apk文件
- dex2jar与jd_gui反编译Android中JAVA代码
- 【Android安全】【Android】使用dex2jar 与JD-Gui 反编译APK文件,查看源代码
- 【Android】使用dex2jar 与JD-Gui 反编译APK文件,查看源代码
- 使用dex2jar 与xjad 反编译APK文件,查看源码
- 使用dex2jar反汇编android的apk文件
- android使用apktool 和 dex2jar反编译apk文件
- apktool dex2jar 反编译apk文件
- Android逆向分析之dex2jar异常处理
- Android逆向分析之dex2jar异常处理
- Android逆向分析之dex2jar异常处理
- 【Android SDK程序逆向分析与破解系列】之一:Android安装程序APK分析
- 【Android SDK程序逆向分析与破解系列】之五:Android APK的静态分析
- android技巧:apk文件反编译以及签名打包(dex2jar&jd,apktool,apk-sign)
- 反编译APK获取java代码与图片,字符串资源,xml文件等资源
- 反编译APK获取java代码与图片,字符串资源,xml文件等资源
- 反编译APK获取java代码与图片,字符串资源,xml文件等资源
- 二级指针的内存模型
- 自然语言处理技术(NLP)在推荐系统中的应用
- 二分查找
- 使用OpCacheGUI可视化管理opcache
- spring boot(9)-mybatis关联映射
- Android 逆向入门系列-apk 文件架构与dex2jar获取java层代码
- PHP单元测试-保障代码正确运行的护卫神
- 51nod1297 管理二叉树
- 对比线程安全和可重入函数
- python 发送邮件
- 安装 arm-linux-gdb7.5 & 可能出现的两类问题解决
- 在Kaggle上赢得大数据竞赛的技巧和窍门
- Php文件系统函数
- 版本更新使用