リバースエンジニアリング ―Pythonによるバイナリ解析技法

『みんなのPython』をひと通り読み終えたので、一緒に借りてきた『リバースエンジニアリングPythonによるバイナリ解析技法』を読んでいきます。

非常に面白い本なのですが、少し古くPython2.5を前提に書かれているので、Python3に対応させつつ読んでいくつもりです。基本的にはprint文をprint関数へ、辞書型メソッドの変更をしていくだけです。

 

chapter1-printf.py

  1. ...
  2.     msvcrt = cdll.msvcrt
  3.     message_string = "Hello world!\n"
  4.     msvcrt.printf("Testing: {0}".format(message_string).encode('utf-8'))

 

python3からbytes型とstr型の自動変換が行われなくなったのでencodeが必要。

ちなみに4行目は

  1. msvcrt.wprintf("Testing: {0}".format(message_string))

 や

  1. msvcrt.printf(b"Testing: Hello world!\n")

 でも動作します。