进程隐藏的若干方法

一、最为古老的DLL注入方法。
虽说古老,但也经历了不少变动,最初的win9X的系统没有Psapi,没有进程快照,所以一般是三级跳。跳啊跳……NT下可以直接用 OpenProcess打开进程(打不开的话,提权到Debug权限),利用LoadLibrary,并且申请远程地址空间,然后把DLL注入到目标 EXE进程当中,可谓省时省力,这也是目前应用作为普遍的方法之一。

典型代码:

二、EXE注入。
比起上面的方法,更为暴力,直接将EXE作为一个模块强行附加到其它进程上 面,由于注入的是EXE文件,需要考虑更多的东西,比如指针,比如映像基址,比如对应的EXE的内存映像的读写。当然,远程线程这一步是不可少的。
 
这种方法和DLL注入本质上没有太大差别,都是占 了别人的坑,一旦目标EXE完蛋,他们也跟着88了,所以一些牛人又想出了新的方法。
三、和谐任务管理器。
这个不算什么进程隐藏的方法,不过还是说下,大多情况下,我们在任务管理器里面看进程,如果把任务管理器和谐掉,让它不显示这个进程就行了。简单来说就是 过滤。
实现起来比较简单,找到任务管理器的句柄,获得目标Pid,读取进程名称,如果和目标进程相同,然后就使用WriteprocessMemroy把 taskmgr相应的进程的名称改掉,比如把a.exe改成explorer.exe……当然,出现了几个explorer会让人产生怀疑的……而且这也 不算隐藏,最多只是一个伪装……
由于这种方法比较鸡肋,所以不给代码了,有兴趣的朋友自己试试吧……
四、HOOK API(EProcess双向链表)
网上有流传很广的hideprocess.pas,就是利用EProcess的结构。双向链表,摘除链上的相应的两个偏移量,$88和$8C,这两个偏移 量地址,然后就能隐藏进程了,C代码如下:
http://www.codeproject.com/KB/system/preventclose.aspx
有 基础的朋友可以看看,由于EProcess比较复杂,估计Delphi坛子里玩Ring0的也不多,所以也不多说了,如果想自己探索,有两个建议:1、学 好汇编。2、善于利用WinDBG调试。
五、驱动……NtQuerySystemInformation
Native API。内核啊内核……Liunx内核BT,Windows更抓狂……这也是方法之一,由于驱动大多是C编写的,用WDK的人很多,所以这方法大多可以搜 到相应的资料,只不过Delphi不擅长写驱动,所以知道这种方法的Delphier一般很少,由于相关资料太少,给个地址吧……有部分源码,不过需要注 册……
http://www.kmdkit4d.net/dispbbs.do?boardId=8&ID=52

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值