- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要对 Windows CE 可执行文件实现的 CRC/校验和算法进行逆向工程。作为专有协议(protocol),它没有提及 CRC/校验和算法。但是,有一个控制台界面可以报告正确/计算出的校验和,如果消息协议(protocol)正确,我可以使用随机位构建自己的消息:
我观察到,
更改消息中的单个位会完全更改校验和字节。
算法似乎与位置相关,因为我在各种消息数据位置中输入了一些单个 1 位消息,其余位为零,并且所有时间控制台都报告了不同的校验和。如果它是简单的附加校验和,校验和将是相同的。
我应用了常见的 XOR、LRC、加性校验和算法、常见的 CRC 多项式(Standard、CCITT、X-modem)并完成了 [CRC 逆向工程论文][2],但不幸的是,由于消息类型,我无法推导多项式已修复,因此无法创建单个 1 位消息。
我的问题:
是否有任何 CRC/校验和算法属性可供我针对消息进行测试,以确定算法是基于校验和还是基于多项式的 CRC?
有没有办法将程序反汇编中看到的错误消息与相应的汇编指令关联起来?
当反汇编代码在控制台上报告正确的校验和时,有哪些方法可以调试/查明反汇编代码?内存转储什么的?
最佳答案
尝试CRC RevEng 。对您的数据进行的一些快速尝试没有结果,但我并没有非常努力。考虑不仅尝试所有十个消息字节,还尝试最后八个和最后六个。
此外,您还可以在同一站点找到 most comprehensive list of known CRCs据我所知。
更新:
这很可能是某种 CRC,或者至少是 GF(2) 上的线性运算。它具有 CRC 所具有的属性:如果两个序列具有相同的异或,则它们的 CRC 也具有相同的异或。例如,从您的数据中(删除公共(public)前缀,但请注意,包含前缀或其一部分不会更改结果):
00000000000122b5 ^ 0000000000022421 = 0000000000030694
0447080a300130A1 ^ 0447080a30023635 = 0000000000030694
和
0447080a300130A1 ^ 0447080a30043A36 = 0000000000050a97
00000000000122b5 ^ 0000000000042822 = 0000000000050a97
考虑到这一事实,有一种方法可以让您构建一个例程来计算校验值,而无需确定它是否是 CRC 或 CRC 参数是什么。
为所有单位消息生成 16 位校验值,即在消息数据的六个字节中设置一个位,其余消息数据位为零。这些消息是该线性场的一组完整的基向量。其中有 48 个。还生成全零消息的校验值。您已经开始了,全零给出 2020
,最后一位设置给出 22b5
等。独占或全零的检查值 (2020
)与其他人。您现在有 49 个值,其中 48 个用于基向量,一个是零向量的校正(由于 CRC 和前缀字节的预处理和后处理,该值可能为非零)。例如,最后一位设置的基向量的值为0295
。
现在您可以使用这 49 个值来计算任何六字节消息的校验值。该消息中设置为 1 的所有相应位的值进行异或运算。异或检查值为零。结果将是该消息的检查值。
关于windows-ce - 确定 Windows CE 可执行文件使用的 16 位 CRC/校验和算法的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12438495/
我有 Windows CE 5.0 设备,它不支持任何硬件加速。 我正在寻找一些好的 2d 图形库来做以下事情。 我更喜欢 Compact .Net Framework 中的后端编程。 使用抗锯齿绘制
我有一个 POS 软件,需要为 windows CE 开发一个收集模块,以便在 Honeywell Dolphin 6100 设备上运行。 我需要开发一个在 Honeywell 6100 设备上运行的
我必须找出 Windows CE 4.0/5.0 设备上的内存泄漏问题。是否有任何工具可以向我显示所有进程信息,如内存、句柄数...以便我可以识别罪魁祸首进程。 有没有CE 4.0/5.0的内存泄漏检
我正在开发一个网站并且有一个 htaccess 规则如下:RewriteRule ^(ac|bc|cd)/(.*) $2?folder=$1 [L,QSA] 但是,我想在 domain.com 之后传
我是 CE 环境的新手,我想为在 CE(5 及更高版本)上运行的计算机(英特尔)创建应用程序。我到底需要什么才能开始,我要去哪里?我以前从未使用过 CE,但我确实有使用 C、C++、C# 和 Java
是否有等效于 isatty()在 Windows CE 上?换句话说,有没有办法在代码中检测 stdin/stdout/stderr 是否已被重定向? 最佳答案 你可以调用 GetStdIoPath(
我开发了一个基于媒体的应用程序,该应用程序在带有 Win CE 的设备上运行。我需要一个静音/取消静音按钮来控制应用程序音量。我已经使用 .Net 紧凑型框架开发了该应用程序。 最佳答案 我在 Win
我正在寻找WinCE的开发板,最好有以下接口(interface): VGA/DVI 屏幕 用于 kb/鼠标的 USB 以太网(10Mbit 就可以,100 会更好 ;-) ) 存储(例如:SD/MM
长期以来,您可以做到这一点 execute multiple statements with SQL CE .事实上我正在使用 SQL Server Compact Toolbox做到这一点。但是当我
我正在使用 CE 6.0 处理一个项目,我需要重建树。我的问题是我必须将树更新到 2009 年 5 月,这需要 2008 年汇总和以下 5 个月度更新,但我找不到它们(有 2009 年汇总和以下 20
甚至需要定期压缩 SQL CE 数据库吗?自动收缩就足够了吗?我们的平均数据库大小约为 100Mb,大用户达到 400-500Mb(但这种情况非常罕见)。如果我们必须手动压缩,我们如何判断何时应该压缩
我打算在一个小型但生产的网站中使用SQL CE 4.0,我想知道SQL CE 4.0可以处理多少负载: 并发连接数, 每个表的行数和 数据库的总大小。 最佳答案 可能对您有用的是Scott Guthr
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我不知道这段代码有什么问题,它现在给了我一天的错误: select row_number() over(order by s.title) as rowNumber, s.id from story
我希望能够在启动时检查损坏的数据库,然后以编程方式修复它。我可以 do that很容易。 我的问题是我想测试事情是否按我期望的方式工作。有谁知道故意破坏数据库的方法,以便我可以测试我的代码? 最佳答案
我正在尝试在 Windows CE 6 设备上配置 SMB 文件共享服务器。 我最初的尝试主要是使用桌面版本的 NK.exe。 当我启动时,SMB0: 作为 smbserver.dll 运行 我已经设
我接管了一个 Windows-CE 6.0 应用程序,我想将其移植到其他平台。它是一个相对简单、独立的 GUI 应用程序,使用嵌入式 C++ 4.0 版编写 我感兴趣的第一个目标是常规 Windows
我正在尝试使用 SQL Server Compact Edition 3.5 作为销售应用程序的数据库后端。将安装 3-4 个 Windows 窗体应用程序,所有这些应用程序(通过 LINQ2SQL)
我正在编写一个 wpf destop 应用程序,并且想使用 SQL Server CE 作为后端。我正在尝试想出一种进行有效数据分页的好方法。在 SQL Server Express 中,我可以执行以
由于谷歌没有提供我想知道的内容,我尝试询问 stackoverflow :) sql ce 3.5 数据库的最大并发连接数是多少? 谢谢 j. 最佳答案 我相信您正在寻找的信息是 SQL Server
我是一名优秀的程序员,十分优秀!