gpt4 book ai didi

c# - 使用 C# 替换 native .exe 中的字符串

转载 作者:太空狗 更新时间:2023-10-29 20:49:19 32 4
gpt4 key购买 nike

如何从 native Windows .exe 文件中捕获所有字符串并稍后使用 C# 将它们替换为其他字符串?

背景:我想创建一个 C# 工具来从一个简单的 .exe 文件中提取和替换字符串。

这有可能吗?

最佳答案

您需要启动的是一个 PE/COFF 解析器。如果您的字符串存储在 PE 的资源部分中,那么这很容易。例如,您可以将一个 exe 作为资源文件加载到 Visual Studio 中,并使用其资源编辑器更改 exe 中的图标和字符串等。另一方面,如果字符串存储在数据部分或在机器代码中是直接的,那么您的问题要复杂得多。按原样覆盖字符串,让它们保持相同的长度可能会起作用,但让它们变长会开始移动东西,弄乱重定位和偏移量。重写exe​​确实不是实现你想要的方法。

从我的评论上移:PE/COFF 是 windows 程序的 exe 格式。如果您只想编辑资源,则不需要解析器。您可以首先使用带有标志 LOAD_LIBRARY_AS_IMAGE_RESOURCE|LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE 的 LoadLibraryEx() 来加载 exe 以仅使用该资源并使其可写。然后开始查看 LoadString()。这些都是 native API 调用。我真的不知道你是如何在 C# 中做到这一点的。

关于c# - 使用 C# 替换 native .exe 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/926097/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com