shortタグ値がバイナリファイルで初めて表示される場所を検索します.
このプログラムはただのプレゼンテーションプログラムで、まだ修正する価値があります.
@1.問題の説明:
最初からいくつかのbyteを移動すると、奇数のbyteをオフセットした後、偶数のbyteをオフセットした後、ファイルがテキストファイルではなく、テキストで開くことができず、バイナリで開くしかないバイナリファイルがあります.このタグの数値位置は、ファイルの先頭から数byte後にオフセットされているかどうかを確認します.
@2.現在のバージョンコード2011.9.3.14.38:
@1.問題の説明:
最初からいくつかのbyteを移動すると、奇数のbyteをオフセットした後、偶数のbyteをオフセットした後、ファイルがテキストファイルではなく、テキストで開くことができず、バイナリで開くしかないバイナリファイルがあります.このタグの数値位置は、ファイルの先頭から数byte後にオフセットされているかどうかを確認します.
@2.現在のバージョンコード2011.9.3.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;
}