从另一个应用程序更改应用程序的变量
本文关键字:应用程序 变量 另一个 | 更新日期: 2023-09-27 18:31:15
我有一个关于从另一个应用程序更改应用程序变量的问题。
例如:如果在 1.exe 中我定义了 string a="a"
,我将如何使用另一个应用程序更改a="a" to a="b"
?
我是否必须获取字符串的内存地址,然后将其内容更改为b?还是有其他更简单的方法?
您可以为这两个应用程序设置共享资源并从中读取值。它可以是数据库,缓存甚至简单的文本文件。
适当时刷新共享资源中的变量。
鉴于您提到的场景(即您不控制第一个应用程序的代码)。使用管理员权限打开目标进程,找到要更新的内存位置,然后更新它的一般想法适用。
但是,请注意,它通常不会那么简单。例如
- 很难
预测,应用程序逻辑维护了多少个变量副本,在哪里?
在不反汇编代码的情况下(绝不是一个微不足道的任务......这些都不是),扫描值并猜测内存位置是想到的唯一选择。但它有做出错误猜测的风险,并破坏整个过程。
PS - 有免费提供的软件,它们试图完全按照我上面描述的方式进行操作。我建议您尝试检查它们的工作原理(它们支持的场景),以便更好地了解您要完成的任务。
PPS - 还要小心你下载的内容。像这样的应用程序,如果从不可靠的站点下载,可能会造成破坏/安全风险。
我认为最简单的方法是通过UDP或TCP与本地主机中的网络套接字进行通信。它为您提供了一个良好的事件机制,因此您可以轻松处理数据,而无需频繁检查新数据更改,并且应用程序在同一时间相互通信的数量也无关紧要。共享内存等其他解决方案将难以控制,尤其是当您运行三个或更多应用程序时。