问题标签 [error-detection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3596 浏览

algorithm - 我正在寻找用于 CRC32 算法实现的标准化测试向量

我不得不在我正在处理的系统上替换 CRC32 实现,之前实现的算法使用大小为 256 的查找表,并且太大而无法在引导加载程序中使用。我实现的新算法使用大小为 16 的查找表。

我使用与以前相同的多项式,但结果不同。在线计算器会抛出更多随机结果,其中大多数都不是很清楚他们在做什么,即他们正在使用哪个多项式,输入数据是什么格式或初始 crc 值是什么。

有谁知道我在哪里可以找到用于 CRC32 实现的可靠、标准化的测试向量?

谢谢!

0 投票
1 回答
1349 浏览

c# - 如何创建一个具有给定值 (0) 的 BCC(块校验字符)的字节数组?

我正在尝试创建一个具有特定 BCC(块检查字符)结果(=0)的字节数组。

该数组将具有以下序言:

中间有一条可变文本消息(msg):

紧随其后的是:

我得到的这个字符串的密件抄送是:0x11

这是返回此值的算法(C++):

我试图想出一种方法来查找中间消息部分,该部分将导致密件抄送为 0。

我目前正在使用试错法,但我很确定有更好的方法来做到这一点——我只是还没有想出一个可行的方法。我尝试了一个工具,该工具复制了上面使用的 BCC 方法(在 C# 中),但与我得到的结果不符(叹气)。

0 投票
1 回答
186 浏览

programming-languages - 腮腺炎编程检查超时

我希望你能帮助我或指导我找可以帮助我的人。我在 M(UMPS) 中编程,但遇到了问题。在程序中,我正在等待来自大型机的响应,我读取 (R x:15) 我知道,如果我没有得到答案,15 秒后我将停止等待答案。我检查了我的 $T ,如果那里什么都没有,或者它等于零,我想停止程序。

这有时有效,但大多数情况下程序会在检查 $T 之前中止,我什至没有机会看到 x 中的内容,如何在它中止之前捕获它。我查看了控制台日志和任何地方,但没有看到任何错误。我看到的唯一错误是当我查看不成功的任务时它说 err (getr+9 这是我阅读的行。

我努力了

但是如果我超时,这些检查都不会发生。如果我不超时,一切都会很好。

0 投票
1 回答
631 浏览

math - 两个线性码的交集是什么?

我有一个关于线性代码的问题。假设我们有两个(n,k)线性码C1C2奇偶校验矩阵H1H2。交集C1还是C2线性码吗?如果是这样,它的奇偶校验矩阵H3H1什么H2?是和C3的交集,C1表示C2所有c3\in 。H1c3=0H2c3=0C3

0 投票
2 回答
231 浏览

dart - 我无法理解 Dart 编辑器如何分析源代码

Dart 编辑器版本 1.2.0.release (STABLE)。Dart SDK 版本 1.2.0。

此源代码产生运行时异常。

我假设分析器会生成这样的东西。

但是我只能在发生此异常时(事后)在运行时检测到此错误。

0 投票
2 回答
3053 浏览

hash - 试图对数据包校验和/CRC/哈希进行逆向工程

我有一个旧的、不再生产的带有串行端口的电子设备。我正在尝试对该设备中使用的数据包 CRC/校验和/哈希进行逆向工程。

任何有敏锐的眼睛,敏锐的数学技能的人都可以破解这个东西吗?

这是我到目前为止所知道的......

  • 每个数据包总是 21 个字节。19 个字节的数据加上 2 个字节用于 CRC/校验和/哈希
  • 因此,这里没有长度或标题字节。哈希计算涉及所有 19 个字节。
  • 我有能力用设备生成一定数量的数据包
  • 我的第一个想法是数据包有某种 CRC-16 计算
  • 所以我遵循了www.cosc.canterbury.ac.nz/greg.ewing/essays/CRC-Reverse-Engineering.html中的反转提示
  • 验证我的数据包样本符合上述网页链接中概述的“叠加原理”。这表明它们具有数学 XOR 关系。

  • 开始感觉很好……但在那之后就难住了。无法确定 CRC-16 多项式。这些数据包哈希很可能与 CRC 无关,而是一些自制方案。

  • 通读 Ross N. Williams 的“CRC 错误检测算法的无痛指南”

  • http://www.ross.net/crc/download/crc_v3.txt
  • 还使用的应用程序:CRC Reveng – 逆向工程应用程序
  • 见 reveng.sourceforge.net
  • 还是没有运气...
  • 不幸的是,我无权访问任何设备源/二进制代码

  • 还进行了测试以查看是否使用了其他哈希值,例如 Fletcher 的校验和

这是我的数据包的各种样本。

0x47366B2EE00000000000751CEB5F3469543B585E2D
0x47366B2ED00000000000751CEB5F3469543B582A2C
0x47366B2EC80000000000751CEB5F3469543B580B2B
0x47366B2EC40000000000751CEB5F3469543B58BB2A
0x47366B2EC20040000000751CEB5F3469543B58DFE7
0x47366B2EC10000000000751CEB5F3469543B58A328
0x47366B2EC08000000000751CEB5F3469543B584127
0x47366B2EC04000000000751CEB5F3469543B588126
0x47366B2EC02000000000751CEB5F3469543B580525
0x47366B2EC01000000000751CEB5F3469543B580124

请注意以下关于这些数据包的...

  • 在数据包的最后 2 个字节上找到 CRC。
  • 如果我查看逻辑分析仪上的位,我已将字节表示为 MSB-first
  • 因此,数据包 0x47366B2EE00000000000751CEB5F3469543B585E2D 在二进制中被视为:
  • 01000111 .................................................... ............00101101
  • (0x47).​​................................................. ......................(0x2D)

  • 我不知道我的系统是大端还是小端,但相当确定的字节是 LSB 优先的

  • 请注意,对于上述 10 个数据包样本,每个数据包的不同之处在于 1 个位移至 10 个位位置。除了第 5 个数据包,我必须更改 2 位
  • 查看数据包的 0x47366B2E 部分之后的数据字节。

  • 我看到的唯一模式是每个数据包的最后一个字节减一(2D,2C,...)。(除了第 5 个数据包,我必须更改 2 位)

  • 最后一个字节不是某种序列号,因为我可以随时以相同的值生成它们。
  • 但它可能会提示使用的数学哈希。

任何帮助表示赞赏!

0 投票
2 回答
10735 浏览

memory - 无 ECC 平台的软件内存位翻转检测

大多数可用的桌面(廉价)x86 平台现在仍然没有 ECC 内存支持(错误检查和纠正)。但是内存位翻转错误率仍在增长(不是最好的 SO 线程大规模 CERN 2007 研究“数据完整性”:“他们的内存模块的位错误率为 10 -12 ...观察到的错误率为 4 个订单数量级低于预期”;2009 年 Google 的“野外 DRAM 错误:大规模现场研究”)。对于当前具有数据密集型负载(8 GB/s 读取)的硬件,这意味着可能每分钟发生一次位翻转(来自 CERN07 的 10 -12个供应商 BER)或两天一次(10 -16BER 来自 CERN07)。Google09 表示,每 Mbit 最多可以有 25000-75000 位 FIT(每十亿小时的时间故障),这相当于 8GB RAM 每小时 1-5 位错误(“平均可纠正错误率为 2000–每年每 GB 6000 ")。

所以,我想知道,是否可以在系统范围内添加某种软件错误检测(检查用户和内核内存)。例如,为 Linux 内核和/或系统编译器创建一个补丁,为每个内存页面添加一些校验和,并尝试通过定期重新计算校验和来检测静默内存损坏(位翻转)?

例如,我们能否看到所有对内存的写入(来自用户和内核空间),以区分预期的内存更改和内存中的位翻转?或者我们可以以某种方式使用一些助手来检测所有代码吗?

我知道任何类型的软件内存 ECC 可能会消耗大量性能并且不会捕获所有错误,但我认为在它们将在以后的计算中重用或存储之前尽早检测到至少一些内存位翻转可能很有用到硬盘。

我也明白更好的数据保护方法是切换到 ECC 硬件,但大多数 PC 仍然是非 ECC。

0 投票
0 回答
1789 浏览

checksum - 如何手动计算文件的 crc32 校验和?

我正在使用fsum生成各种文件的 crc32 校验和。我想手动验证它的校验和以确保它们被正确计算,但我不知道该怎么做。

我确实意识到有一些程序可以为我检查这些东西,但是我还必须验证这些程序。

有人可以帮我弄清楚如何手动计算文件的 crc32 校验和吗?为了在同一页面上,让我们使用这个txt文件:http ://www.filedropper.com/file_210

对于这篇文章的含糊之处,我深表歉意,因为我什至不知道应该从哪里开始。几个小时以来,我一直试图弄清楚如何做到这一点,但结果却非常短。

0 投票
2 回答
289 浏览

javascript - JavaScript:防止无意创建新属性

错字会发生,有时在 JavaScript 中很难找到它们。以这个为例(想象它在更多代码之间):

对于未声明的变量,严格模式有助于:

但它不适用于上面的示例。是否有可以捕捉这些错误的程序或模式?我尝试了 JSLint 和 JavaScript Lint,但他们没有抓住它。

理想情况下,我希望它仍然有效(没有警告):

0 投票
2 回答
1467 浏览

firefox - Detect errors on web page with Firebug

What is the best way to check our web applications for errors such as "duplicate attribute"?

My development team tends to use Firefox and Firebug for web development. We've noticed some errors creeping into the codebase, usually duplicate attributes such as:

We see no errors in Firebug's console nor can see anyway to get Firebug to report that there are errors.

We have noticed that Firefox itself IS aware of these errors. By clicking on "View Page Source", Firefox renders the second class in red and has a tooltip of "Duplicate Attribute". However we have to hunt through the code ourselves looking for any errors highlighted in red.

Surely there is a better way than manually looking at the code? What tools should we be using?

Thanks,

Phil