Android Dex文件加壳原理 :
1、加壳程序:加密源程序为解壳数据、组装解壳程序和解壳数据
2、解壳程序:解密解壳数据,并运行时通过DexClassLoader动态加载
3、源程序:需要加壳处理的被保护代码 根据解壳数据在解壳程序DEX文件中的不同分布,本文将提出两种Android Dex加壳的实现方案。 加壳程序工作流程:
1、加密源程序APK文件为解壳数据
2、把解壳数据写入解壳程序Dex文件末尾,并在文件尾部添加解壳数据的大小。
3、修改解壳程序DEX头中checksum、signature 和file_size头信息。
4、修改源程序AndroidMainfest.xml文件并覆盖解壳程序
AndroidMainfest.xml文件。
解壳DEX程序工作流程:
1、读取DEX文件末尾数据获取借壳数据长度。
2、从DEX文件读取解壳数据,解密解壳数据。以文件形式保存解密数据到a.APK文件
3、通过DexClassLoader动态加载a.apk。
当数据在解壳文件头中时,加壳程序工作流程:
1、加密源程序APK文件为解壳数据
2、计算解壳数据长度,并添加该长度到解壳DEX文件头末尾,并继续解壳数据到文件头末尾。(插入数据的位置为0x70处)
3、修改解壳程序DEX头中checksum、signature、file_size、header_size、string_ids_off、type_ids_off、proto_ids_off、field_ids_off、
method_ids_off、class_defs_off和data_off相关项。 分析map_off 数据,修改相关的数据偏移量。
4、修改源程序AndroidMainfest.xml文件并覆盖解壳程序
AndroidMainfest.xml文件。
解壳DEX程序工作流程:
1、从0x70处读取解壳数据长度。
2、从DEX文件读取解壳数据,解密解壳数据。以文件形式保存解密数据到a.APK
3、通过DexClassLoader动态加载a.APK。
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科Dex加壳解壳原理全文阅读和word下载服务。
相关推荐: