我知道某一进程的进程号、句柄之类的所有参数,也知道这个进程中的函数的地址和函数原型,我如何在进程外调用该进程的这个函数??100分相送
解决方案 »
- 求高手解答
- VC LOGPALETTE 内存分配释放问题
- 如何鼠标拖选CListCtrl中一个subItem中的部分文字?
- 在Static上显示图片的问题
- 如何调用程序而不弹出该程序的窗口?
- _beginthreadex的参数强制转换的问题
- delete 放掉new申请的内存,出现非法有哪几种情况?
- 请问谁有crypt32.lib
- 大神来看看:MDI中ChildFrm显示toolbar的问题
- 我的C盘上有win98,2000,xp,我想装NT,能在98下装吗?不能,该怎么办?
- 文件下载的问题,用什么函数下载网页上的文件.CSOCKET中有没有相关的函数.最好支持断点续传,分数多多,油水多多(100分)
- [求助]谁有拆包的例子和源程序啊!!!
如果是2000的系统可以用CreateRemoteProcess查入DLL。
能说的具体一点吗??不胜感激!!
process's memory.
However I don't know how to call the function.
Maybe you could inject a dll into the remote process ,hijack the api calling,
during the api call,you call your desired function in the remote memory space,then
store the result using a varible.
This varible is allocated in the remote process space,however there seems to exist a API to achieve this.(exteranl process call it to allocate some memory space in the remote process space)
The you could use ReadPrecessMemory() to get the variable which stores the
result from the remote process.
This is just my imagination.However I think it may workable .
1,你想运行对方的函数,也就是让已经运行的DLL在你的进程空间执行,
那你就直接调用他的DLL.
2,你想让对方的进程Call你的函数,
两种情况:(1)如果哪个进程是你写的,或他提供了接口(例如BHO),可以SendMessage.
(2)如果不是,那我认为不可能实现,我的理由是
如果可以,那BO就不用用Server了,只要让IE Call他的Function就行了
也就是说,你没用控制那个进程的权限(可能你可以TerminateProcess)
个人猜测,仅供参考
exe是我写的 dll也是我写的,我现在要用exe调用dll,在dll中回调exe中的某个函数,不要消息,我想通过地址调用,不知这样是否可行??
既然exe和dll都是你写的,最简单的办法就是用消息传递信息
在dll中把函数参数放入共享区,发送消息,
exe接受消息后,用共享区的数据作参数执行调用,再把结果放回共享区,然后dll使用数据。
就这样,很简单阿。
而且,如果你的参数和返回值都非常简单,完全用消息传递,就更简单了
出于种种原因,我不能用消息,否则是很简单,不用消息能有别的办法吗?
int a() {
return 1;
}
Dll:
int b( int (*fun)() ) {
fun();//It's equal a() in EXE
return 1;
}
你要的是这个么?
我试过 但崩了 :(
这样就起到了消息传递的作用
其他数据传递的方法,跟我上面说的一样
又不能用消息~好象实现起来不可能既然那个程序是你做的,你可以把那个函数放到dll中
然后两个程序一起调用dll中的函数不很方便,而且可以用共享数据段共享数据