DebugActiveProcess エラー 50 ERROR_NOT_SUPPORTED ~リバースエンジニアリング Pythonによるバイナリ解析技法
リバースエンジニアリング Pythonによるバイナリ解析技法,
プロセスのPIDからデバッグのためにアタッチを試みる部分でのエラーが起きました。3章の部分です。
原因はPython2が32bitであること?
本を初めから細かく読んで進めていたあなた。私と同じです!おそらく、1章にあった注意書きそのまんま、Immunity Debuggerのインストーラについて来たPythonインストーラで、Pythonを導入しませんでしたか?私はそんな覚えがあります笑
おそらく、このインストーラのPythonが32bitです。そして、おそらく現時点(2018年)でこの本を読んでいる方は、64bitのWindowsとアプリケーションをしようしているはずです。
64bitのアプリケーションのデバッグは、Pythonも64bitではないと上手くできないそうです!!
ちなみに、エラーコードを吐き出させるには以下のようにすればOK. これをifの条件以降の通りそうな部分に記載してください。(同じ本を読んでいる方なら、新たな宣言とかは不要なはず)
print "[*] Unable to attach to the process %s" % FormatError(kernel32.GetLastError())
そして、この本の翻訳前の本(多分)のページでも似たようなことが取り上げられています。
Gray Hat Python (error 50 on 64 bit) | Word Gems
解決法
試しに、CmdでPython -vを叩いてみてください。バージョンが書かれているあたりに一緒に32bitと記載はありませんか?
なので、64bit版のPython2をもう一度インストールしましょう。そのあと、eclipseにPythonインタプリタの設定も忘れずに。
その他
もし治らなかったら、以下のリンクを参照。僕はこのリンクを詳しく見る前に、解決したのでわかりませんが、構造体の再定義がどうのこうのって言っているので、、もしかしたら、、?
Windows - PythonとWindowsAPI(104853)|teratail
今回の本はこちらのものです。多少古いので、もっといい本があるかも、、です。