【APP逆向01】逆向原理与反编译工具
-
APP正向开发
- 安卓开发工程师---》Java语法+安卓框架---》实现功能(java+C)---》写的代码 打包---》xx.apk(资源文件:图片,音频 java: .dex)
-
APP逆向
- 拿到 xx.apk--->反编译(加壳,混淆)---》java+c 代码---》hook技术(验证代码)---》python还原逻辑--》发送请求获取数据
-
什么是反编译
- 1.反编译是指将已编译的安卓应用程序(APK文件)转换回其源代码的过程
- 通常,安卓应用程序在开发过程中会经过编译,将源代码转换为可执行的二进制代码,这使得源代码不可见和难以理解。反编译的过程旨在还原应用程序的源代码,以便进行分析、理解和修改。
- 2.通过安卓反编译,你可以获取应用程序的源代码,了解其实现逻辑、算法、资源文件和其他关键信息。这对于安卓应用程序的安全评估、漏洞分析、逆向工程、定制化和学习都有重要意义。
- 3.在安卓反编译过程中,常见的工具和技术包括:
- apktool:apktool是一款常用的开源工具,用于反编译和重新打包APK文件。它可以将APK文件解压为资源文件和Smali代码,并提供了对Smali代码进行分析和编辑的功能。
- JADX:JADX是一款功能强大的开源工具,用于将APK文件转换为可读的Java源代码。它能够还原大部分Java代码,并提供源代码分析和导航功能
- JD-GUI:JD-GUI是一款免费的Java反编译工具,可以将已编译的Java类文件转换为可读的Java源代码。尽管它主要用于Java反编译,但对于某些Smali代码的反编译也有一定的支持
- 1.反编译是指将已编译的安卓应用程序(APK文件)转换回其源代码的过程
-
JADX的下载与安装
- 1.电脑安装JDK,自行百度
- 2.下载jadx,去我的百度云取即可;链接:https://pan.baidu.com/s/1IarNlSu2P00Zy3D5pIQUJQ 提取码:f1eh
- 3.解压之后,来到bin路径下
- win:双击 jadx-gui.bat
- mac: ./jadx-gui
- 4.将app包直接拖到jadx中即可