我想向explorer.exe里永久注入一段代码,不知道该怎么做。我已经可以向explorer.exe注入dll,但是杀死explorer后再重启它,那个dll就不会再加载了。请问有没有什么方法能永久地让dll或代码注入到explorer中。
现在有向PE注入代码的程序,但是这种程序不能向explorer中注入,因为explorer是正在运行的进程(把它杀死在注入不算,希望在运行时注入)。
我试着接管gina,在系统启动时向explorer注入,不过总是不能获得explorer的进程ID,我是在shell初始化的那个函数里调用注入explorer的代码的,每次都是不能获得进程ID。
以上请高手指教。
暂时给分少些,怕水了帖子,问题解决马上加100分。

解决方案 »

  1.   

    注册表的系统设置项“AppInit_DLLs”可以为任一个进程调用一个dll列表 (ZT) 
      早期的进程插入式木马的伎俩,通过修改注册表中的[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs]来达到插入进程的目的。缺点是不实时,修改注册表后需要重新启动才能完成进程插入。如求职信病毒。利用注册表启动,就是让系统执行DllMain来达到启动木马的目的。因为它是kernel调入的,对这个DLL的稳定性有很大要求,稍有错误就会导致系统崩溃,所以很少看到这种木马。(转自百度)我曾经玩过的一个游戏外挂使的是这种注入,你在我的电脑都能呼出外挂
      

  2.   

    我主要是想解决应用程序在安全模式自动启动的问题,在安全模式下很多程序都不能自动运行,我想把我的代码放到safemode里的minimal中,但不知道怎么做。如能告知,不胜感激
      

  3.   


    每个进程都注入一个吧,互相监督,发现有新进程了就继续注入。说起来还是hook CreateProcess会不会好些。另外,可以TerminateProcess掉explorer.exe,然后用你那个pe注入代码的程序,完了再CreateProcess出explorer进程。要注意SFC的检测恢复机制。
      

  4.   

    策略有很多:
    1 注入到winlogon(或者其他系统进程)中一个dll,坚实explorer的创建,创建了新的explorer就重新注入;
    2 在驱动中监控进程的创建,explorer新创建就重新注入;
      

  5.   

    安全模式是不加载启动项的,所以也只能在那几个系统的启动项上动脑筋了,userinit也不错吧
    能整进驱动里面的话根本就不用考虑注入了吧
      

  6.   

    我看你还是在kenelos.exe里面注入比较坚实,任何安全模式都能保证自己的程序启动,而且绝对不会被杀掉.
      

  7.   

    在注册表AppInit_DLLs里写入要注入的DLL位置,在每个程序启动的时候都会自动注入此DLL
      

  8.   

    如果利用INTEL CPU的缓存漏洞,你可以把自己的代码放在CPU中,这样,安全模式还没开始,你的代码(或者病毒)已经运行了。并且这些代码完全在操作系统掌握之外,任何杀素软件对它都无可奈何。就好象地上的皇帝管不了天上的小兵一样。
      

  9.   

    写一个假的explorer.exe,把原来系统中的真的C:\windows\explorer.exe改名为explorer2.exe.在你的假explorer.exe的代码里这么写:调用真的explorer,也就是explorer2.exe,向其中注入你的dll.把这个假的explorer.exe复制到C:\windows\下,偷梁换柱
      

  10.   

    这个不太好吧 会导致所有GUI都注入该DLL.
    可以考虑木马方式注入(这是个病毒哦)。或则程序启动时候,运行一个监视程序,explorer一重启,就再注入。