You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PC安卓模拟器中定位APK运行写入文件及解密后的恶意APK?

针对Virtual App框架恶意APK的文件定位方案

我来帮你拆解这个问题,针对Virtual App框架打包的恶意APK,找解密后的APK和运行时写入文件的方法其实有几个可靠的路径:

一、找到解密后的APK文件

Virtual App类框架通常会把解密后的APK存放在私有目录或临时路径里,你可以试试这几种方法:

  • 模拟器文件管理器+进程追踪:先给模拟器开ROOT权限,安装ES文件浏览器这类工具。启动恶意APK后,在ADB shell里执行ps | grep virtual(或者找包名里带vx、virtual的进程),定位到Virtual App的进程包名,然后去/data/data/[进程包名]/目录下找files、cache子文件夹,里面大概率有解密后的APK,文件名可能是随机字符串或者类似temp.apk、payload.apk的命名。
  • ADB实时监控文件变化:用ADB shell执行inotifywait -mr /data/data/(主流模拟器比如夜神、雷电都支持这个命令),启动恶意APK后,盯着输出的文件创建/修改记录,找到后缀为.apk的新文件路径,然后用adb pull [文件路径] ./local_save.apk把文件拉到PC上。
  • Frida动态Hook抓路径:如果前两种方法没找到,就用Frida hook文件写入的函数。写个简单的脚本:
Java.perform(function() {
    // Hook FileOutputStream的构造方法,打印写入路径
    var FileOutputStream = Java.use("java.io.FileOutputStream");
    FileOutputStream.$init.overload("java.lang.String").implementation = function(filePath) {
        console.log("正在写入文件到: " + filePath);
        return this.$init(filePath);
    };
});

保存为track_file.js,然后执行frida -U -f [恶意APK的包名] -l track_file.js,启动后就能在控制台看到解密APK的写入路径了。

二、查找APK运行时写入的所有文件

要找恶意APK运行时生成的文件,这些方法很实用:

  • ADB find命令批量搜索:让恶意APK运行一段时间后,在ADB shell里执行find /data/data/[恶意APK包名]/ -type f -mmin -15(-15表示搜索15分钟内修改的文件),能快速定位近期写入的文件。如果是Virtual App托管的,别忘了同时搜索Virtual App进程的包名目录。
  • 模拟器应用数据备份:很多模拟器支持单独备份应用数据,比如夜神模拟器的「备份应用数据」功能,把恶意APK的数据备份出来后解压,就能看到所有私有目录里的文件,包括隐藏的缓存、配置文件。
  • Logcat过滤文件操作日志:执行adb logcat | grep -E "(open|write).*[恶意APK包名]",过滤系统日志里的文件操作记录,虽然会有不少冗余信息,但耐心筛选能找到关键的文件写入路径。

内容的提问来源于stack exchange,提问作者bugs king

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:57:42