逆向三板斧

突然想起它: [[noteOfjava]]

三板斧 - apktool#

https://apktool.org/docs/install/#linux

java -jar apktool.jar d -f -o outputDir yourApp.apk
// 或
./apktool d -f -o outputDir yourApp.apk

文件目录说明:

目录/文件名用途内容
original保存 Apktool 无法直接处理的原始文件AndroidManifest.xml 和签名信息目录 META-INF
res包含应用程序的资源文件drawable (图片资源), layout (布局文件), values (字符串等), menu (菜单定义), xml (其他 XML 资源)
smali包含反编译后的字节码文件.smali 文件,每个对应一个 Java 类的方法
assets存放原始文件资源,不经编译处理音频、视频、HTML、字体等文件
lib存放 native 库(.so 文件)不同平台架构的 .so 文件
AndroidManifest.xml应用的清单文件,定义应用名称、包名、版本、权限等XML 格式的配置信息
apktool.ymlApktool 的配置文件,存储解码和重建参数框架版本、资源位置、编码设置等
注意事项
  • 修改资源或代码后,使用 Apktool 重新打包 APK。
  • 确保遵守法律法规和使用协议

Smali 是一种用于 Android 应用程序的DEX(Dalvik Executable)文件的汇编语言。它是DEX代码的反汇编表示,类似于Java的字节码。Smali 语法具有特定的结构和规则,以下是一些基本概念和语法: