打印可执行程序二进制码

//打印16进制

#include
#include
int main(int argc,char **argv)
{
 HANDLE hFile;
 DWORD dwSize,dwRead,dwIndex=0,i;
 unsigned char *lpBuff=NULL;
 __try
 {
  if(argc!=2)
  {
   printf(" Usage: %s ",argv[0]);
   __leave;
  }
  hFile=CreateFile(argv[1],GENERIC_READ,FILE_SHARE_READ,NULL,
   OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
  if(hFile==INVALID_HANDLE_VALUE)
  {
   printf(" Open file %s failed:%d",argv[1],GetLastError());
   __leave;
  }
  dwSize=GetFileSize(hFile,NULL);
  if(dwSize==INVALID_FILE_SIZE)
  {
   printf(" Get file size failed:%d",GetLastError());
   __leave;
  }
  lpBuff=(unsigned char *)malloc(dwSize);
  if(!lpBuff)
  {
   printf(" malloc failed:%d",GetLastError());
   __leave;
  }
  while(dwSize>dwIndex)
  {
   if(!ReadFile(hFile,&lpBuff[dwIndex],dwSize-dwIndex,&dwRead,NULL))
   {
    printf(" Read file failed:%d",GetLastError());
    __leave;
   }
   dwIndex+=dwRead;
  }
  for(i=0;i  {
   if((i%16)==0)
    printf("" "");
   printf("%.2X",lpBuff[i]);
  }
 }//end of try
 __finally
 {
  if(lpBuff) free(lpBuff);
  CloseHandle(hFile);
 }
 return 0;
}


#include
#include
void main(int argc,char **argv)
{
 FILE *P;
 char m;
 
 char num[5];
    int n;
 if(argc<2)
 {
  printf("Useage:%s file /n",argv[0]);
  _exit(0);
 }
 if((P=fopen("c://1.doc","r"))==NULL)
 {
  printf("can't open the file/n");
  _exit(0);
 }
 m=fgetc(P);
 while(m!=EOF)
 {
  int i=0;
  if(m=='A'||m=='a')n=10;
  else if(m=='B'||m=='b')n=11;
  else if(m=='C'||m=='c')n=12;
  else if(m=='D'||m=='d')n=13;
     else if(m=='E'||m=='e')n=14;
     else if(m=='F'||m=='f')n=15;
     else
   n=m-'0';
  while(n!=0)
  {
   num[i++]=n%2+'0';
   n=n/2;
  }
  if(i<4)num[i++]=0+'0';
  while(i>=0)
   printf("%c",num[--i]);
  m=fgetc(P);
 }
 fclose(P);
}
//将16进制转换为二进制

#include
#include
void main(int argc,char **argv)
{
 FILE *P;
 char m;
 
 char num[5];
    int n;
 if(argc<2)
 {
  printf("Useage:%s file /n",argv[0]);
  _exit(0);
 }
 if((P=fopen("c://1.doc","r"))==NULL)
 {
  printf("can't open the file/n");
  _exit(0);
 }
 m=fgetc(P);
 while(m!=EOF)
 {
  int i=0;
  if(m=='A'||m=='a')n=10;
  else if(m=='B'||m=='b')n=11;
  else if(m=='C'||m=='c')n=12;
  else if(m=='D'||m=='d')n=13;
     else if(m=='E'||m=='e')n=14;
     else if(m=='F'||m=='f')n=15;
     else
   n=m-'0';
  while(n!=0)
  {
   num[i++]=n%2+'0';
   n=n/2;
  }
  if(i<4)num[i++]=0+'0';
  while(i>=0)
   printf("%c",num[--i]);
  m=fgetc(P);
 }
 fclose(P);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值