标题: [文件操作] 二进制文件搜索特征串的问题 [打印本页]
作者: netdzb 时间: 2021-3-15 11:15 标题: 二进制文件搜索特征串的问题
假设二进制文件只有唯一特征串b'PYTHON',我如何分段读入找到
这个特征串的索引位置呢?
假设我读入的缓冲是1024字节,
很有可能我的特征串在2个缓冲区的
分界位置上。
缓冲1读入的是 b'任意字节PYH'
缓冲2读入的是b'HON任意字节'
这样会导致文件内存在b'PYTHON',
而执行脚本搜索不到。
这个问题应该如何解决?
作者: 路过 时间: 2021-3-16 16:09
本帖最后由 路过 于 2021-3-16 16:11 编辑
自己定一个char数组变量,把开头和结尾保存起来就行了- offset=0
- text='PYTHON'
- len=strlen(text)-1
- 定义动态数组b(len*2),并初始化数组b全为0
- ...
- while (offset<=filesize)
- {
- 从offset开始读1024字节到缓冲a
- if (读取成功) {
- 如果a中没有text {
- 读取a前len个字节到b[len]至b[2*len-1]
- 如果b中有text {
- //找到了
- ...
- }
- } else {
- //找到了
- ...
- }
- 读取a后len个字节到b[0]至b[len-1]
- offset+=1024
- 释放缓冲a
- }
- }
- ...
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |