解压软件打开apk
apk组成文件功能简介
常用软件保护技术
-
基于ZIP文件格式的反编译对抗
解压软件解压失败
-
基于AndroidManifest文件格式的反编译对抗
基于AndroidManifest文件格式的反编译对抗的原理和基于ZIP文件格式的反编译对抗原理是一样的,对AndroidManifest某些特征数据的修改可以“欺骗”反编译工具从而导致反编译失败,但在安卓系统上Android的包安装服务对该类“欺骗”免疫而不会影响APP的正常安装,主要有下面两种手段。
1、修改AndroidManifest文件的幻数(Magic Number)即文件头为0x00080003
2、修改字符串个数
而修改了Androidmanifest文件使用反编译工具会出现乱码的情况:
Androidmanifest打开异常情况
AndroidManifest文件(AndroidManifest.xml)是APK中的关键文件,记录了APP的包名、版本、权限信息、四大组件信息等信息。Android包安装服务通过解析该文件才能正常安装APK。AndroidManifest文件有文本和二进制两种形式。APP开发阶段,开发者通过文本形式的AndroidManifest文件明文配置APP的各项信息;APP打包后,各项信息则被编译工具编译成二进制数据存储于AndroidManifest二进制文件中。
因此,未经反编译直接解压APK后,打开AndroidManifest文件,只能看到乱码. AndroidManifest文件结构较复杂,由文件头组块(Magic Number和File Size)、字符串组块(String Chunk)、资源ID组块(Resourceid Chunk)和xml内容组块(xmlContent Chunk)组成。使用010editor中Androidmanifest模板打开如下:
Androidmanifest文件结构
-
NP管理器:使用反伪加密,在使用银河进行分析。
np管理器反解密
-
第三方分析系统:不少平台已经支持伪加密apk的分析了
摸瓜——费APK反编译分析工具 (https://mogua.co/)
南明离火——移动安全分析平台 (zhihuaspace.cn)
谷歌——( VirusTotalHome)
-
aapt命令、adb命令查看androidmanifest文件信息
aapt(适用于静态分析)
说明:查看apk中的信息
用法:aapt dump xmltree 【apk名字】【需要查看的资源文件xml】
例子:aapt dump xmltree demo.apk AndroidManifest.xml
adb(适用于动态分析)
说明:可以查看指定包名应用的详细信息
用法:adb shell dumpsys package 【包名】
例子:adb shell dumpsys package com.tencent.mm
产品咨询
技术工程师
贺 佳:13908073212
王高阳:18513400125
微信助手
关于我们
北京天宇宁达科技有限公司创建于 2016 年,前身为 2009 年的北京天宇宁科技有限公司。历经十余年的发展与积累,天宇宁达已成为国内电子数据取证行业卓越领先的产品与解决方案供应商,同时也是国内知名的电子数据专业取证服务与培训机构。
原文始发于微信公众号(电子物证):技术分享|解决APK伪加密技巧分享
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论