我在C ++中编写了一个由单个EXE文件组成的小应用程序。
我想在其“about”对话框中输入可执行文件本身的md5sum。它应该静态嵌入到可执行文件中(这样可以从十六进制编辑器中看到),而不是动态计算。
答案 0 :(得分:0)
这是不可能的。
如果在二进制文件中输入md5哈希值,二进制文件将会更改,因此md5哈希值也会更改。如果您创建一个新的,并尝试将其添加到二进制文件,二进制文件将再次更改。
最好将哈希放入文件中,然后读取该文件并显示其内容。
另一种方法是创建二进制文件的md5哈希值,然后将其附加到可执行文件中。为了获取该值,您将读取二进制文件的最后32个字节并将其显示为md5。当然,如果您创建完整可执行文件的哈希值,它将与哈希值不匹配 - 您必须创建除最后32个字节之外的可执行文件的哈希值。
如果以原始格式存储128位md5哈希值(基数为256而不是基数为16),则只需要16个字节。
答案 1 :(得分:0)
和@Shi& @matthewdaniel已经说过,这不能直接完成 但是,有几种解决方法是可行的:
答案 2 :(得分:-1)
只要将md5添加到文件中,文件就会有不同的md5。无法在文件本身中获取md5。