1、AndroidManifest文件格式
AndroidManifest文件(AndroidManifest.xml)是APK中的关键文件,记录了APP的包名、版本、权限信息、四大组件信息等信息。Android的包安装服务通过解析该文件才能正常的安装APK。AndroidManifest文件有文本和二进制两种形式。APP开发阶段,开发者通过文本形式的AndroidManifest文件明文配置APP的各项信息;APP打包后,各项信息则被编译工具编译成二进制数据存储于AndroidManifest二进制文件中。因此,未经反编译直接解压APK后,打开AndroidManifest文件,只能看到乱码。
AndroidManifest文件结构较复杂,一般可以借助看雪大神MindMac出品的AndroidManifest二进制文件结构图以及AndroidManifest模板(十六进制编辑器自带的010 Editor模板,图7)进行学习和研究:
2、反编译对抗
AndroidManifest文件的幻数(Magic Number),即文件头为0x00080003。将其修改后,反编译工具就无法识别AndroidManifest文件,导致反编译失败。
3、修复
修复参数,如下图,即需将“00 00 08 00”修改成“03 00 08 00”