我有两个不同的文件,每个文件的内容都来自不同的数据流。我在两个不同的文件中从这些流中收集了一些数据。然后我想搜索文件以找到任何类型的模式,这样在稍后阶段,如果我从流中收集更多数据,我应该能够区分哪些数据属于哪个流(基于我找到的模式)较早)。
文件中包含的数据示例可以是:b0 82 91 a2 c3 89 b0 82 4a e3....(更多字节)... 虽然我在这里只占用了很少的字节,但是我们可以发现模式“b0 82”在上面出现了两次。因此输出应该显示模式和它出现的次数。同样,我们可以有 3 字节模式甚至更多字节模式。
还有其他示例可以是:aa 00 a7 2f 7b 4c ....(更多字节).....aa 01 a7......(更多字节)...... AA 05 A7...... 我认为即使这也可以被认为是一种 3 字节的模式,其中两个字节(aa 和 a7)是固定的,中间一个从 00 到 05 变化。
这是我能想到的两个例子,尽管可能还有更多模式。甚至可能存在一些无法立即显现的隐藏模式。整个想法是任何模式都可以,只要有助于在稍后阶段区分两个流。我想我现在更清楚地说明我的问题了。请让我知道以下事项:
我们如何进行这种类型的模式查找?
是否有任何工具或库可以帮助实现此目的?
还可以使用哪种语言或工具来实现高效、快速的开发?
数据挖掘领域可以为此目的提供帮助吗?如果是,如何继续?
最佳答案
这似乎是一个非常典型的 ngram 查找问题。这是一些 ngram 解决方案的链接。
quicker way to detect n-grams in a string?
您应该像对待任何其他字符串一样对待您的十六进制。
关于artificial-intelligence - 在十六进制文件中查找模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9290152/