www.pudn.com > hidedrive.rar > BufferOp.cpp


// HideHkApi.cpp : Defines the initialization routines for the DLL. 
// 
 
#include "stdafx.h" 
#include "HideHkApi.h" 
#include "HideHkApi_Header.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#endif 
 
 
extern CArray g_arryFileHideRule; 
extern CArray g_arryProcessHideRule; 
extern CArray g_arryKeyHideRule; 
extern CArray g_arryValueHideRule; 
//////////////////////////////////////////////////////////////////////////////// 
//查找缓冲中是否有这个文件隐藏规则,返回值该值在缓冲区中的序号 
 
int FindFileRule(FILEHIDERULE FileRule) 
{ 
	int nIndex = 0; 
	size_t nLen = 0; 
	FILEHIDERULE inFileRule; 
 
 
	nLen = strlen(FileRule.rule); 
 
	for (nIndex = 0; nIndex < g_arryFileHideRule.GetCount(); nIndex ++ ) 
	{ 
		inFileRule = g_arryFileHideRule[nIndex]; 
 
		if ( nLen != strlen(inFileRule.rule) )  
			continue; 
		if ( !strncmp(inFileRule.rule, FileRule.rule, nLen ) ) 
			return nIndex; 
	} 
 
	return -1; 
} 
 
//////////////////////////////////////////////////////////////////////////////// 
//查找缓冲中是否有这个进程隐藏规则,返回值该值在缓冲区中的序号 
 
int FindProcessRule(PROCESSHIDERULE ProcessRule) 
{ 
	int nIndex = 0; 
	size_t nLen = 0; 
	PROCESSHIDERULE inProcessRule; 
 
 
	nLen = strlen(ProcessRule.rule); 
 
	for (nIndex = 0; nIndex < g_arryProcessHideRule.GetCount(); nIndex ++ ) 
	{ 
		inProcessRule = g_arryProcessHideRule[nIndex]; 
 
		if ( nLen != strlen(inProcessRule.rule) )  
			continue; 
		if ( !strncmp(inProcessRule.rule, ProcessRule.rule, nLen ) ) 
			return nIndex; 
	} 
 
	return -1; 
} 
 
//////////////////////////////////////////////////////////////////////////////// 
//查找缓冲中是否有这个注册表项隐藏规则,返回值该值在缓冲区中的序号 
 
int FindKeyRule(KEYHIDERULE KeyRule) 
{ 
	int nIndex = 0; 
	size_t nLen = 0; 
	KEYHIDERULE inKeyRule; 
 
 
	nLen = strlen(KeyRule.rule); 
 
	for (nIndex = 0; nIndex < g_arryKeyHideRule.GetCount(); nIndex ++ ) 
	{ 
		inKeyRule = g_arryKeyHideRule[nIndex]; 
 
		if ( nLen != strlen(inKeyRule.rule) )  
			continue; 
		if ( !strncmp(inKeyRule.rule, KeyRule.rule, nLen ) ) 
			return nIndex; 
	} 
 
	return -1; 
} 
 
//////////////////////////////////////////////////////////////////////////////// 
//查找缓冲中是否有这个注册表键值隐藏规则,返回值该值在缓冲区中的序号 
 
int FindValueRule(VALUEHIDERULE ValueRule) 
{ 
	int nIndex = 0; 
	size_t nLen = 0; 
	VALUEHIDERULE inValueRule; 
 
 
	nLen = strlen(ValueRule.rule); 
 
	for (nIndex = 0; nIndex < g_arryValueHideRule.GetCount(); nIndex ++ ) 
	{ 
		inValueRule = g_arryValueHideRule[nIndex]; 
 
		if ( nLen != strlen(inValueRule.rule) )  
			continue; 
		if ( !strncmp(inValueRule.rule, ValueRule.rule, nLen ) ) 
			return nIndex; 
	} 
 
	return -1; 
}