私は最近 api フック メソッドについて勉強し始めました。現在、私の主な研究対象は IAT フック メソッドです。これは、このフック メソッドのみがスパイウェアに対する防御に適用されているセキュリティ アプリケーションを発見したためです。
次に、このセキュリティ アプリケーションに存在する複数のリソースの間に、通常は白いスクリーン キャプチャをもたらすスクリーン キャプチャのロックがあります。 」には、画面キャプチャをロックするこのコードが含まれています。
そこで、私は Web 上の IAT フックについて多くのことを読み、このフック メソッドをバイパスする方法を示す 2 つの Web サイトを見つけました。
iC0de.orgの IAT フック ソース コードへの回答。
と
IAT フックについて説明するテキストのMalwareTech 。
私が気になったバイパスの方法はGetProcAddress
、元の関数の実アドレスを取得する関数を使うところです。
GetProcAdress
したがって、教訓的な目的のためにのみ、以下のこのスクリーン キャプチャ機能を実装し、最終的にこのセキュリティ アプリケーションに実装されている IAT フックをバイパスする方法を知りたいです。
procedure Print;
var
DCDesk: HDC;
bmp: TBitmap;
begin
bmp := TBitmap.Create;
bmp.Height := Screen.Height;
bmp.Width := Screen.Width;
DCDesk := GetWindowDC(GetDesktopWindow);
BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DCDesk, 0, 0, SRCCOPY);
bmp.SaveToFile('ScreenShot' + '.bmp');
ReleaseDC(GetDesktopWindow, DCDesk);
bmp.Free;
end;
どんな提案でも大歓迎です。