-
-
[求助]16进制查找指定字节位置,请大家帮帮忙
-
发表于:
2008-9-29 09:35
5803
-
[COLOR="Red"]先祝大家国庆快乐![/COLOR]
程序设计思路: 实际就是一个文件补丁.
1.以[COLOR="Red"]二进制方式打开[/COLOR]一个文件后[COLOR="Red"]查找指定的字节数组[/COLOR] 如果找到返回位置 否则返回-1 说明没找到
2.如果[COLOR="red"]找到指定的字符数组[/COLOR] 则用我们预设好的字符数组[COLOR="red"]替换该字符数组[/COLOR].然后[COLOR="red"]回写到文件[/COLOR].
自己写了一个,但效果不理想.希望大家帮帮忙.在百度 google 没有找到 BYTE替换 相关搜索内容.所以只好硬着头皮来请大哥们帮忙了!~
//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 就会不行
感谢大家了!~
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)