进程隐藏是一种常用的安全技术手段,常常被用来保护软件,防止被检测和卸载。下面介绍两种实现进程隐藏的方法:
一、修改进程PE的ImageBase
ImageBase是PE文件的映像基址,可以通过修改ImageBase的方法来实现进程隐藏。具体实现方法如下:
- 获取当前进程的映像基址
- 建立一个与目标进程有同样映像基址的PE文件镜像
- 重定向内存中所有的地址为该PE文件中的地址
- 修改PE文件的ImageBase并将其还原到原进程映像基址的位置
- 将镜像文件写回目标进程
- 重启目标进程
这种方法的优点是可以实现完全的进程隐藏,缺点是需要重启目标进程。
二、使用Hook技术
Hook是一种重定向函数调用的技术,可以通过Hook技术来实现进程隐藏。具体实现方法如下:
- 找到需要隐藏的进程
- Hook该进程的CreateProcess函数,将新创建的进程隐藏
- Hook该进程的EnumProcesses函数,将隐藏的进程从进程枚举列表中删除
这种方法的优点是可以在不重启进程的情况下实现进程隐藏,缺点是难以完全隐藏进程。
根据实际情况选择不同的方法实现进程隐藏是比较合适的。