当前位置:  开发笔记 > 人工智能 > 正文

运行时CRC校验

如何解决《运行时CRC校验》经验,为你挑选了1个好方法。

问:我在机器上运行了十六进制代码.如何在运行时计算整个代码的校验和?



1> RBerteig..:

您需要具有对整个代码段的读访问权限.这可能涉及从链接器获取引用代码的第一个和最后一个地址的符号.您可以将这些地址转换为适当大小的数据指针,并在代码段上运行您想要的任何常见CRC或校验和算法.

要验证CRC,您需要知道其权威值.这可以在链接之后通过计算CRC并将其修补到初始化器中以获得合适的变量来完成.

在我在场更新中更换固件之前使用类似技术作为完整性检查的嵌入式系统中,我通常将固件图像的存储器映射安排为只读数据结构.编写实用程序来计算图像的CRC并修复结构很容易.然后,嵌入式系统的引导加载程序可以在引导期间验证CRC以确定是否存在有效固件,如果不存在则返回到更新实用程序.当然,更新实用程序使用相同的CRC在闪烁之前验证新映像.

编辑:有关CRC的一些参考,以防有用:

这个问题推荐的CRC错误检测算法的无痛指南

关于CRC的维基百科

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有