【リア充か】北九州市立大学part30【ぼっちか】at KOURI
【リア充か】北九州市立大学part30【ぼっちか】 - 暇つぶし2ch647:大学への名無しさん
12/06/21 11:28:23.53 qbNfPLV30
nProよりも、今梃子摺っているのはガメポプロテクト。回避して升するだけなら造作ないが、GPP.DLLの動作に謎めいた点が幾つもあるので、その解析に苦労してるわ。
nProの場合、カーネル側APIを片っ端からフックしていけば、升ツール等いろいろ起動しても発見されないが、ガメポプロテクトは何故か検出する・・・
GPP.DLLのガードもかなり固い。ガメポプロテクトのカーネルフックに変更を加えようとすると必ずPCが落ちるし、何よりなぞなのが、
そのフックルーチンが何時どのようにロードされているかがさっぱり不明なこと。調べた限り、以下のカーネル関数がフック

nt!NtAllocateVirtualMemory 関数エントリにJMP命令
nt!NtQuerySystemInformation SDTフック
nt!NtReadVirtualMemory 関数エントリにJMP命令
nt!NtWriteVirtualMemory 関数エントリにJMP命令
win32k!NtUserBuildHwndList SDTフック
win32k!NtUserMessageCall SDTフック
win32k!NtUserPostMessage SDTフック
win32k!NtUserSendInput SDTフック

これらのフックルーチンはいずれもGPP.DLLがロードされているメモリ範囲外にある。GPP.DLLがロード直後にExAllocatePoolを呼び出してメモリを確保後、
自分自身をそこに再配置しているところまでは分ったが、それでもフックルーチンは再配置後のメモリ範囲の外にある。

こっちで NtLoadDriver、IoCreateFile、NtSetSystemInformation、NtDeviceIoControlFile、GPP.DLLの IRP_MJ_DEVICE_CONTROL ハンドラ等、その他ドライバの
ロードやドライバとの通信に関連すると思われるカーネル関数を全てフックして監視しているが、それでもフックがどのように設置されているのか検討がつかない。
そもそもGPP.DLLはモジュールが小さいので、全てのフックルーチンを内包するには無理があるし、ディスアセンブルしてもそれらしいもコードは見当たらない。

必ず他のモジュールをロードしているか、直接カーネル領域にフックコードを書き込んでいるかに違いないと思うのだが、それを行っている痕跡がつかめない orz


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch