要点
1. whale hook framework 使用示例;
2. 参考项目:VirtualHook;
3. 按照 VirtualHook 修改 VirtualApp;
4. 编写 hook plugin;
5. 运行修改后的 VirtualApp,也就是 VirtualWhale;
6. 在 VirtualWhale内 安装 hook plugin,安装 宿主(第三方)应用;
7. 在 VirtualWhale内 运行 宿主(第三方)应用;
8. 结束;
实现过程梳理
非root情况下 hook 第三方 apk 需要的技术点:
1. hook framework;
2. apk 反编译、脱壳、分析;
3. 非 root 情况下则需要一个能知晓 apk 运行期间所有状态的环境,因此有了 虚拟多开应用 VirtualApp;
针对以上三点技术选型:
1. whale 是 VirtualApp 作者 lody 新开发的 hook 框架,基本实现了全平台(Android/iOS/Linux/MacOS)hook。从适应性稳定性代码易读性角度,选择了该 hook 框架;
2. 先从自己编写的 apk 开始,简化问题;
3. 实现了 Dalvik 和 ART hook并能在非 root 状况下稳定运行的虚拟多开开源应用,也就 VirtualApp 了,因此选择 VirtualApp。
目标:在 VirtualApp内实现对 DesignPat