如何用ruby从二进制文件中提取字符串?

时间:2011-06-07 02:29:24

标签: ruby string binary extract

我想从内存转储中提取字符串。 我正在使用windows xp,ruby 1.9-mingw

转储文件由工具生成 - HiperDrop.exe

2 个答案:

答案 0 :(得分:1)

这应该是一个好的开始:

str = IO.read('/path/to/file', :mode => 'rb')
printable_chars = %r{[A-Za-z0-9`~!@#%^&*()-_=+|'";:/?.>,< \t\$\{\}\[\]\\]{10,}}
str.scan(printable_chars).each do |match|
  puts match
end

当然,将'/path/to/file'更改为内存转储的位置。您还可以将第二行末尾的10更改为其他最小字符串长度。

答案 1 :(得分:0)

我认为上面的sarnold是正确的钱。 strings是一个在所有* nix环境中都可用的实用程序,Microsoft提供了free equivalents for Windows。只需从Ruby调用程序并根据需要解析输出。