能力值:
( LV9,RANK:380 )
|
-
-
2 楼
罗云彬一书中的"进程控制"那一章有介绍
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
能否发个VC写的例子,最好能改我发出来的,谢谢!!
|
能力值:
(RANK:210 )
|
-
-
4 楼
搂住你写的对啊 调试一下看看吧
|
能力值:
(RANK:210 )
|
-
-
5 楼
你插入那个dll 名字最好是全部路径
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我编译能通过,但运行后我查看"计算器"进程里没我插入的DLL进程,但我发出来的第二部分是可以查到的,而且也的确弹出了对话框
|
能力值:
(RANK:210 )
|
-
-
7 楼
你先把dll名字的路径写全试试
ms_DllName="DllHook.Dll"; 把路径补上
我在自己电脑上试的没问题,完全按照楼主的方法 不过用的汇编写的
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
我已经调试过,GetLastError()也没错误,真是没办法了,大家帮帮忙~~谢谢~~~
|
能力值:
(RANK:210 )
|
-
-
9 楼
我说的方法老兄没试吧
你把那个dll复制到和计算器程序在同一目录下.
就是system32目录下 就ok 了,我这里测试成功.
注入自己的dll一般都要先获取dll路径,再注入的.
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
输入DLL路径行了,谢谢bithaha
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
我想在DLL一运行马上弹出一个窗口,
App头文件中声明了CDialog dlg1;
dlg1.Create(IDD_DIALOG1,AfxGetMainWnd());
dlg1.ShowWindow(SW_SHOWNORMAL);
出错了?我发现虽然DLL已经插入了计算器的进程,但AfxGetMainWnd()还是调用DLLmain,我如何才能找到计算器的窗口指针?
后来我又用了:
dlg1.Create(IDD_DIALOG1,CWnd::FromHandle(::FindWindow(NULL,"计算器")));
dlg1.ShowWindow(SW_SHOWNORMAL);
但结果还是不成功,在此还是请各位朋友们再次出手帮助,谢谢~~
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
自己顶下,再求解
|
能力值:
(RANK:210 )
|
-
-
13 楼
没明白你什么意思
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
我的意思是在DLL中如何创建一个非模态对话框???
|
能力值:
(RANK:210 )
|
-
-
15 楼
我这里用findwindow就能成功...
如图.
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
我这里不行呀,不知为什么?那个DLL是你用汇编写的吧,我用MFC的不行呀,能否把源码发上来我看一下
|
能力值:
(RANK:210 )
|
-
-
17 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
呵呵 前两天把注入DLL 的功能 写成了一个函数,只要提供要注入的DLL 和进程ID就可以了
地址是:
http://blog.csdn.net/chinafe/archive/2007/07/11/1685271.aspx
希望对你有点用
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
多谢你们的帮忙,注入其实已经成功了,但DLL里面还是一头雾水,原因很简单,我用MFC是因为想用他的类,用WIN32有点怕,但是在DLL里MFC使用方法又不太懂,像bithaha一样,直接用win32的方法写,我也基本明白,原来是在DLL里面也创建一个新线程来操作,但是MFC来创建我却不会,所以,MFC既带来方便,但也同时会令人模不着头脑,真晕,再慢慢研究下,在这里多谢你们的帮忙,多谢了。
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
呵呵 客气嘛 都是好朋友
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
llEntry proc _hInstance,_dwReason,_dwReserved
local @dwThreadID
.if _dwReason == DLL_PROCESS_ATTACH
push _hInstance
pop hInstance
invoke CreateThread,NULL,0,offset _WinMain,NULL,\
NULL,addr @dwThreadID
invoke CloseHandle,eax
.endif
mov eax,TRUE
ret
DllEntry Endp
End DllEntry
突然之间想到一个问题?为什么在DLL进程创建时要创建一个新的线程来建立对话框???
不能直接建立吗???
|
能力值:
(RANK:210 )
|
-
-
22 楼
能直接建立,你可以试试.
但是直接建立也应该会出现程序"死机"情况.
楼主你都不动手操作就来问,好不厚道
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
因为我把汇编扔下了,呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
同问,
我遇到的情况和楼主差不多,
通过创建远程线程向目标进程注入一个dll,该dll是采用mfc的正规dll,
在dll的initinstance里面创建一个非模态对话框,dll已经注入,可是对话框一闪就没有了,对话框对象是在堆里面分配的,而且一直没有释放,跟踪到创建对话框那里的时候也可以看到对话框出来,继续运行又没有了,在Initinstance里面创建线程来创建对话框也一样,dll里面的代码和别人功能一样运行正常的dll几乎完全一样,不同的是他们的用的是setwindowshook来加载dll,在CreateRemoteThread之后也用WaitSingObject等待了,哪位朋友能帮忙解决一下,谢谢,搞了几天了还是不得其解,
|
|
|