PythonでexeファイルからStringの抽出を行いたいと思っています。
Linuxであれば $ strings <ファイル名.exe>
をタイプするだけですが、これと全く同じことをPythonのコードを用いてexeファイルのStringsを抽出したいと考えています。
Googleでしばらく調査してみた結果、
import string def strings(filename, min=4): with open(filename, errors="ignore") as f: # Python 3.x # with open(filename, "rb") as f: # Python 2.x result = "" for c in f.read(): if c in string.printable: result += c continue if len(result) >= min: yield result result = "" if len(result) >= min: # catch result at EOF yield result
や、
import os os.exec1p('strings', 'foo.exe')
--- OR ---
import re fooExe = file('foo.exe', 'r').read() strings = re.findall("[\x1f-\x7e]{4,}", fooExe)
などのサンプルは見つけたのですが、どれもうまく作動しません。
こちらのコードで変更すべき点など、ご教授頂けますと非常に助かります。よろしくお願いいたします。
あなたの回答
tips
プレビュー