关于远程线程注入DLL的问题。 ( 积分: 100 )

  • 主题发起人 主题发起人 iorizht
  • 开始时间 开始时间
I

iorizht

Unregistered / Unconfirmed
GUEST, unregistred user!
当DLL已经注入了远程线程,DLL里的代码是如何启动起来的?如DLL的输出函数为test();执行一条showmessage();语句,怎么执行呢?请各位大虾帮帮小弟讲解下原理,谢谢,:)
 
当DLL已经注入了远程线程,DLL里的代码是如何启动起来的?如DLL的输出函数为test();执行一条showmessage();语句,怎么执行呢?请各位大虾帮帮小弟讲解下原理,谢谢,:)
 
看都没人看啊?
 
直接让你的远程线程调用即可,<br>或者在dll被加载时,创建自身的线程
 
http://www.2ccc.com/article.asp?articleid=1893
 
lich说的我知道用createremotethread直接创建远程线程,在远程线程内用loadlibrary加载DLL,完成注入操作,但是我不知道DLL内的代码是怎么执行的,不象平常一样引上dll后,就可以直接使用输出函数了,在进程内注入的DLL,怎么执行他输出函数内的代码啊?<br>刘麻子给的代码刚下来,一会有空看下。先谢谢大家了<br>
 
刘麻子的代码太强了,得消化消化,^_^
 
只要你能够保证你的远程线程所调入的DLL在调入之前,所参考的DLL已经都调了进来,也就是说,在我下边所说的代码执行时机执行你的代码的时候,不会造成LoadLibrary/FreeLibrary的调用,那么事情就很简单了。(这可以通过预先远程线程先调入需要的DLL来保证)<br>1.执行代码的时机就是在你的DLL.dpr的 begin end. 的之间<br>2.你可以通过OpenFileMapping来简化共享内存的访问,<br>3.你可以在begin&amp;lt;-&amp;gt;end.当中执行CreateWindow创建一个窗口用来相应消息,此窗口的类名可以用一个特定的GUID的字符串<br>4.这样结合SendMessage/WM_COPYDATA/FileMapping已经可以相当方便的完成任何任务了
 
哦,看来就是我对DLL懂的不多了,我只知道在DLL内写函数,然后有个输出语句,用DLL的时候loadlibrary,然后就能用输出的哪个函数了,你说的直接在dll的begin和end.之间写需要的代码?然后注入到进程中,进程启动的时候就直接执行这些代码了?是这个意思吗?呵呵,新手,请多多指教啊,有QQ吗?加啊!
 
在dll的 Begin end 內建一進程運行你的函數就OK了
 
DLL 工程尾部的 begin end; 之间的代码, 每进入一个进程空间, 都会执行一次, 可以在这个地方判断进入的进程, 如果是目标, 则建立一个线程, 这个时候建立的线程, 是属于该目标进程的. 如果想插入任意进程, 建议用这种: http://www.2ccc.com/article.asp?articleid=1717
 
谢谢刘麻子大哥了,我记得我加你Q了,可是怎么总看不到你上线啊?帖子如果结了,你看问题列表就看不到这个问题了是么?
 
在我回答的问题列表中可以看到的. [:D]
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部