592 名前:さとちーと 投稿日:2006/04/28(金) 14:32:57 ID:???
>>589 [email protected]に対するフックを回避するのは大したことではない。
元イメージの最初6バイト以上を命令長単位で別メモリへ退避させ、
BitBltを呼ぶときは退避先を呼び出し、6バイト目以降でコピー元
(GDI32.dll内の元関数)へJUMPさせれば良いだけ。これで
npggNT.des (nProのdll) のフッキングは回避可能。
(所謂 hook hopping のテクニックね)
一番厄介なのは、BitBltの前に必ず呼ばなければならないGetDC系の
関数が全てカーネル側からフッキングされてることだ。これを回避しないこと
には、仮にBitBltが正しく動作したとしても、nProによるGetDC呼び出しに
対する監視そのものから逃れることは出来ない。つまり、nPro側からは
こちらが何をやっているのか全て見え見えなわけ・・・
GetDC系に対するフッキングを回避するにはデバイスドライバを作成して、
直接Win32k.sys内にあるNtUserGetDCを呼び出さなければならない。
さとてちこれのやり方もっと詳しく頼む
これ出来た人居る?