admin 管理员组文章数量: 886992
哔哩哔哩:https://www.bilibili/video/BV1UE411A7rW?p=1
Android 逆向工程师系统培训‹第九期›( 课程目录 ):https://ke.yijincc/course-21.htm
安卓逆向工程师:https://ke.yijincc/profession/1.htm
打造年轻人的第一套安卓逆向环境!
原味镜像介绍文章:https://mp.weixin.qq/s/gBdcaAx8EInRXPUGeJ5ljQ
原味镜像介绍视频:https://www.bilibili/video/BV1qQ4y1R7wW/
下载地址:
谷歌盘:https://drive.google/drive/folders/1AdZ1x5G9CcJGXiLqGL9mhDJWlRz8KZl_?usp=sharing
GoFile:https://gofile.io/d/GeqM2O
百度盘:链接:https://pan.baidu/s/1anvG0Ol_qICt8u7q5_eQJw 提取码:3x2a
阿里盘:http://49.235.84.125:8080/r0env
登录时用户名:root 密码:toor
1. 逆向环境配置
1. java 开发环境:java jdk、java jre
java jdk 最好安装 jdk8 的最新版本,如果安装更高的 java 版本,一些逆向工具可能使用不了。
安装 java jdk8 的时候会自动弹出 对应 jre 的安装。
2. 安卓开发环境:安卓 sdk、ndk
安卓 sdk 和 ndk 下载完成后,直接解压,然后配置环境变量即可。。。
也可以通过 android studio 进行 sdk 和 ndk 的安装
通过 Android studio下载的 sdk 中没有 tools 文件夹的解决办法:https://blog.csdn/General_Ma/article/details/104707265/
sdk 主要配置两个目录:tools、platform_tools
ndk 的安装:官网下载 ( https://developer.android.google/ndk/ ) ndk 进行安装
2. APK 文件结构
APK 是 Android PacKage 的缩写,即 Android 安装包。apk 文件也就是 Android 打包流程的产物。那么 apk 是一个什么类型的文件?它包含了一些什么内容? 弄清楚了这些,我们就可以带着目的性,去分析打包流程,可以更好的关注 apk 文件中的这些内容是在打包流程的哪个过程中产生,以及是如何产生的。
众所周知,apk 文件本质上其实是一个 zip 格式的压缩包。想要知道其中包含了什么,改后缀然后用解压缩工具即可打开任何一个APK文件。 如果有 代码混淆 和 加密,通过普通解压缩工具打开里面的文件或目录会看到各种乱码。
apk 概览
- assets (程序资源目录)
- META-INF(签名证书目录)
- res(界面布局/图片资源目录)
- AndroidManifest.xml(APK属性/权限/组件声明)
- classes.dex(Android 虚拟机可执行字节码)
- resources.arsc(字符串/资源索引文件)
图示:
这里解压了某个未经过 加固加壳 或者 其他手段加密的 Android 安装包文件,以下为结果截图:
https://www.sohu/a/149758866_675634
主要注意红色标注部分,这一些文件和文件夹是一个 Android 应用基本都具备的。而其他的一些文件和文件夹则是一些第三方库,或者是其他一些代码生成的。 接下来,依次大概介绍一下这些文件和文件夹的作用。
- AndroidManifest.xml:这是 Android 应用的全局配置文件,它包含了这个应用的很多配置信息,例如包名、版本号、所需权限、注册的服务等。可以根据这个文件在相当程度上了解这个应用的一些信息。该文件目前状态是被编译为二进制的 XML 文件,可以通过一些工具(如 apktool)反编译后进行查看。Analyze apk 是一个很不错的 apk 分析(~~hack 入门~~)工具。我们可以通过它直接反编译看到原始的 AndroidManifest.xml 文件。
-
assets 文件夹:assets 文件夹用于保存需要保持原始文件的资源文件夹,开发过程中拖了什么到里面,打包完之后里面还是什么。一般用于存放音频,网页(帮助页面之类的),字体等文件。主要需要知道的点是,它与 res 文件夹的区分以及如何在应用中访问该文件夹的资源,如它可以有多级目录而 res 则只有两级。
-
dex 文件:classes.dex 文件是 Android 系统运行于 Dalvik Virtual Machine 上的可执行文件,也是Android 应用程序的核心所在。项目工程中的 Java 源码通过 javac 生成 class 文件,再通过 dx 工具转换为 classes.dex,注意到我们这里有 classes2.dex 和 classes3.dex。这是方法数超过一个 dex 的上限,分 dex 的结果。分 dex 在 Android 5.0 之前需要开发者自行完成,5.0 后 dx 自带支持。dex 文件的数据结构不算复杂,如下图所示。目前一些热补丁有关的技术,主要便是对 dex 做各种处理。
-
lib 文件夹:该目录存放着应用需要的 native 库文件。比如一些底层实现的图片处理、音视频处理、数据加密的库以 so 库的形式在该文件夹中。而该文件夹下有时会多一个层级,这是根据不同CPU 型号而划分的,如 ARM,ARM-v7a,x86等。
-
META-INF 文件夹:该目录的主要作用是用于保证 APK 的完整性以及安全性。该文件夹下,主要有三个文件。MANIFEST.MF:这个文件保存了 整个apk文件 中 所有文件的文件名 + SHA-
版权声明:本文标题:安卓逆向_1 --- 逆向环境配置、APK 文件结构、APK 打包流程 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1733946995h1646045.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论