怎么样使程序不在 Windows2000 任务管理器的进程列表中显示出来?

解决方案 »

  1.   

    那不行,除非你写成dll,注入别的程序中
      

  2.   

    参见:http://www.delphibbs.com/delphibbs/dispq.asp?lid=667515
      

  3.   

    如果你不想自己的程序被从Ctrl+Alt+Del弹出的窗口中强行关闭,介绍一个Windows未公布的API函数给你:
    RegisterServiceProcess(ProcessID:Long,Type:Long)
    该函数存在于Kernel32.dll中.
    Process指向进程的ID,Type表示是否向系统注册该进程,是1,否0.
    function RegisterServiceProcess(a:longint;const b:longint):dword;stdcall;far;external 'Kernel32.dll' name 'RegisterServiceProcess';
    ddd:=GetCurrentProcessId;
    if (RegisterServiceProcess(ddd,1)=0) then
    showmessage('error!');
    用未公开函数RegisterServiceProcess
    #define RSP_SIMPLE_SERVICE 1
    #define RSP_UNREGISTER_SERVICE 0
    DWORD dwID,redserv;
    dwID = GetCurrentProcessId();
    regserv = RegisterServiceProcess(pid,RSP_SIMPLE_SERVICE);
    //恢复隐藏
    dwID= GetCurrentProcessId()
    regserv = RegisterServiceProcess(pid,RSP_UNREGISTER_SERVICE);
      

  4.   

    不是吧,就算是服务进程Windows2000的任务管理器列表一样可以显示出来的,除非你写成捆绑式的EXE,就是写了一个EXE,再写一个外壳EXE,执行外壳EXE就调用内部的EXE,这样也许(大概)可以无法显示,但是我想最方便的方法还是写成DLL注入到别的进程里面,这样是绝对不会在任务管理器里面显示的,不过查进程调用的DLL一样可以查出来
      

  5.   

    启动程序winexec.exe用它来启动install.dll这个安装库,install.dll中有个安装函数用来启动getkey.dll这个执行库,getkey.dll里面有我的木马程序,这个getkey.dll库被挂到explorer.exe的进空间中,然后winexec.exe和install.dll在内存中自动御载,但是getkey.dll仍在内存中运行(这就是*.dll的御载漏洞),因为这时系统中已没有我的winexec.exe存在,所以按CTRL+ALT+DEL查不到有我的进程在运行,这就是进程三级跳.这是我摘录的一段资料。下面说的也都是一些操作。没有代码。
    好象《Delphi 深入Windows核心编程》 里有这样的一个例子,看了但我也没怎么研究。只能提供这些了!