查找一个short标记数值在二进制文件中第一次出现的位置
来源:互联网 发布:list去除id相同的数据 编辑:程序博客网 时间:2024/06/04 17:43
这个程序只是一个演示程序,尚有值得修改之处。
@1.问题描述:
有一个二进制文件,开头后移若干个byte可以找到一个位置有对应的一个标记数值(short值,占2个byte),该值位置并不确定是在偏移奇数个byte后还是偶数个byte后,文件不是文本文件,不可用文本方式打开,只能用二进制方式打开。目前要找到这个标记数值位置是在文件中从开头往后偏移多少个byte之后。
@2.当前版本代码2011.9.9.14.38:
#include <stdio.h>#include <stdlib.h>long findHexTar(short tar, FILE *fp){ long lSize; char* buffer; size_t result; // 获取文件大小 fseek(fp, 0, SEEK_END); lSize = ftell(fp); rewind(fp); // 分配内存存储文件内容 buffer = (char*)malloc(sizeof(char) * lSize); // 将文件拷贝到内存 result = fread(buffer, 1, lSize, fp); long nPos = 0; while ( nPos < sizeof(char) * lSize - 1) // 文件最后一个字节位置不可取 { if ( *(short*)(buffer + nPos) == tar ) break; else nPos++; } free(buffer); return nPos; }int main(){ FILE* fp = fopen("ProxyThorn.exe", "rb"); short tar = 0x5A4D; long nPos = findHexTar(tar, fp); printf("Found 0x%.04X at offset %d bytes",tar, nPos); getchar(); return 0;}
- 查找一个short标记数值在二进制文件中第一次出现的位置
- java查找一个字符串2在字符串1中第一次出现的位置
- 在排序的数组中二分查找一个元素,返回在数组中它第一次出现的位置
- 【C语言】模拟实现strchr函数.即在一个字符串中查找一个字符第一次出现的位置并返回
- 查找一串字母在一个文件中出现的位置
- 【c语言】模拟实现strchr函数,功能:在一个字符串中查找一个字符第一次出现的位置,如果没有出现返回NULL
- 查找指定字符串在字符串中第一次或最后一词出现的位置
- Java 查找某个数字在数组中第一次和最后一次出现的位置
- 在字符串中查找一个特定的字符第一次出现的位置,并返回字符所在位置;如果没有则返回NULL。
- 在排序数组中找出一个整数第一次出现的位置
- 从一个字符串中提取子字符串 /字符串的逆置/查找字符第一次出现的位置
- 在一个字符串中查找另外一个字符串的全排列出现位置
- 查找一个有序数组中某一数值出现的次数
- 在相邻元素相差1的数组中查找某一特定元素第一次出现的位置(非遍历)
- 在相邻元素相差1的数组中查找某一特定元素第一次出现的位置(非遍历)
- 在相邻元素相差1的数组中查找某一特定元素第一次出现的位置(非遍历)
- 找s2在s1中第一次出现的位置
- 指定数字在数组中第一次出现的位置
- JS及java编码问题
- project clean 后找不到R文件
- mysql数据库导入导出
- 线程的调度
- hdu 4018 Parsing URL
- 查找一个short标记数值在二进制文件中第一次出现的位置
- flash自动激活和flash虚线框的解决集合[转]
- Mysql
- 英特尔会谈未来Ultrabooks和Windows 8
- 计算机学生的未来
- memset函数用法
- 查看linux版本命令
- Shell脚本写的简单字符串hash函数
- 最精确的硬盘分区法