IWM Utilities:UnPacker
- 書式
- unpk [option...] exefile [argument...]
- 説明
- 暗号化された32ビットWindows実行可能プログラムを復号する.
- -b, --break=ADDRESS ブレイクポイント
- -d, --dynamic 動的に確保したメモリを出力ファイルに含める
- -e, --entry ファイルの出力には新しいエントリーポイントが必要
- -i, --import インポートテーブル再構築
- -l, --logfile=FILE ログをファイルに出力する
- -o, --outfile=FILE 出力ファイル
- -s, --step=STEP 最大ステップ数
- -t, --timer=SECOND 最大秒数
- -m, --trace-mnemonic ニーモニックをトレースする
- -r, --trace-register レジスタをトレースする
- -f, --trace-tail=STEP 最後から指定されただけトレースする
- -v, --verbose 詳細出力
- 例
- findsh sample.bin
仮想環境でプログラムを実行することで,Unpackされたイメージの取得を行う. 実装されていない命令やAPIの呼び出しなど,継続して実行することができなくなったときには,その時点で終了する. 仮想環境のメモリにはレベルという概念があり,プログラムによって書き換えられたメモリのレベルは,そのプログラムコードがあるメモリのレベルよりも1つ大きくなる. またレベルが高いメモリにプログラムの制御が移ったときには,そのアドレスをオリジナルのエントリーポイントの候補とする. レベルの初期値は0である.
--dynamicオプションではプログラムが終了するときに確保されているメモリを出力ファイルに含める.
--importオプションが指定されると,プログラムが終了するとき状態でインポートテーブルを再構築して出力ファイルに加える.
--breakオプションではプログラムを終了させるアドレスを16進数で指定する. 「-b 401000」では401000を実行する時に終了する. また「-b 401000,402000-403000」というようにカンマで区切り複数指定することや,一定の範囲の指定も可能である.
--entryオプションが指定されるときには,新たなエントリーポイントを見つけることができなかったときにはファイルに出力しない.
連絡先iwm@maid.org