是这样的,我自己做了一个程序,想从进程外引用另一个在运行中的程序的静态类(已经知道这个程序加载了一些托管类dll,并且还创建了托管对象)。
我尝试了这样一种方法, 就是使用GetProcess方法和Modules属性找到该程序的进程所调用的dll实例,获取它们的入口点地址EntryPointAddress或内存地址BaseAddress,但是获取以后就不知道怎么办了?
进程外没办法直接调用,因为地址隔离,需要用 CreateRemoteThread 注入线程,这个C#也做不了,要用C++
1.如果那个运行中的程序你有修改代码的权限:你可以通过进程间通信或者开端口的方法实现间接调用
2.如果那个运行中的程序你没有修改的权限:既然能够获取到实例的基址你可以自己写一个dll注入到目标进程中,然后利用你的这个dll调用目标进程中实例的方法,再利用这个dll和你的程序使用进程间通信或者开端口的方法实现间接调用