在运行时修改exe字节,使文件MD5与上次运行时不同

时间:2014-08-12 14:56:22

标签: c++

每次运行文件时,我都希望md5是唯一的,而无需手动更改编译器中的字节。

那么如何在运行时或通过其他程序将一些无用的字节附加到.exe上呢?

2 个答案:

答案 0 :(得分:4)

Windows为此设计了一组功能,其中一个是UpdateResource

MSDN也有一个例子:http://msdn.microsoft.com/en-us/library/windows/desktop/ms648008(v=vs.85).aspx#_win32_Updating_Resources

但是,您无法在正在运行的程序中执行此操作。您可以将代码加密到单独的EXE或使用RUNDLL32.exe生成的DLL中。

答案 1 :(得分:0)

好的,这就是我很容易解决的问题。 创建了第二个运行这段代码的程序

char asd[100];

FILE* cfile = fopen("program.exe", "a");
fwrite(asd, 1, sizeof(asd), cfile);
fclose(cfile);

这成功更改了程序的MD5。