概要
リバースエンジニアリング Pythonによるバイナリ解析技法を読みましたか??このブログでは2009年に出版された本書で使われているPython2のモジュールがPython3でどの様に生き残っているか紹介していく。
【邦書】
O'Reilly Japan - リバースエンジニアリング
【洋書】
Gray Hat Python - O'Reilly Media
ctypes:Pythonのための外部関数ライブラリ
ctypes は Python のための外部関数ライブラリです。このライブラリは C と互換性のあるデータ型を提供し、動的リンク/共有ライブラリ内の関数呼び出しを可能にします。動的リンク/共有ライブラリを純粋な Python でラップするために使うことができます。
16.16. ctypes — Pythonのための外部関数ライブラリ — Python 3.6.5 ドキュメント
pydbg
独自のデバッガを構築はほかのブログで構築するとして pydbgについては特に見つからなかったので誰かに紹介してほしい。 一応、標準のpdbを出しておきます。
27.3. pdb — The Python Debugger — Python 3.6.6rc1 documentation
Immunity Debugger
Immunity Debuggerエクスプロイトを作成し、マルウェアを分析し、バイナリファイルをリバースエンジニアリングする強力な新しい方法です。これは、ヒープ作成のために特別に構築された業界初のヒープ解析ツールであり、容易に拡張できるように大きくサポートされているPython APIである、機能グラフ作成機能を備えた堅牢なユーザーインターフェイスをベースにしています。
Python3のAPIは見つかりませんでした。4年前から更新がないし悲しい…。python2なら動きました…。
GitHub - kbandla/ImmunityDebugger: ImmunityDebugger
Sulley
Sulleyは、積極的に開発されたファジングエンジンと、複数の拡張可能なコンポーネントで構成されるファズテストフレームワークです。Sulley(IMHO)は、以前に発表されたほとんどのファジング技術、商用およびパブリックドメインの機能を超えています。このフレームワークの目的は、データ表現だけでなくデータ伝送と計測を単純化することです。SulleyはMonsters Inc.の生き物の名前を愛称としています。なぜなら、彼はあまりにも曖昧だからです。
GitHub - OpenRCE/sulley: A pure-python fully automated and unattended fuzzing framework.
http://www.fuzzing.org/wp-content/SulleyManual.pdf
脆弱性を発見するFuzzingの欠点を補う「Sulley」 - Black Hat Japan 2007 | マイナビニュース
現在開発が終わっているので後継であるboofuzzがあるのでこっちを使ってください。
GitHub - jtpereyda/boofuzz: A fork and successor of the Sulley Fuzzing Framework sulleyはメンテナンスが終わっているので Boofuzzは、Sulleyの後継ファジングフレームワーク。boofuzzは数多くのバグ修正の他に、拡張性を目指しています。
最後に
では、リバースエンジニアリングを楽しんで!!!!!!!!!!!!!!