【Android 逆向】ApkTool 工具使用 ( ApkTool 简介 | ApkTool 解包和打包 )
2023-09-14 09:07:30 时间
前言
之前写的 ApkTool 相关博客 :
- 【Android 安全】DEX 加密 ( 常用 Android 反编译工具 | apktool | dex2jar | enjarify | jd-gui | jadx )
- 【Android 逆向】Android 逆向工具 ( Apktool | IDA | Python )
- 【Android 逆向】APK 文件处理脚本 ApkTool.py ( 脚本简介 | 用法 | 分析 APK 文件 )
一、ApkTool 简介
参考 【Android 安全】DEX 加密 ( 常用 Android 反编译工具 | apktool | dex2jar | enjarify | jd-gui | jadx ) 一、apktool 博客章节 ;
官网地址 : https://ibotpeaches.github.io/Apktool/
文档地址 : https://ibotpeaches.github.io/Apktool/documentation/
二、ApkTool 解包和打包
ApkTool 的最重要的两个作用是 解包 和 打包 ;
- 解包 : 拿到 APK 文件 , 如果按照 zip 格式解压出来 , xml 文件都是乱码 ; APK 文件打包时 , 会将 xml 文件进行压缩转为二进制文件 , 以减小体积 ; 解包时 , 必须使用 ApkTool 解包工具 , 将二进制数据格式的 xml 文件转为 文本 xml 文件 , 才能获取刻度的 xml 文件 ;
- 打包 : 将使用 ApkTool 工具解包后的零散文件 , 再次打包成 APK 文件 ,
如果 APK 文件进行了加固处理 , 那么解包无法获取正确的 dex / so / 资源文件 , 无法进行重打包 ;
重打包操作 : 使用 ApkTool 工具 , 将 APK 解包 , 修改或注入 so 文件 , 然后再进行重打包 ;
1、使用 apktool 解包
执行 java -jar apktool_2.4.1.jar d demo.apk -o demo 命令 ,
java -jar apktool_2.4.1.jar d demo.apk -o demo
其中 d 后面是 要反编译的 apk 文件 ,
-o demo 的含义是 将反编译结果输出到 demo 目录中 ;
反编译过程 :
查看其中的 AndroidManifest.xml 文件 , 可以看到真实的文件内容 ;
2、使用 apktool 打包
将反编译后的文件 重新打包 ;
java -jar apktool_2.4.1.jar b demo -o demo_repackage.apk
b demo 是指定 要打包 demo 目录 ;
-o demo_repackage.apk 是指定新打包的 应用安装文件是 demo_repackage.apk ;
重新打包过程 :
相关文章
- [Android]Fragment生命周期
- [Android]Ziplign打包最后一步
- [Android Pro] Android打包一个Apk后,如何查看它的VersionCode、VersionName 等等。
- Android_(游戏)打飞机06:后续
- Unity编译Android的原理解析和apk打包分析
- [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目
- 【IOS-COCOS2D-X 游戏开发之七】整合COCOS2DX的ANDROID项目到XCODE项目中,XCODE编写&编译代码,ANDROID导入打包运行即可!
- Android Studio系列教程六--Gradle多渠道打包(转载)
- [Android Studio 权威教程]多渠道打包和一键完成(全部产品)打包并签名(转载)
- Android中的音频播放(MediaPlayer和SoundPool)
- 《精通android网络开发》--HTTP数据通信
- [APP] Android 开发笔记 003-使用Ant Release 打包与keystore加密说明
- 如何使用Cordova将SAP Fiori应用打包并安装到Android平台上
- 如何使用Cordova将SAP Fiori应用打包并安装到Android平台上
- 秋招面试现状,附个人整理Android大厂秋招面试题合集
- Android Studio Build窗口出现乱码解决办法
- Android 11.0 12.0SystemUI 下拉状态栏背景增加高斯模糊背景
- android 9.0 SystemUI锁屏解锁界面隐藏导航栏解锁以后显示导航栏功能实现
- ue5 - android 打包卡在下载gradle Downloading https://services.gradle.org/distributions/gradle-6.1.1-all.zip - 解决
- java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.love5/com.example.love5.Main11Activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.
- 【Android Gradle 插件】Gradle 构建工具简介 ② ( Android 项目构建打包流程 | 构建工具发展 -> 手动配置 -> Ant -> Maven -> Gradle )
- 【Android 热修复】热修复原理 ( 加载 Dex 文件到内存中 | DexClassLoader | PathClassLoader | 反射 Element[] dexElements )
- 【Android 安全】DEX 加密 ( Java 工具开发 | 解压 apk 文件 | 加密生成 dex 文件 | 打包未签名 apk 文件 | 文件解压缩相关代码 )
- android_线
- android 上传文件
- Android自己主动化构建之Ant多渠道打包实践(下)
- CSDN上下载的一些关于Android程序调用Webservice执行不成功的问题
- Android开发Thread+Handler演示样本(打地鼠)
- 【Android 应用程序开发】 Fragment 详细说明
- 安卓程序打包到安卓手机上运行Android程序