HINSTANCE hKernelLib;
pRegFunction RegisterServiceProcess;
hKernelLib=LoadLibrary("kernel32.dll");if(hKernelLib)
{
   RegisterServiceProcess=(pRegFunction)GetProcAddress(hKernelLib,"RegisterServiceProcess");
   if(RegisterServiceProcess)
      RegisterServiceProcess(GetCurrentProcessId(),RSP_SIMPLE_SERVICE);
   else
      MessageBox(NULL,"","",NULL);
}win9x里可以用,Win2000却不行!!说找不到入口点,是不是win2000把这个Api取消了?
那怎么实现??

解决方案 »

  1.   

    RegisterServiceProcess应该只是一个宏吧。试试RegisterServiceProcessW或者RegisterServiceProcessA.
      

  2.   

    RegisterServiceProcess 在2000下是不支持的,在2000下应该把你的程序做成service
      

  3.   

    win2000的进程管理机制和98不同,所以这样的函数不可用
      

  4.   

    楼上说的对!
    W2K和98的服务机制不同,所以你的那个函数不能用了
    W2K下的实现方法,《电脑编程技巧与维护》上有源代码
      

  5.   

    Lightest(Lightest)是对的,RegisterServiceProcess是95,98的API,使用Dependency工具可以看到,2000的kernel32.dll并没有导出该函数。
      

  6.   

    http://www.codeproject.com/system/xyntservice.asp
    http://www.codeproject.com/system/serviceskeleton.asp
    http://www.codeproject.com/system/windowsservices.asp
    http://www.codeproject.com/system/windows_startup.asp
      

  7.   

    这个函数是个未公开函数,是用来使得某进程在9x下面不被Ctrl+alt+Del显示出来的,某些病毒或者木马喜欢这样实用,Nimda在9x下面就是这样隐身的,在nt/2k/xp下,nimda是作为一个dll通过CreateRemoteThread注入到一个进程。如果你要实现的也是隐身的话,你可以照nimda的方法去作。
      

  8.   

    我作了一个木马方法更绝,在9x和2k下面都是作为dll注入到一个进程中,我的主页 http://www.oldworm.com 上有关于我的木马的一个简短介绍。
      

  9.   

    对于win 2000系统,可以通过远程线程或DLL注入或二者结合的方法,在其他进程(如“资源管理器”)中执行自己编写的代码;也可以编写驱动程序勾挂ZwQuerySystemInformation()函数并修改进程链表指针,达到隐藏指定进程的目的。
    对于98系统比较简单,通过RegisterServiceProcess()将自己注册成服务程序就行了。 关于DLL注入和远程线程技术在《Windows核心编程》里有详细介绍和完整的演示代码。《Windows核心编程》一书在www.vckbase.com上有下