在无法访问原始源代码的情况下更改程序中的字符串字面值(连接字符串)

本文关键字:字符串 字面值 连接 更改程序 情况下 访问 原始 源代码 | 更新日期: 2023-09-27 18:04:30

我需要为我创建的程序更改硬编码在单个类中的连接字符串。我不再有问题程序的原始源代码,但我已经反编译了它,并且可以访问它。

我已经尝试重新编译反编译的源代码,但遇到反编译代码略有不同,需要大量更改的问题。我还尝试将类重新创建为DLL,但没有成功。我认为这两种方法都可以起作用,但我还遗漏了一些东西。有没有人能给我指出正确的方向,或者给我一些我没想到的更简单的建议?

在无法访问原始源代码的情况下更改程序中的字符串字面值(连接字符串)

如果您更正的连接字符串与旧字符串相同或更短,您应该能够直接在十六进制编辑器中编辑字节码,并用新字符串覆盖字符串。请记住更改字符串长度并在末尾添加00 00:

在。net CLR中,字符串在内存中的布局方式与OLE Automation中实现bstr的方式几乎相同:作为一个字对齐的内存缓冲区,由一个给出字符串长度的四字节整数组成,后面是字符串的两个字节的UTF-16数据块,后面是两个零字节。