【问题标题】:Find HEX patterns and number of occurrences查找 HEX 模式和出现次数
【发布时间】:2009-12-15 05:45:07
【问题描述】:

我想查找模式并按我拥有的 HEX 文件中出现的次数对其进行排序。

我不是在寻找一些特定的模式,只是为了对那里发生的事件进行一些统计并对其进行排序。

DB0DDAEEDAF7DAF5DB1FDB1DDB20DB1BDAFCDAFBDB1FDB18DB23DB06DB21DB15DB25DB1DDB2EDB36DB43DB59DB32DB28DB2ADB46DB6FDB32DB44DB40DB50DB87DBB0DBA1DBABDBA0DB9ADBA6DBACDBA0DB96DB95DBB7DBCFDBCBDBD6DB9CDBB5DB9DDB9FDBA3DB88DB89DB93DBA5DB9CDBC1DBC1DBC6DBC3DBC9DBB3DBB8DBB6DBC8DBA8DBB6DBA2DB98DBA9DBB9DBDBDBD5DBD9DBC3DB9BDBA2DB84DB83DB7DDB6BDB58DB4EDB42DB16DB0DDB01DB02DAFCDAE9DAE5DAD9DAE2DAB7DA9BDAA6DA9EDAAADAC9DACADAC4DA92DA90DA84DA89DA93DAA9DA8CDA7FDA62DA53DA6EDA

这是 HEX 文件的摘录,作为示例,我想获得:

出现 XX 次 BDDBBD

XX 次 B93D

有没有办法挖掘文件以生成该输出?

【问题讨论】:

  • 您是在寻找 6 个或 4 个字符模式,还是两者兼而有之。如果您正在寻找任意长度的模式,则任务要复杂得多。重叠模式怎么样?
  • 我正在寻找对长度模式(2、4、6...)。没有重叠的图案。该文件大约700Kb,因此我认为程序的效率没有太大问题。
  • @GrayWizard,不,不是家庭作业,只是帮助一个小的个人项目。

标签: hex data-mining text-mining


【解决方案1】:

当然。使用sliding window 创建计数(该链接适用于 Perl,但它似乎足以理解算法)。你的模式被命名为N-grams。不过,您将不得不限制最大模式。

【讨论】:

    【解决方案2】:

    这是一个非常经典的 CS 问题。一般来说,代码实现起来并不简单,因为它至少需要一个完整的序列解析,并且根据您的效率和内存/处理器限制,可能需要几个。见here

    您将需要以某种方式对输入字符串进行分区,以确保您在其中获得良好的子序列。

    如果有具体问题,我们可能会提供更多帮助,但一般策略在上面的 Wikipedia 文章中。

    【讨论】:

    • 你能告诉我CS是什么意思吗?
    • 呃-哦!休斯顿,我认为我们有问题。
    • 谢谢 wic,我是西班牙人,不太习惯教育界 @Pavium 使用的首字母缩略词
    【解决方案3】:

    您可以使用正则表达式来制作要搜索的模式。

    所需的正则表达式非常简单。只需使用您要搜索的确切短语。那么在你使用的语言中应该有一个正则表达式函数(你没有指定)可以计算匹配的数量。

    用它来创建一个简单的计数器。

    【讨论】:

    • 很抱歉没有指定语言。这可能是 Objective-c/Cocoa 或 PHP,这是我可以编写代码的两个。
    猜你喜欢
    • 2012-03-06
    • 2017-09-15
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    相关资源
    最近更新 更多