【APP-逆向原理与反编译工具】

发布时间 2024-01-10 20:45:20作者: Tony_xiao
  • 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代码的反编译也有一定的支持
  • JADX的下载与安装

    • 1.电脑安装JDK,自行百度
    • 2.下载jadx,去我的百度云取即可;链接:https://pan.baidu.com/s/1IarNlSu2P00Zy3D5pIQUJQ 提取码:f1eh
    • 3.解压之后,来到bin路径下
      • win:双击 jadx-gui.bat
      • mac: ./jadx-gui
    • 4.将app包直接拖到jadx中即可