[英]Using reflection to execute a function in a System.Diagnostics.Process
假设您已找到要执行函数调用的进程,则可以调用函数并从该进程获取返回值。 (可能使用反射或类似方法?)
例如,假设我感兴趣的进程始终是返回的第一个进程(我知道不会),我想执行以下操作:
Process[] myProcesses = Process.GetProcesses();
int UserID = myProcesses[0].*GetUserID*();
其中, GetUserID()
是该流程程序集的公共静态函数。
所有代码均为托管代码
并非没有某种形式的进程间通信。 “目标”进程将必须运行某些服务器或侦听器(WCF,命名管道,套接字等)。 您可以将Windows消息发送到另一个进程,但是即使那样,另一个应用程序也必须正在侦听它们,并知道如何基于它们执行一些操作。
即使通常与攻击相关的机制(例如堆栈溢出,sql注入等)也通常要求应用程序正在侦听或充当某种服务器,并且攻击利用了该侦听系统
有点,但是您无法按照您描述的方式进行。
这称为进程间通信,并且要求包含方法GetUserID()
进程通过某种进程间通信机制(例如.Net远程处理或WCF GetUserID()
公开该方法。
然后,您调用该公开方法的方式也将完全不同,具体取决于公开该方法的方式。
这里有一个基本的教程,介绍如何使用WCF实现此目的:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.