使用StringsPlus批量提取二进制文件中的字符串
linux下有个工具叫strings,可以打印出文件中所有可打印字符串,但strings功能比较单一,无法对字符串进行过滤,也不能区分ascii码和unicode,而且无法找到一些不以null结尾的字符串。今天介绍一个github上的免费开源小工具:StringsPlus。
StringsPlus可以通过通配符,批量扫描文件,找出文件中所有疑似字符串的资源,并打印到输出文件中,还可以指定疑似字符串的长度,限定只有连续长度超过指定长度,才打印输出,是分析**二进制文件的一个好利器。
1.下载地址:
https://github.com/bigwriteshark/StringsPlus.git git地址
https://codeload.github.com/bigwriteshark/StringsPlus/zip/master zip下载地址
项目地址:https://github.com/bigwriteshark/StringsPlus
2.使用方法:
这个工具的zip包里,已经提供了编译好的strings+.exe(for win)和strings+(for linux),可以拷贝下来直接用,也可以自行编译源码,编译方法就不介绍了,很简单的代码。
- 以下介绍一下windows下的运行:
我目录下有个a.apk,我想通过打印这个文件里的明文字符串,来分析或者解密这个文件的功能。
d:\> strings+ . -n my.apk -l 10
-- .是my.apk所在的目录,可以是绝对目录,也可以是相对目录
-n my.apk 指定要扫描的文件是my.apk
-l 10 指定要打印的字符串要超过10个(太小了会列出很多不相关的字符串,加大分析难度)
运行结束后,会多出一个t.my.apk.txt文件,文件内容包括两部分:ascii串区和unicode串区
第二栏是字符串出现的字节位置,可以配合可定位的二进制编译器来定位字符串,查看上下文。