リバースエンジニアリング 第5章に突入
リバースエンジニアリングも第5章に突入したわけですが、
第5章からImmunity Debuggerを使うことなりました。
早速、手強いです。
まずは、インストール。
http://debugger.immunityinc.com/
からDownloadしてインストールするだけです。
結構簡単。
ですが、そのままですと、
「Assembleというメソッドはない」とエラーが出る訳です。
リバースエンジニアリング読書記録
さて困りました。
とりあえずPythonインタプリタでimport immlibをすると、
debuggerがないって言われるので、これはもう無理やりパスを通せとのことなのかと。
というわけで
C:\Python27に
path.pth
というファイルを作り
C:\Program Files\Immunity Inc\Immunity Debugger C:\Program Files\Immunity Inc\Immunity Debugger\Libs
こういう内容にしたんです。
これでimmlibもdebuggerもインポート出来たんですね。
ところが、どうも
AssembleというオブジェクトはDebuggerには、ないんですよ。
assembleならあると、、、
Immunity Debuggerのバージョンが変って、いろいろと変ったのかな。
というわけで、動作するようにサンプルコードを修正しました。
findinstruction.py
from immlib import * def main(args): imm = Debugger() search_code = " ".join(args) search_bytes = imm.assemble( search_code ) search_results = imm.search( search_bytes ) for hit in search_results: # このアドレスが属するメモリページを求め # それが実行可能であることを確認 code_page = imm.getMemoryPageByAddress( hit ) access = code_page.getAccess( human = True ) if "execute" in access.lower(): imm.log( "[*] Found: %s ( 0x%08x)" % ( search_code, hit )) return "[*] Finished searching for instructions, check the Log window."
このファイルをImmunity DebuggerをインストールしたフォルダのPyCommandフォルダに入れます。
あとは、
Immunity Debuggerを起動し、[File]-[Open]からnotepad.exeとか適当に開いて、
コマンドバーに!findinstruction jmp esp
と打って実行!
見事出来ました。