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 CArrayg_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; }