私は、DUMPBINを使用してエクスポートを一覧表示するチュートリアルに続いて、エクスポートされた関数のアセンブリコードを取得するためにOllyDbgを使用しています。エクスポートテーブルRVAが逆アセンブリの実アドレスに対応していないとすれば、完全なdisassemlyでどのように関数コードを見つけることができますか?逆アセンブリでの関数の検索
3
A
答えて
2
RVAは再配置可能な仮想アドレスです。プロセス空間で実際のアドレスを見つけるには、プロセスでモジュールがロードされたベースアドレスを知る必要があります。ベースアドレスをRVAに追加すると、実際のアドレスが得られます。私はollydbgを使用していませんが、それが接続されているプロセスにロードされたモジュールのベースアドレスを提供しなかった場合、私は驚くでしょう。なんらかの理由でその情報が提供されない場合は、sysinternalツールからprocexp.exeを使用して取得できます。
2
少なくとも高水準言語で書かれたプログラムは、スタックフレームを設定するコードです。
問題のコードを生成するために使用されているコンパイラが分かっている場合は、何を探すべきかを知ることができます。私の例で
例
$ cat main.c
int main(int argc, char **argv) {
return 1;
}
$ gcc -m32 -S main.c
$ cat main.s
.file "main.c"
.text
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
movl $1, %eax
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.ident "GCC: (Debian 4.3.3-4) 4.3.3"
.section .note.GNU-stack,"",@progbits
、MOVL%は、ESP、%EBP命令は、セットアップコードの最後の命令です。
free-as-in-beer versionがダウンロード可能な市販のディスアセンブラIDA Proは、自動的に機能を見つけるのには大変効果的です。
関連する問題
- 1. 逆の関係でAND検索
- 2. Laravelの逆関係の検索
- 3. Microsoft.Crmアセンブリの検索
- 4. アセンブリの検索ディレクトリ
- 5. アセンブリ内の奇数の検索
- 6. Erlang:バイナリでの逆検索
- 7. アセンブリ:リニア検索コードのトラブル
- 8. バイナリ検索アセンブリ68HC11
- 9. mysql検索の逆順
- 10. のVim - 逆検索ホットキーマッピング
- 11. クラスコンストラクターの逆アセンブリ
- 12. グラフィック関数(Python)の検索
- 13. Excel VBA - 関数の検索 - 変数の検索
- 14. Excelでの逆文字列検索
- 15. Djangoの1.8深い逆の関係検索
- 16. SharePoint 2016検索WebControlsアセンブリ?
- 17. アセンブリ内の検索メソッドの名前
- 18. メンバ関数の定数の検索
- 19. Hackageで逆依存関係を検索する
- 20. 逆関数、関数pytorchで
- 21. 逆Google画像検索
- 22. 逆ジオロケーション検索を実行
- 23. django逆の外字の検索
- 24. アセンブリ言語の逆アセンブリ言語x86
- 25. 逆ロジスティック関数/逆シグモイド関数
- 26. 実際の関数のプロパティの検索
- 27. Cのライブラリの関数リストの検索
- 28. MongoDBの全文検索と逆インデックス
- 29. 複合検索関数SQL
- 30. 囲み関数スコープ検索?
ただ好奇心から、どのチュートリアルですか? – Nils
それはリバースエンジニアリングの秘密、Eldad Eilamの一部です。リバースエンジニアリングIA-32 Windowsアプリケーションのやや精巧な作業。彼の最初の目標は、最小限のツールで「死んだ」リスティングを読むスキルを磨くことです。 – ProfK