2009-06-08 10 views
2

多くのアンチデバッグ機能を備えたwin32アプリケーションをデバッグしています。私はollyとIDAの異なるステルスオプションを試しましたが、どれも動作していないようです。 kernellandからこのuserlandアプリケーションをデバッグすることが可能かどうか疑問に思っていたので、アプリケーションはデバッグ中であることを知りませんでしたか?もしそうなら、どのデバッガを使うべきですか?カーネルの土地からユーザランドアプリケーションをデバッグすることは可能ですか?

答えて

1

カーネルモードからユーザーモードコードをデバッグすることは可能ですが、もう少し複雑です。たとえば、プロセスを開始する前にブレークポイントを取得するには、カーネルのプロセス作成コードまたは最初に実行するNTDLLのユーザーモードコード。 Debugging Tools for Windowsに含まれているカーネルデバッガを使用して、カーネルデバッガを設定できます。

あなたは非侵襲的プロセスをデバッグしようとしたことがありますか? WindowsのデバッグツールでもあるWinDbgには、非侵襲的なオプションが含まれています。これは正式にプロセスには付かず、検出可能でもありません。

しかし、ほとんどのアンチデバッギングのスイートには、カーネルデバッガは、マシンまたはWinDbgのような非侵襲的なデバッガが実行されている場合は有効になっているかどうかを検出することができるはずです。これらのことを検出することはそれほど難しいことではありません。

+0

それでは、どうすればいいですか?ボッシュはオプションになりますか? –

+0

非侵襲的なwindbgがより簡単になります。私はボッシュを使っていない。 – Michael

+0

Bochsはオプションですが、システム全体に複数のスレッドがある場合、つまりブートローダー以外のものがあれば、それは痛み(GUIの場合でも)になると思います。コンテキストスイッチごとに手動ブレークポイントを設定する必要があります。 – zildjohn01

関連する問題