获取apk中定义的所有字符串

时间:2011-04-29 21:36:42

标签: android apk

有没有快速的方法来获取apk中定义的所有字符串?

我正在做这样的事情:

aapt d --values resources app.apk

我不确定它是否给了我所有的字符串。

如果有更简单的方法来解析字符串,请告诉我。

4 个答案:

答案 0 :(得分:12)

您可以更改"资源" for" strings"你会拥有它。使用:

aapt d --values strings [APK_FILE]

这将转储apk上的所有字符串。转储包含您正在寻找的字符串资源。

这还包括系统生成的字符串,如资源路径(例如res / drawable-hdpi / icon.png)。

答案 1 :(得分:2)

这将解压缩整个APK,包括将文件转回到您希望从Android项目中获得的目录层次结构。

http://code.google.com/p/android-apktool/ (已弃用)

http://ibotpeaches.github.io/Apktool/install/

使用类型

apktool d YourApp.apk

结果将进入名为YourApp

的文件夹

答案 2 :(得分:2)

我找到了另一种更简单的方法来为特定的xml文件执行此操作。

aapt d xmlstrings app.apk xmlfile

答案 3 :(得分:0)

你可以在Linux系统上试试这个:

$ strings yourfile.spk

这将解析出一定长度的所有ASCII字符(默认为4个字节),但您可以使用命令行参数更改这些长度。

扫描像这样的.apk会给你带来很多垃圾,因为它会在字符串中找到任何可打印的字符并将其转储到你的屏幕上。不过在我自己的APK上尝试这个,我看到了对GIF图像,XML图像的引用,基本上是你在/ res / resource路径中通过文件名引用的任何内容。没有提及函数名称等,显然因为所有这些都被编译成机器语言。

如果你只需要xml文件引用等,你可以通过grep管道你的请求,如下所示:

$ strings yourfile.spk | grep xml$