android开发apk捆绑,Android 下 APK 捆绑器的实现

本文介绍了如何在Android平台上实现类似于Windows的APK捆绑器,通过创建一个宿主程序host.apk来隐蔽安装和运行附加应用程序。主要涉及反编译、修改smali代码、资源文件捆绑、权限处理等方面,详细阐述了宿主程序的工作流程、释放和安装应用程序、启动应用程序的实现方法,以及Windows端捆绑器的使用,包括信息提取、图标和标签替换、打包和签名等步骤。
摘要由CSDN通过智能技术生成

Android 下 APK 捆绑器的实现

作者: 海东青

利用捆绑器向正常程序捆绑病毒、木马等恶意程序,以达到隐蔽安装、运行的目的,这

在 Windows 平台下是一种很常规的攻击手段。那么,在智能终端十分流行的今天,如何实

现针对手机应用的捆绑器呢?对此,本文针对 Android 平台的应用程序 APK 文件,给出了

类似 Windows 下捆绑器的实现方案。

原理与基础

对任意的两个 APK 应用程序 A 和 B 进行捆绑,并且在手机上安装、运行捆绑生成的

APK 程序 C 后,仍然具备和 A 一样的运行效果,要实现这一目的,捆绑过程可以从两个思

路去实现。

1)对 Android 应用程序 A 进行反编译,通过修改反编译生成的 smali 代码,控制执行

流程,使其具备安装和执行应用程序 B 的功能,最后再打包生成捆绑后的应用 C。此方法

和早期的 Windows 环境下的 PE 病毒类似,插入额外的功能代码,修改入口点改变程序执行

流程,最后再回到原有流程执行 A 的功能。

2)考虑到 A、B 的任意性,以及生成程序 C 的稳定性,在这里重点介绍另外一种通过

宿主程序实现释放、安装、运行 A 和 B 的方法。其思路亦来自 Windows 下的捆绑器,即专

门写一个 host 程序作为宿主,其中应用程序 A、B 作为 host 的资源文件,运行 host 时可以

释放、安装和运行 A 和 B 的功能。此外,若考虑到安全性、免杀性,可对 A 和 B 进行加密、

编码。因此,根据方法2,可得出PC端和Android手机端的软件工作流程如图1和图2所示

55fd2b2273b5a8b4531f72773c469d6e.gif

QQ图片20140404144049.jpg (50.11 KB, 下载次数: 26)

2014-4-4 15:02 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

QQ图片20140404150245.jpg (30.84 KB, 下载次数: 20)

2014-4-4 15:04 上传

功能实现

通过上面的介绍,可以知道总共需要实现两个程序,即作为宿主程序的 Android 应用

host.apk,以及作为捆绑器的 Windows 应用程序“捆绑器”,下面将详细介绍这两个程序内

部原理和实现方法。

1.宿主应用程序

1)工作流程

对于宿主程序 host.apk,要实现上文所定义的功能需求,则其内部的工作流程可设计如

成如图 3 所示的结构。在宿主程序初始化时,会调用MainActity 的 onCreate 函数。在 onCreate

函数中,通常用来初始化 MainActivity,但是考虑到最终呈现给用户的界面(即 Activity)

为 A 的界面,所以宿主程序的 onCreate 函数中无需处理自身界面,只需想办法启动 A 的

Activity 即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值