在记事本中打开+保存.exe文件使其损坏

时间:2010-12-27 22:38:48

标签: vb.net exe corruption

我刚刚发布了这个简单的控制台应用程序,它应该显示一个文本框,其值为“userID”,值为1001.这就像一个魅力。现在我需要的是在编辑器之外从记事本等改变这个值。

当我打开应用程序时,有很多不存在(& o!-åÞþþ,o“Ü+等)但是快速(ctrl + F)我发现值1001,并改变了这个到了一些其他整数。我再次运行应用程序,它失败了,甚至没有给出任何用户的错误消息。在某一点上,我试图打开一个新发布的非破坏版本的应用程序,没有改变任何东西,然后从记事本中保存,它也被损坏了。看起来记事本无法打开某些字符或东西。我是否需要以某种特定的文本 - unicode语言或其他东西发布应用程序?

非常感谢:)我知道这听起来像是一个愚蠢的应用程序,但它只是对概念的测试:)

我使用vb.net进行此操作

4 个答案:

答案 0 :(得分:4)

您需要使用二进制文件编辑器(也称为十六进制编辑器)。如果以二进制模式打开文件,Visual Studio可以执行此操作。 记事本是一个文本编辑器,当你用它保存二进制文件时,它会以各种方式搞乱,最明显的是用\ r \ n替换\ n。 关于你的问题的其他一切都是非常可怕的。你为什么编辑EXE文件?

答案 1 :(得分:1)

记事本旨在读取和写入文本文件。将任意二进制文件(如可执行文件)加载到记事本中可能会损坏文件。

您可能正在寻找的内容通常称为"hex editor"

答案 2 :(得分:0)

记事本用于编辑文本文件,不能处理好二进制文件,i。即包含各种非文本或不可见ASCII代码的文件。

手动更改EXE无效。您需要一些外部配置文件(如XML或简单文本文件),您将在其中存储此设置的值,并从中读取。

答案 3 :(得分:0)

您考虑修改代码文件,然后通过compiler

运行Process.Start,而不是编辑Exe