前题:
SetWindowsHookEx在我作的一个dll里。=======================================================SetWindowsHookEx( 类型, 自己的函数,当前dll , ***指定某程序的线程*** );设置了这个。是否就已经把这个dll注入指定某程序的进程了呢?如果不是。要如何处理呢?

解决方案 »

  1.   

    HOOK一个目标进程常用的消息,比如鼠标、键盘,这样目标进程必然装入dll运行,就达到dll注入的目的了。
      

  2.   

    可是我在线上看到有关这样的信息:1、SetWindowHookEx可以用来注入一个DLL到指定进程,这是跨平台的注入方式,但只对gui进程有效。2、CreateRemoteThread也可以注入一个进程,不限于gui进程,但仅仅nt系列平台有效。想问一下。有没有9x与nt都可以用的。没有什么gui限定的注入方法呢?谢谢========还有什么注入方法:有多少说多少吧。。谢谢
      

  3.   

    不对,这两个应该都没有gui限制才对.
      

  4.   

    晕,我也搞不清了,
    我记得那种把dll放在注册表的某个地方后,user.dll就会自动加装它的那种方法在console下不能用,SetWindowHooks不知道.
      

  5.   

    可以看看<<Windows核心編程>>,
    里邊講的很清楚
      

  6.   

    可以使用注册表注入吧??
    不过我忘了,呵呵,一般我觉得使用setwindowshookex就足够了,
    只要有消息循环的就可以注入,一般说来是没有问题的(没有消息循环的程序很少吧,呵呵),
    使用远地线程注入的方法虽然很好,但是太麻烦,而且有操作系统限制,
    详见《windows核心编程》
      

  7.   


      好像程序员杂志上的一篇文章上说有三种方法:   (1)注册表   (2)钩子   (3)CreateRemoteProcess   
       (1)和(3)我都没用过。。
      

  8.   

    (1)和(3)对98都没用。
    另外3是CreateRemoteThread
      

  9.   

    以上说了这么多.是否都可以注入进程?我已经看了《windows核心编程》,可是代码我看不太明白.不过书里说这三种方法都可以注入别的进程.谢谢大家的帮助.
      

  10.   

    我只使用过CreateRemoteThread把DLL注入到进程中。只能在NT、2000下可以使用
      

  11.   

    Remote Run Library是一个为部分代码提供完整的远程(这里的远程指不同于本进程的其他
    进程空间)运行环境(包括在代码中使用隐式API调用、字符串常量、全局/静态变量、异常保
    护)的工具。它允许你在任意进程(只要你有足够的权限)运行一段代码甚至一个exe,从而
    可以让两个或多个可执行文件在同一个进程空间运行。 
        在一个进程空间运行一份exe,关键是要解决exe的加载问题,这包括把exe映射到目标进
    程空间,解决IAT和重定位表,为exe加载必要的dll。remote run library中实现了多种加载
    exe的方法。 
      

  12.   

    Hook 是在线程第一次调用 User32 函数的时候被加载的,如果进程内没有任何线程调用过 User32 函数,Hook 不能将 Dll 注入这些进程。
      

  13.   

    我有一篇文章介绍这个的,要的话email。
      

  14.   

    [email protected]把文章发给我吧
    *********************************************************************
    怎么能在游戏中显示我们程序的界面我试过了,设置游戏的窗口为我们程序的父窗口,还是不行
      

  15.   

    98下用CreateKernelThread代替CreateRemoteThread。
      

  16.   

    98下用CreateKernelThread代替CreateRemoteThread。
    ---------------
    那个函数并不能指定目标进程。他们还是有区别的。
      

  17.   

    用调试进程插入dll,所用进程都可以
      

  18.   

    哈,刚看完 7 月份的《程序员》,里面给了一个例子,9/X,ME,2000 下怎么做都讲到了,楼主可以看看,很详细的,还可以下载代码;可惜太长,不然我就打出来了;
      

  19.   

    游戏一般都是用DirectX写的
    要在DirectX下显示窗口
    比较特殊
      

  20.   

    说明一点在DirectX下显示窗口,最好用对话框的DoModal函数,如果用ShowWindow
    此类函数,窗口很快就会被覆盖掉。如果用DoModal函数,执行此函的进程要等到DoModal
    返回后在继续运行,因此就不会有窗口被覆盖掉的问题了。