前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android 逆向】APK 文件格式 ( Android 应用安装 | Zip 文件格式 | 使用 Python 代码提取 APK 文件 )

【Android 逆向】APK 文件格式 ( Android 应用安装 | Zip 文件格式 | 使用 Python 代码提取 APK 文件 )

作者头像
韩曙亮
发布2023-03-29 19:56:15
1.2K0
发布2023-03-29 19:56:15
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、Android 应用安装


APK 是 Android 应用的安装文件 , 现在也有 AAB 格式的 , AAB 安装包也可以导出 APK 安装文件 ;

应用安装时 , 会将 APK 安装包拷贝到 /data/app/packageName/ 目录下的 base.apk ,

如 : 某应用会将 apk 文件拷贝到 /data/app/com.qidian.QDReader-GTqLCxuMlq6CJtnOVz1LgQ==/base.apk 位置 ;

APK 安装目录参考 【Android 逆向】应用安装目录 ( Android 应用的默认安装目录 | 查找 Android 应用的安装目录 | 查询当前正在运行的应用包名 | 根据包名查询应用安装路径 ) 博客 ;

/data/data/package.name/lib 是应用自带的 so 动态库 , 在应用安装时安装的文件 ;

/data/data/com.qidian.QDReader/lib文件是软链接文件 , 真实的文件地址是 /data/app/com.qidian.QDReader-GTqLCxuMlq6CJtnOVz1LgQ==/lib/arm 地址 , 这是应用的安装目录 ;

代码语言:javascript
复制
lrwxrwxrwx  1 root    root            66 2021-10-26 10:10 lib -> /data/app/com.qidian.QDReader-GTqLCxuMlq6CJtnOVz1LgQ==/lib/arm

参考 【Android 逆向】应用数据目录 ( files 数据目录 | lib 应用自带 so 动态库目录 | databases sqlite3 数据库目录 | cache 缓存目录 ) 博客 ;

二、APK 文件格式


Android 的 APK 安装包使用的数据格式就是 zip 格式 , 直接使用 zip 工具解压即可 , 也可以将文件命后缀改为 .zip 后解压 ;

Zip 文件格式中 , 每个文件都是由 文件头 + 文件数据 + 数据描述符 构成 , 如果有多个文件 , 则上面的 文件头 + 文件数据 + 数据描述符 数据 重复存放 即可 ;

Zip 文件中 还有一个 核心目录 , 以及 目录结束标识 ;

在 010 Editor 工具中 , 打开 apk 文件 , 然后选择 " 菜单栏 / 模板 / Zip 模板 " , 即可以 Zip 格式解析该 APK 文件 ;

50 4B 03 04 开始的文件 , 就是 Zip 文件 , 这是 Zip 文件的标识 ;

三、使用 Python 提取 APK 文件


使用 Python 提取 APK 文件完整代码 :

代码语言:javascript
复制
import os
# 如果没有使用 pip install zipfile 安装
import zipfile


# 提取 APK 中的文件
def extract_apk(apk_path: str):
    # 创建 ZipFile 实例对象
    zip_file = zipfile.ZipFile(apk_path)
    # 解压目录 , 删除 "app.apk" 的后 4 个字符 ".apk" , 即 "app"
    out = apk_path[:-4]
    # 创建目录
    os.mkdir(out)
    # 提取 zip 文件
    zip_file.extractall(out)
    # 关闭 zip 文件
    zip_file.close()


def main():
    extract_apk('app.apk')


if __name__ == '__main__':
    main()

执行后会将 app.apk 文件解压到 app 目录中 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Android 应用安装
  • 二、APK 文件格式
  • 三、使用 Python 提取 APK 文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档