C# - 搜索模式的二进制文件

Cla*_*hes 5 c# binary substring file find

在C#中搜索某个子字符串的大型二进制文件的最佳方法是什么?

为了提供一些细节,我试图从一个可执行的DWARF信息,所以我只关心的二进制文件(即部分开始与琴弦的某些部分.debug_info,.debug_abbrev等)

我没有看到任何明显的Stream,FileStream或者BinaryReader,所以看起来我将不得不阅读块并自己搜索字符串的数据.

有没有更好的办法?

Bev*_*van 7

.NET中没有内置任何内容来搜索你,所以你需要通过chunk读取文件块并扫描你想要查找的内容.

您可以通过两种方式加快搜索速度.

首先,使用缓冲IO并一次传输大块 - 不要逐字节读取,读取64KB,256KB或1MB块.

其次,不要对你想要的部分进行线性扫描 - 查看用于字符串搜索的Boyer-Moore(维基百科链接)算法 - 您可以将其应用于搜索所需的DWARF信息.