这取决于您希望其他系统如何查看二进制文件。
exe格式允许验证文件自发布以来未被修改。这将允许您: -
遵循这个系统的好处是“每个人”同意自签署以来你的文件没有被修改过。
实现此方案的最简单方法是使用资源。可以在链接后添加Windows资源。它们受authenticode数字签名保护,您的程序可以从自身中提取资源数据。
过去可以增加签名以包含二进制数据。不幸的是,这已被禁止。有二进制文件在签名部分使用数据。不幸的是,这是恶意使用的。这里有一些细节 msdn博客
如果不能重新签名,那么结果将被视为不安全。值得注意的是,附加数据是不安全的,可以在没有人能够分辨的情况下进行修改,但二进制文件中的代码也是如此。
将数据附加到二进制文件会破坏数字签名,也意味着最终用户无法判断代码是否已被修改。
这意味着您添加到代码中以确保数据blob仍然安全的任何自我保护都不会阻止您的代码被修改以删除检查。
视窗 GetModuleFileName 允许找到运行路径。
GetModuleFileName
Linux提供 /proc/self 要么 /proc/pid 。
/proc/self
/proc/pid
Unix似乎没有一个可靠的方法。
zip格式的方法是将目录写入文件的末尾。这意味着可以在该位置的末尾找到数据,然后向后查看数据的开始。这里的优点是数据blob是从数据末尾标出的,而不是自然的开始。