2011-06-07 52 views
0

我想從內存轉儲中提取字符串。 我使用Windows XP,紅寶石1.9 MinGW的如何使用ruby從二進制文件中提取字符串?

由工具生成的轉儲文件 - HiperDrop.exe

+0

到目前爲止你有嘗試過什麼嗎? – 2011-06-07 02:38:47

+1

如果你只是想要字符串,你有沒有考慮'strings(1)'工具? – sarnold 2011-06-07 02:50:13

回答

0

這應該是一個良好的開端:

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

當然,改變'/path/to/file'的內存轉儲的位置。您也可以將第二行末尾的10更改爲其他最小字符串長度。

0

我覺得上面sarnold是正確的金錢。 strings是一款可在所有* nix環境中使用的實用程序,並且可以從Microsoft獲得Windows的free equivalents。只需從Ruby調用該程序並根據需要解析輸出即可。

相關問題