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

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

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

谢谢。

【问题讨论】:

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

标签: c# windows reverse-engineering portable-executable


【解决方案1】:

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

【讨论】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 2011-05-31
    • 1970-01-01
    • 2017-10-14
    • 2012-12-17
    相关资源
    最近更新 更多