将文件内容转换成十六进制格式
时间:2010-11-29 来源:royen
include "stdafx.h"
#define byte unsigned char
int _tmain(int argc, _TCHAR* argv[])
{
if( NULL == argv[1] )
{
printf("Parameter needed!\n");
return 1;
}
FILE *f_Exefile = NULL;
FILE *f_Report = NULL;
f_Exefile = _wfopen( argv[1],L"rb");
if( NULL == f_Exefile )
{
printf("Open executable file failed!\n");
return 1;
}
f_Report = _wfopen( L"D:\\Report.txt",L"wt");
if( NULL == f_Report )
{
printf("Create report file failed!\n");
return 1;
}
fseek(f_Exefile,0,SEEK_END);
long filesize = ftell(f_Exefile);
fseek(f_Exefile,0,SEEK_SET);
byte buffer[1024];
char* buffer2 = new char[2];
string tmp;
long readed = 0;
int actual = 0;
while( readed < filesize )
{
memset( buffer,'\0',1024);
actual = fread( buffer,sizeof(byte),1023,f_Exefile);
readed += actual;
tmp = "";
for( int i= 0; i<actual; i++ )
{
memset(buffer2,'\0',2);
sprintf( buffer2,"%02x",buffer[i]);
buffer2[0] = toupper(buffer2[0]);
buffer2[1] = toupper(buffer2[1]);
tmp.append(buffer2);
}
fwrite( tmp.c_str(),sizeof(char),tmp.length(),f_Report);
}
if( f_Exefile )
{
fclose( f_Exefile );
f_Exefile = NULL;
}
if( f_Report )
{
fclose( f_Report );
f_Report = NULL;
}
return 0;
}
#define byte unsigned char
int _tmain(int argc, _TCHAR* argv[])
{
if( NULL == argv[1] )
{
printf("Parameter needed!\n");
return 1;
}
FILE *f_Exefile = NULL;
FILE *f_Report = NULL;
f_Exefile = _wfopen( argv[1],L"rb");
if( NULL == f_Exefile )
{
printf("Open executable file failed!\n");
return 1;
}
f_Report = _wfopen( L"D:\\Report.txt",L"wt");
if( NULL == f_Report )
{
printf("Create report file failed!\n");
return 1;
}
fseek(f_Exefile,0,SEEK_END);
long filesize = ftell(f_Exefile);
fseek(f_Exefile,0,SEEK_SET);
byte buffer[1024];
char* buffer2 = new char[2];
string tmp;
long readed = 0;
int actual = 0;
while( readed < filesize )
{
memset( buffer,'\0',1024);
actual = fread( buffer,sizeof(byte),1023,f_Exefile);
readed += actual;
tmp = "";
for( int i= 0; i<actual; i++ )
{
memset(buffer2,'\0',2);
sprintf( buffer2,"%02x",buffer[i]);
buffer2[0] = toupper(buffer2[0]);
buffer2[1] = toupper(buffer2[1]);
tmp.append(buffer2);
}
fwrite( tmp.c_str(),sizeof(char),tmp.length(),f_Report);
}
if( f_Exefile )
{
fclose( f_Exefile );
f_Exefile = NULL;
}
if( f_Report )
{
fclose( f_Report );
f_Report = NULL;
}
return 0;
}
欢迎转载,转载请注明出处:http://www.cnblogs.com/royenhome
相关阅读 更多 +
排行榜 更多 +