2016-11-27 7 views
0

私は解析するために除外されたバイナリを持っています。いくつかの興味深いコードはアドレス0x1234にありますが、そのアドレスへのすべてのジャンプをどのように見つけることができますか? (もちろん、そのアドレスへの計算ジャンプ、ハードコーディングされたものだけを見つけることは期待していません)。ジャンプ命令は通常相対オフセットでコード化されており、多くの種類のジャンプ(je、jne、jmp ...)があるので、単純な検索は使用できません。私はそれがプラットフォーム固有のアプローチでなければならないなら、今はx86_64/linuxのGDB-PEDAと一緒に作業しています。特定のアドレスへジャンプする方法

+1

を試してみてください。たぶん、gdbのプロセスレコードが役に立ちます。録音を有効にしました(録音btrace)。 0x1234にブレークポイントを設定します。次に、ブレークポイントがヒットしたときに、あなたがどこにジャンプしたかを記録するために、命令の履歴を記録することができます。 – dbrank0

+0

ところで:私は質問を誤解しました。これは、計算されたジャンプを検索する場合にのみ必要です。 – dbrank0

答えて

2

どのようにそのアドレスへのジャンプを見つけるのですか?

私はあなたがこの情報を収集するためのプログラムを実行する必要があると思うobjdump -d a.out | egrep 'j.* 0x1234'

関連する問題