rootKitへの挑戦状?(KeServiceDescriptorTable編)
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/03/27(火) 15:36:00ドライバファイル(sys)
※主要箇所のみ抜粋
/*APIフック*/
KeServiceDescriptorTable.ServiceTableBase(0xXXX) = 自作API;
/*サービステーブル書換*/
NewServiceTable = ExAllocatePool(NonPagedPool, (KeServiceDescriptorTable.NumberOfServices) * 4);
memcpy(NewServiceTable, KeServiceDescriptorTable.ServiceTableBase, (KeServiceDescriptorTable.NumberOfServices) * 4);
KeServiceDescriptorTable.ServiceTableBase = NewServiceTable;
〜〜〜〜〜〜〜〜〜〜問題〜〜〜〜〜〜〜〜〜〜
上記、プログラムをコンパイル/実行すると、『APIフック部分』でフックした
自作APIがよびだされる。
しかし、上記プログラムを実行した後、あるプログラム(以降、プログラムX)を実行すると、
APIフック部分でフックした自作APIが呼び出されずに、本物のAPIがよびだされる。
『サービステーブル書換』で、テーブルの書換えを行っているにもかかわらずだ。
ここで問題。
1.プログラムXは、どやって、本物のAPIのアドレスを取得しているのか?
2.プログラムXは、どやって、本物のサービステーブルのアドレスを取得しているのか?
以上、わかるやつは、かかってこい
■ このスレッドは過去ログ倉庫に格納されています