2009-08-19 203 views
0

我正在写一些分析PE文件内部字符串的代码(Python,但实际上并不重要)。我正在寻找一个我可以调用的命令行工具,它将返回PE文件内的完整字符串列表。从PE文件中提取字符串

我知道PEDUMP,但它似乎给不完整的字符串。

此外,这个工具将能够与不同类型的字符串,如C-字符串(NULL终止),帕斯卡 - 串(长度前缀)等

我发现的处理是非常重要的“字符串提取器”here,但它花钱,我不确定它是否可以处理不同类型的字符串。

你知道任何工具可以满足我的要求吗?

回答

0

有经典的unix程序strings这正是这个。

尽管strings不是专门设计用于处理Pascal风格的字符串,它仍然会将它们转储出去,因为它们似乎是文本数据。

strings的一些实现也可以处理Unicode(UTF-8和UTF-16)字符串。谢谢 -

+0

首先显示的所有字符串。第二,我一直试图在notepad.exe上使用cygwin的“字符串”,并看到它也提供了不相关的信息(如导入和gibbrish)。你知道另一种选择或Windows的“字符串”版本哪个更好? – Moshe 2009-08-19 14:27:21

+1

'strings'程序不知道什么是和你不相关的,所以它将所有看起来可能是字符串的东西都抛出。这将包括进口和其他许多事情。如果你只需要所有可能字符串的一个子集,那么你可能需要另一个工具,但是你必须解释什么是和你不相关的。 – 2009-08-19 20:56:06

+0

我明白为什么这不像我希望的那么简单。例如,当运行“strings -e l notepad.exe”时,我得到了更好的结果,因为内部的字符串是Unicode。我不能确定每个PE都会如此。 – Moshe 2009-08-20 08:01:29