我想更改我的源文件中运行的.exe文件的某个字节以销毁它(NOT DELETE)而不是下次运行。我怎么能这样做?
假设我的源文件是Test.C,我想在此源文件中编写一个代码,在退出之前更改我的Tese.exe文件的某个字节。我可以完全删除这个exe文件,并退出http://www.catch22.net/tuts/self-deleting-executables [^] 我可以使用像test2.exe这样的第二个可执行文件在运行时写入test1.exe吗?如果可能,怎么样?
答案 0 :(得分:3)
从技术上讲,.exe文件可以像任何其他文件一样读取或写入,只要您具有适当的访问权限并知道自己在做什么。
然而,非常做坏事。
如果您想在下次启动时更改程序的行为,我建议您将该信息存储在程序的私有配置文件中。
答案 1 :(得分:2)
大概你想要这个,因为你只希望程序只运行一次。这些技术中的一些是在80年代早期的DOS程序中使用的。它不会阻止用户在第一次执行它之前复制(这就是我所做的 - 这就是我所知道的这些技术)。
在使用第二个程序的情况下,它会检查argc [1]。这必须是一组控制字符,无法在键盘上键入,可以从启动程序传入。另外,在启动之前,请检查是否可以写入或重命名。用户可能已保护目录,因此您无法写入该文件。或者,他们可能将文件放在CD上。