![](/img/trans.png)
[英]Getting the error “device not found” when running a apk file from Android emulator
[英]Is there a way to find out what files are written when running apk file on a PC android emulator?
我的问题是处理一种恶意软件 .apk 文件。 .apk 被打包到一个称为虚拟应用程序的插件框架中。 因此,当您运行 .apk 时,它会首先在其资产中解压另一个加密的 .apk 文件。 它使用 AES 解密,但密钥生成被混淆。 为方便起见,我想在 PC 模拟器上运行它并尝试找出其解压缩的 .apk 文件,有没有办法做到这一点?
解密资产内文件的代码是:
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 x86虚拟机解决了这个问题,并在其中运行了应用程序。 然后我在 Linux 中挂载 vmdk 文件并复制提取的 .apk 文件。
顺便说一句,原始.apk通过AES解密其资产.apk文件,密钥是通过取包签名的前16个字节并使用定制的md5生成AES密钥,解密后在virtualapp框架内运行.
此外,如果您多次从网站下载 .apk,它会为您提供不同签名的不同 .apk 文件。 这绕过了病毒扫描。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.