c++ - 如何自我校验工作?
问题描述
我的问题如何自我校验工作并在文件内存中检测自己的校验和并检查是否可执行修改终止应用程序?像商业exe保护器vmprotect pelock theida等。以及如何使用算法以及如何将校验和嵌入到自己的可执行文件中并检测是否被修改?如何工作?例如检查二进制可执行文件的 md5 或 crc32 自校验和对不起我的英语不好;)谢谢!
解决方案
我认为尝试将校验和或哈希直接放入可执行文件中存在问题。这种方法意味着在确定可执行文件/二进制文件的校验和/哈希时将考虑校验和/哈希。您无法在不影响二进制/可执行文件的结果哈希/校验和的情况下对校验和/哈希进行编码。
在不了解您的情况的更多详细信息的情况下,您可能希望将二进制文件的哈希存储在您尝试计算校验和/哈希的事物之外(例如,在服务器外部或位于相对于可执行文件的文件中, ETC。)。您在构建程序后计算此哈希。然后,您的程序在启动时可以将自己定位在磁盘上并计算自身的哈希值并与外部存储的哈希值进行比较。
抱歉,如果这作为评论会更好,但我没有代表发表评论。
推荐阅读
- python-3.x - 如何禁用 ipython 恼人的错误信息
- image - Flutter:调用 Image.memory 时无法实例化图像编解码器
- c# - 从 PDF 文件中提取值到变量
- javascript - 触发键盘事件时,mousemove 不会触发每一帧
- mysql - 如何在 SQL 查询中获取匹配的左连接项的总数
- node.js - Node.js - 静态文件被 HTML 代码取代
- javascript - Rendering a component in JSX vs via function
- python - 子图 matplotlib 的颜色条
- java - 在某个点上,将一个大整数添加到一个远低于 Java 限制的长整数会导致问题吗?
- python - 在 PyCharm 中安装 matplotlib 时遇到问题