我一直在尝试对付费的android应用进行逆向工程,该应用可以写出一些二进制数据,以便可以将这些数据导出到其他程序中(如果有人好奇的话,这是一个运行/行走计时器应用,我正在尝试获取其GPS追踪)。但是,看起来apk已加密并存储在/data/app-asec/[app_id].asec中。

有一篇不错的博客文章说使用的加密是TwoFish,密钥存储在/data/misc/systemkeys/AppsOnSD.sks中,但是我一直无法使用仅通过.asec上的TwoFish直接使用该密钥的简单策略对文件进行解密。

如何解密该文件以获得可以实际分析的apk?

注意:我意识到,在xda-developers之类的地方,此信息被认为有些微妙,因为它可以用于盗版。我没有这种意图,我只想检查序列化代码。

#1 楼

经过更多的工作和更仔细的重新阅读后,我发现了我的错误:/data/app-asec/中的文件是加密的容器。它们实际上是dm-crypt卷,然后将其安装在/mnt/asec/[app_id]上。该目录中的pkg.apk是未加密的APK,可以使用此答案中的任何优质工具进行分析。