文章预览
前言 在之前几篇文章已经学习了解了几种钩取的方法 ● 浅谈调试模式钩取 ● 浅谈热补丁 ● 浅谈内联钩取原理与实现 ● 导入地址表钩取技术 这篇文章就利用钩取方式完成进程隐藏的效果。 进程遍历方法 在实现进程隐藏时,首先需要明确遍历进程的方法。 CreateToolhelp32Snapshot CreateToolhelp32Snapshot 函数用于创建进程的镜像,当第二个参数为 0 时则是创建所有进程的镜像,那么就可以达到遍历所有进程的效果。 #include #include #include int main() { //设置编码,便于后面能够输出中文 setlocale(LC_ALL, "zh_CN.UTF-8"); //创建进程镜像,参数0代表创建所有进程的镜像 HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnapshot == INVALID_HANDLE_VALUE) { std::cout < < "Create Error" < < std::endl; exit(-1); } /* * typedef struct tagPROCESSENTRY32 { * DWORD dwSize;
………………………………