更改程序中的字符串文字(连接字符串),但无法访问原始源

时间:2011-08-03 19:03:49

标签: c# .net

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

我已经尝试重新编译反编译的源代码,但遇到问题,反编译代码略有不同,需要进行大量更改。我也试过将类重新创建为DLL而没有成功。我认为这些方法中的任何一种都可行,但有些东西我不知道。任何人都可以指出我正确的方向,或者建议一些我没想到的更简单的东西吗?

1 个答案:

答案 0 :(得分:1)

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

  

在.NET CLR中,字符串在内存中布局的方式与在OLE自动化中实现BSTR的方式非常相似:作为字对齐的内存缓冲区,由四字节整数组成,给出字符串的长度,由两个字节的UTF-16数据块中的字符串字符组成,后跟两个零字节。