这个问题已经被问到了很多,尤其是在 stackoverflow 上,但解决方案/回复并不明确或广泛。
我正在寻找的是从 Sysinternals构建Strings所做的事情。我的目标是读取任何 Windows 二进制文件并以快速有效的方式提取所有字符串 ASCII/UNICODE。
目前我正在从磁盘打开文件,读入缓冲区,然后将该缓冲区分配到一个向量中并使用 booyer_moore 搜索。此操作非常消耗 CPU,尤其是当文件很大(几 mb)并且代码搜索“所有内容”时。
我找到了这个https://github.com/glmcdona/strings2但由于采用的方法它不支持 x64,而且我似乎找不到 Sysinternals 工具的任何源代码。
是否可以向我展示(甚至是一些伪代码)如何处理这个问题?