首页
社区
课程
招聘
[求助]16进制查找指定字节位置,请大家帮帮忙
发表于: 2008-9-29 09:35 5915

[求助]16进制查找指定字节位置,请大家帮帮忙

2008-9-29 09:35
5915
 
 
1
[COLOR="Red"]先祝大家国庆快乐![/COLOR]


1
2
3
4
5
程序设计思路: 实际就是一个文件补丁.
 
1.以[COLOR="Red"]二进制方式打开[/COLOR]一个文件后[COLOR="Red"]查找指定的字节数组[/COLOR] 如果找到返回位置 否则返回-1 说明没找到
 
2.如果[COLOR="red"]找到指定的字符数组[/COLOR] 则用我们预设好的字符数组[COLOR="red"]替换该字符数组[/COLOR].然后[COLOR="red"]回写到文件[/COLOR].


自己写了一个,但效果不理想.希望大家帮帮忙.在百度 google 没有找到 BYTE替换 相关搜索内容.所以只好硬着头皮来请大哥们帮忙了!~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//pbyte是文件的二进制数据 searchpbyte是要搜索的数据 initdate搜索的起始位置
int search (BYTE *pbyte,BYTE* searchpbyte,int initdate=0)
{
    int n=0;
    for (int i=initdate;i<len;i++)//起始字节位置
    {
        for (int k=0;k<sizeof(searchpbyte);k++)
        {
            if (pbyte[i+k]==searchpbyte[k])
            {
                n++;
                if (n==sizeof(searchpbyte))
                {
                    return i;
                    break;
                }
            }else
                n=0;
             
        }
    }
    return -1;
}
  但是此子程序传递的BYTE数组中有0x00 就会不行  

感谢大家了!~

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
  • p.jpg (45.42kb,43次下载)
收藏
免费
支持
分享
最新回复 (4)
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
  大家快来帮帮忙啊~~谢谢了
2008-9-29 15:07
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
sizeof(searchpbyte) 是不是永远等于4啊?
2008-9-29 17:10
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
一语惊醒梦中人~~ 谢谢~~~
2008-9-29 17:23
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
写糊涂了~~  谢谢icersg
2008-9-29 17:46
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册