dll注入其他进程后`如何隐藏自己dll的模块?
就比如dll文件名为aaa.dll ```注入后``用od等调试器加载后``可以看到有一个名为aaa的模块(就是自己的dll的模块)
请问一下如何在注入后`无论是用调试器还是用module32first/module32next之类的函数都无法找出自己的模块?````

解决方案 »

  1.   

    用DLL注入无法隐藏。
    可以直接往进程中写入可执行代码,参考<<Win32汇编语言程序设计>>,罗云彬 写的
      

  2.   

    挂全局钩子处理那个列举模块的 API 的结果?。。
      

  3.   

    To:weiym(磨刀霍霍向猪羊)
       代码段明显增长会不会很容易被发现?
    To:yjgx007(听妈妈的话)
       可以再详细一点吗?
      

  4.   

    To:weiym(磨刀霍霍向猪羊)
       代码段明显增长会不会很容易被发现?
    =====不会,他不是往静态exe文件中写,而是直接往正在运行的进程中写入可执行代码,比如往explorer进程中写入你要执行的代码,写完后你自己的进程就可以退出了,只要机器不重启,你的代码将一直在explorer里面运行,当然,这种方式你需要写一个程序执行注入操作,每次机器重启后执行一次注入操作,执行完后你的程序就可以退出了,你的代码将一直在别人的进程里执行。
    当然也可以修改静态EXE文件,根据PE文件格式,你可以自己在原文件后面加入你的代码,一般是让修改后的EXE先执行你的代码,再执行它原来的,但这种方式容易被杀毒软件当作病毒处理。
      

  5.   

    To:weiym(磨刀霍霍向猪羊)
       但是dll的代码很长``如果逐句翻译为机器码来写进内存的话,工程是不是大了点?或者还有其他便捷的方法远程写入代码?
      

  6.   

    貌似跟系统安全有一点点沾边的东西,就会被人骂成流氓软件
    提供两个思路:
    1.hook API代码网上有,自己找找,rootkit和木马里常用
    2.另一个传说中的办法,先注入,找到本dll的内存,copy一份,在进程内另开一片内存,写进去。然后把自己FreeLibraryAndExitThread(),把刚才那个copy代码执行起来。这样自己代码执行了,但进程里是没有模块的。