レジスタの 1 つに特定の文字列が含まれている場合、Ollydbg を一時停止する必要があります。それを達成する方法はありますか?
4 に答える
私はあなたをはっきりと理解していません。レジスタに文字列をロードすることはまったくできません:)ロードデータにブレークポイントを設定できます。例 -> あなたの値 "Have a nice day!"、このアドレスに BP を設定します。Olly は文字列がロードされるたびに壊れます。そうでなければ、あなたの質問を理解できません。
しかし、まだここに小さなチュートリアルがあります。
最初に pe ファイルをロードしたところ、オンライン ゲームの構成作成プログラムである "GAMMA" という文字列が見つかりました。
http://img7.imagebanana.com/img/hu6kg56k/findstr.png
それでは、ダンプでそれを見つけてみましょう。参照の「GAMMA」をダブルクリックすると、disasm ウィンドウになり、PUSH をダブルクリックするか、ダンプ セクションをたどって文字列式に移動します。Your string を選択し、hardwarebp を以下のように設定します。
http://img7.imagebanana.com/img/pejyx72i/bp.png
F9 を押すか、Olly の上部にある再生ボタンを押すと、弦がロードされた最初のポイントでブレークします。確かに、特定の場所を見つけたい場合は、ポイントが見つかるまで何度も何度も繰り返さなければなりません。
http://img6.imagebanana.com/img/f7w15fr6/hwbp1.png
編集:
F7 でコードをトレースして、文字列がスタックからいつ呼び出されるかを確認できます。
どのバージョンのOllyDbgを使用していますか?
バージョン2.0を試しましたか?それはあなたを助けるかもしれないいくつかの条件チェックを持っています(OllyDbgが特定のレジスターを見ることができるかどうかはわかりませんが)。
Trace -> Set condition...
OllyStepNSearchを試してください
。レジスタの 1 つに特定の文字列がある場合にデバッグを停止する簡単な方法が得られます。