大学生创新训练项目开发日志 (8-14 ~ 8-24)

技术路线

利用 Xposed 模块在应用加载 app 包时将获取到的软件资源打上包名标记后上传到内网服务器。

实现流程

初次尝试

实现 IXposedHookLoadPackagehandleLoadPackage 方法。

public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
  XposedBridge.log("Loaded app: " + lpparam.packageName);
  XposedBridge.log("File upload is starting");
  new SendText("Invoked", lpparam.packageName).execute();
}

结果:失败。部分软件包没有 android.permission.INTERNET 权限,需要提权。

试错历程

  • 查看 platform.xml,试图为所有应用添加 inet 用户组,失败(未能实现)。
  • 试图利用 root 权限,并使用 su; su 2000 命令转移到有网络权限的 shell,失败(黑屏)。

注入框架提权

最后查到了 这个帖子,按此钩取框架的包管理器的授权方法,并为所有软件包都添加了网络权限。

结果:仍失败。查阅日志发现新版 Android 应用默认不允许明文 HTTP 流量传输。

更换后端服务器

修改了后端的 node 服务器至 HTTPS,使用自签名 CA 颁发的证书,并令实验机安装该自签名 CA 根证书。

结果:成功,后端服务器接受到了运行的 APP 上传至服务器的文件,且以包名命名。

posted @ 2023-08-24 23:44  臼邦庶民  阅读(25)  评论(0编辑  收藏  举报