有一个进程中,老是给别人远程注入一段非法代码(非DLL注入),我想查到这段被别人非法申请(VirtualAllocEx)的空间,但不知道怎么处理!希望大大们帮我出出主意,或给外思路!进程空间

解决方案 »

  1.   

    http://wenku.baidu.com/view/3be4237da26925c52cc5bf59.html
    要知道加载的模块有那几个是否合法,包扩进程的线程的合法性
      

  2.   


    谢谢提供,不过,这文章中所说的都是DLL方式注入的,这种通过比较的方法可以查出。我的情况是进程中被非法开出一段空间,然后被人在此空间中注入了一段代码,我想查出这段非法内存空间,并把它释放掉。现在就是怎么样能在自己的进程中找到这段非法空间的基址
      

  3.   

    不用dll注入的话是不可能= =
    好吧要是win2000的话那也没话说了
    但是xp之后进程空间完全分开了。所以就算你把所有地址全部写一遍也不会对其他进程的内存有影响的。
    参考《windows核心编程》
      

  4.   

    主要在13章,第22也有提到一些(主要是通过dll注入绕过这个机制的方法)
      

  5.   

    你说不是通过DLL注入,那是用什么方式注入的啊?注入方式不清楚,你根本没有办法来处理这个问题。
    另外,没有非法一说,注入进去的空间就是合法的,只是不是原来设计者的意图而已。
      

  6.   

    其实,即便是dll注入,在load你的要注入dll之前,也要先注入一段内存,开启一个线程。只是依据这个线程里直接变成非常困难,就需要注入一个dll。所以,注入步骤:1. 申请远程内存
    2. 将线程函数代码考入远程进程
    3. 启动远程线程
    4. 如果需要,在远程线程里load你的dll,就是完成注入dll所以,某进程要注入你的进程,必须要先在你的进程里开启一个线程(对他而言是远程线程)。
      

  7.   

    这个不一定,注入DLL的方法很多,并不一定非要用远程线程。
      

  8.   


    用VirtualAllocEx 真接注入代码根本不用DLL,目前我知道却确实有人注入了,就是无法找到这段别人直接注入的代码!
      

  9.   

    VirtualAllocEx可以分配一段空间,但是代码如何加载呢?