【问题标题】:Is there a way to find out what files are written when running apk file on a PC android emulator?有没有办法找出在 PC android 模拟器上运行 apk 文件时写入的文件?
【发布时间】:2018-02-24 13:32:05
【问题描述】:

我的问题是处理一种恶意软件 .apk 文件。 .apk 被打包到一个称为虚拟应用程序的插件框架中。因此,当您运行 .apk 时,它会首先在其资产中解压缩另一个加密的 .apk 文件。它使用 AES 解密,但密钥生成被混淆了。为了方便起见,我想在 PC 模拟器上运行它并尝试找出其解压后的 .apk 文件,有没有办法做到这一点?

在asset里面解密文件的代码是:

    localObject2 = paramActivity.getFilesDir().getAbsolutePath();
    assertsToSd((String)localObject2, paramActivity);
    localObject3 = (String)localObject2 + File.separator + aname;
    localObject1 = localObject3;
    String str1 = (String)localObject2 + File.separator + 0 + aname;
    localObject2 = (String)localObject2 + File.separator + (0 + 1) + aname;
    String str2 = create(paramActivity).substring(0, 16);
    if (i == 0)
    {
      Catalog.decFile((String)localObject3, str1, str2);
      new File((String)localObject3).delete();
      Tools.downloadFile(new File(str1), new File((String)localObject2));
      new File(str1).delete();
    }

解密文件功能:

    public static boolean decFile(String sourceFile, String destFile, String speed) {
    File s = new File(sourceFile);
    File d = new File(destFile);
    if (!s.exists()) {
        return false;
    }
    if (d.exists()) {
        d.delete();
    }
    try {
        d.createNewFile();
        return c.decrypt(speed, s, d);
    } catch (Exception ex) {
        ex.printStackTrace();
        return false;
    }
}

在像apk这样的另一个容器中运行一个apk的目的是它的实际代码可以被加密并跳过被杀毒软件检测到,而且它可以远程安装任何其他apk而不需要用户的任何通知。

【问题讨论】:

    标签: android plugins virus


    【解决方案1】:

    最后我通过安装 android x86 虚拟机解决了这个问题,并在其中运行应用程序。然后我在 Linux 中挂载 vmdk 文件并复制提取的 .apk 文件。

    顺便说一句,原始.apk通过AES解密其资产.apk文件,密钥是通过前16个字节的包签名生成的,并使用定制的md5生成AES密钥,解密后运行它在 virtualapp 框架内。

    此外,如果您多次从网站下载 .apk,它会为您提供具有不同签名的不同 .apk 文件。这绕过了病毒扫描。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-08
      • 2011-05-29
      相关资源
      最近更新 更多