小弟在学作嵌入式外挂,用VB创建一个带窗口的Activex DLL,把它编译成了一个带返回函数普通DLL,把这个DLL用CreateRemoteThread在别的进程中注入线程成功,但是被注入的DLL要如何才能起作用啊,注入是成功了,能够在被注入的进程中查看到我注入的DLL线程和模块,但是就是不知道它如何起作用,晕。

解决方案 »

  1.   

    你要保证dllmain被调用,且不会出现错误
      

  2.   

    dllmain如何编写,如何调用?
    绿豆兄能加我QQ吗:5758536
      

  3.   

    我也才学会写DLL,目前还不知道怎么去掉或用自己的函数替换DLL的注册(卸载)函数。DLLMAIN函数也不知道怎么写!能不能发个例子看看
      

  4.   

    我朋友论坛里这个文章也许能帮到你:http://www.fantaspace.com/bbs/dispbbs.asp?boardID=3&ID=35&page=1部分内容:vb 创建windows dll
    win32 api就是windows dll
    通常,一个静态库用在app的开发中,库没空必须链接到完成的app中。在动态链接中,模块是在另一个分离的dll中,是动态链接到app上。动态链接库包括内部函数,只能从dll内部调用,如果是输出函数,可以从别的模块中(dll或者app)调用。 通常,.def文件在c/c++工程中来列出dll的输出。一个dll也包含一个当被一个进程或者线程装载或者卸载的可选择入口点。当装载和卸载dll时windows调用这个入口点(entry point),同样当进程创建和结束时也调用这个入口点。这样可以使dll执行每个进程和每个app的初始化和清除工作。这个入口点在vb中的语法:
    Public Function DllMain(hinstDLL As Long, fdwReason As Long, 
       lpwReserved As Long) As BooleanhInstDLL, long类型 包含了dll的 instance handle 句柄. 也是dll的模块句柄(DLL's module handle.)fdwReason, 常数标识 入口点为何被调用,可能值为:DLL_PROCESS_ATTACH (1)
    进程装载了dll,每进程初始化要执行。A process is loading the DLL. Any per-process initialization should be performed. 
    DLL_THREAD_ATTACH (2)
    进程交换(注入)一个新的线程,每线程初始化要执行。The process is spawning a new thread. Any per-thread initialization should be performed. 
    DLL_THREAD_DETACH (3)
    一个线程结束。每线程清除要执行。A thread is exiting. Any per-thread cleanup should be performed. 
    DLL_PROCESS_DETACH (0)
    一个进程断开dll链接,或者进程结束,每进程清除要执行。A process is detaching the DLL, or the process is exiting. Any per-process cleanup should be performed. lpvReserved
    一个long类型提供更多关于 DLL_PROCESS_ATTACH 和 DLL_PROCESS_DETACH的信息. (如果fdwReason是 DLL_THREAD_ATTACH or DLL_THREAD_DETACH,则该参数无用) 如果fdwReason 是 DLL_PROCESS_ATTACH, lpvReserved值无意义对于用函数 LoadLibrary and GetProcAddress装载dll, 如果 fdwReason 是 DLL_PROCESS_DETACH, lpvReserved值无意义,如果返回值是从 Win32 FreeLibrary function, lpvReserved值也无意义,如果进程结束调用入口点.函数的返回值只有在fdwReason 是 DLL_PROCESS_ATTACH才有意义,如果初始化成功,函数返回true,否则返回false.因为这个函数是window调用的入口点.传入这个函数的参数值是由windows决定.当一个线程被用win32 TerminateThread 函数和  Win32 TerminateProcess 函数结束,没有调用入口点.
      

  5.   

    如果你要做这样的DLL,可以去找文章主人isumh.他的水平在我看来是很高的郁闷的是,这种人好象好多.....:(