1

IDA Pro 6.1には、「CreateFileA」および「CreateFileW」関数APIへの20回の呼び出しがあるdllがあります。

すべてのCreateFileA/CreateFileWにブレークポイントを自動的に指定したいと思います。

すべての外部参照に対して手動で行うことはできますが、それは面倒です。CreateFileA / CreateFileW呼び出しに直接ブレークポイントを指定する方法はありますか?

どうもありがとう :)

4

4 に答える 4

1

両方の CreateFile の最初の命令にブレーク ポイントを設定することも、IDAPython を使用してブレークポイントを作成することもできます。

すべての命令/呼び出しを反復し、適切な関数への呼び出しを探します。

add_bpt() 呼び出しだと思いますが、

于 2013-03-15T18:29:56.347 に答える
0

私の知る限り、kornman00によると、「CreateFile」はdllからインポートされます。実際、これは Kernel32.dll から直接インポートされます。どのように機能するか不明な場合は、こちらを参照してください。 https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858%28v=vs.85%29.aspx

したがって、探していることを実行するには、kernel32.CreateFileA または kernel32.CreateFileW にブレークポイントを設定して直接アクセスするのが最善の方法です。違いは、アプリが Ansichar または Widechar を使用するかどうかだけです。

これを行うには明らかに、デバッグ プロセスを開始する必要があります。これは、カーネル 32 にブレークポイントを設定する前に、アプリケーション用にカーネル 32 をロードする必要があるためです。

混乱している場合は、「バイナリをより単純なデバッガーにロードする」ことをお勧めします。以前に説明したことを理解してください。

于 2015-07-21T17:45:54.130 に答える
0

CreateFileA/W がすべてインポート (つまり、.idata セクションで定義された externs) である場合、問題のシンボルを選択して F2 を押す (ブレークポイントを追加する) ことはできませんか? 表示される [ブレークポイント設定] ダイアログでは、ハードウェア ブレークポイント モードを指定できます。この場合、読み取りに制限する必要があります (インポートが解決されたときにシンボルの値が起動時に書き込まれるため)。 ds:CreateFileA' インスタンスを呼び出します。

IDA ヘルプからのいくつかのブレークポイント ノート:

  • 4 つを超えるハードウェア ブレークポイントを作成することはできません
  • ハードウェア ブレークポイントは命令の実行後に発生し、ソフトウェア ブレークポイントは命令の前に発生することに注意してください。
于 2013-08-05T04:24:53.970 に答える