IDA Pro 6.1には、「CreateFileA」および「CreateFileW」関数APIへの20回の呼び出しがあるdllがあります。
すべてのCreateFileA/CreateFileWにブレークポイントを自動的に指定したいと思います。
すべての外部参照に対して手動で行うことはできますが、それは面倒です。CreateFileA / CreateFileW呼び出しに直接ブレークポイントを指定する方法はありますか?
どうもありがとう :)
IDA Pro 6.1には、「CreateFileA」および「CreateFileW」関数APIへの20回の呼び出しがあるdllがあります。
すべてのCreateFileA/CreateFileWにブレークポイントを自動的に指定したいと思います。
すべての外部参照に対して手動で行うことはできますが、それは面倒です。CreateFileA / CreateFileW呼び出しに直接ブレークポイントを指定する方法はありますか?
どうもありがとう :)
両方の CreateFile の最初の命令にブレーク ポイントを設定することも、IDAPython を使用してブレークポイントを作成することもできます。
すべての命令/呼び出しを反復し、適切な関数への呼び出しを探します。
add_bpt() 呼び出しだと思いますが、
私の知る限り、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 をロードする必要があるためです。
混乱している場合は、「バイナリをより単純なデバッガーにロードする」ことをお勧めします。以前に説明したことを理解してください。
CreateFileA/W がすべてインポート (つまり、.idata セクションで定義された externs) である場合、問題のシンボルを選択して F2 を押す (ブレークポイントを追加する) ことはできませんか? 表示される [ブレークポイント設定] ダイアログでは、ハードウェア ブレークポイント モードを指定できます。この場合、読み取りに制限する必要があります (インポートが解決されたときにシンボルの値が起動時に書き込まれるため)。 ds:CreateFileA' インスタンスを呼び出します。
IDA ヘルプからのいくつかのブレークポイント ノート: