PK简介
解压软件打开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
原文始发于微信公众号(网络安全与取证研究):技术分享|解决APK伪加密技巧分享
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论