从外部更改应用程序字符串c#

Posted

技术标签:

【中文标题】从外部更改应用程序字符串c#【英文标题】:Change string of application externally c# 【发布时间】:2021-05-01 13:23:00 【问题描述】:

我有一个连接到我的服务器的客户端应用程序

我无法再访问客户端的代码,所以我如何能够将字符串 192.168.2.12 更改为另一个字符串,以便能够使其连接到我自己的服务器。我可以通过什么方式在 C# 中以编程方式执行此操作?

谢谢。

【问题讨论】:

客户端应用程序是 .NET 可执行文件吗? 不在配置文件中? 您需要对客户端应用程序进行逆向工程,以确定它从何处获取地址。希望它从配置文件或其他您可以更改的文件中获取。 @MathiasR.Jessen 不,它是一个 win32 PE 可执行文件 @OlivierRogier 是的,通过更改字节,但我确实在问题中提到我想以编程方式更改可执行文件中字符串的值。 【参考方案1】:

您可以尝试反编译程序,然后在原始源代码中搜索该值是如何设置的并进行相应调整。

【讨论】:

如果我没记错的话,它实际上是这样设置的, const char* IP = "192.168.2.12" into connect() 如果它是一个常量,那么您就无法从程序外部(例如配置)对其进行操作。如果幸运的话,您可以反编译原始程序,然后在源代码中将常量值调整为您想要的值。调整后,在本地构建,看看它是否有效。 如果值存储在 char 数组中怎么办?我将尝试在另一个原生 c++ 应用程序中重现这些字符串,看看是否可以更改它们【参考方案2】:

有时配置字符串写在 .exe.config 中 只需查看客户端文件夹位置,看看您是否有任何以 .exe.config 结尾的文件。里面可能有字符串,你可以在那里改变它。

【讨论】:

以上是关于从外部更改应用程序字符串c#的主要内容,如果未能解决你的问题,请参考以下文章

C# - 使用外部 Midi 控制器更改音量

在 C# 中从外部应用程序获取 UI 文本

从外部 C# 应用程序自动化 PowerPoint VBA 加载项

使用 user32.dll 从外部应用程序的文本框(Unicode)中提取文本到 C# 应用程序中

是否可以从 C# Web 应用程序启动 Lync 会话并邀请技术和外部用户?

从 C# 中的外部 DLL 访问 windows 窗体控件