Chinaunix首页 | 论坛 | 博客
  • 博客访问: 526038
  • 博文数量: 87
  • 博客积分: 4086
  • 博客等级: 上校
  • 技术积分: 900
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-23 15:55
文章分类

全部博文(87)

文章存档

2012年(3)

2010年(13)

2009年(7)

2008年(64)

我的朋友

分类: LINUX

2010-11-05 10:28:11

#include <stdio.h>

int main(int argc, char **argv)
{
    size_t length;
    unsigned char buffer[0x100000];
    FILE *fp;
    int i, j;

    if (argc != 2)
    {
        printf("Usage: binary filename\n");
        return 0;
    }

    fp = fopen(argv[1], "r");
    if (fp == NULL)
    {
        printf("No file named %s\n", argv[1]);
        return 0;
    }

    length = fread(&buffer[0], 1, 0x100000, fp);

    fclose(fp);

    for (i = 0; i < length; i++)
    {
         if ((i % 16) == 0)
        {
            printf("\n%08x: ", i);
        }

        printf("%02x ", buffer[i]);

        if ((i % 16) == 15)
        {
            printf("|");
            for (j = i - 15; j <= i; j++)
            {
                if ((buffer[j] >= 33) && (buffer[j] <= 126) && (buffer[j] != 0))
                {
                    printf("%c", buffer[j]);
                }
                else
                {
                    printf(".");
                }
            }
        }
    }
    
    for (j = i % 16; j < 16; j++)
    {
        printf(" ");
    }

    printf("|");

    for (j = (i / 16) * 16; j < i; j++)
    {
        if ((buffer[j] >= 33) && (buffer[j] <= 126) && (buffer[j] != 0))
        {
            printf("%c", buffer[j]);
        }
        else
        {
            printf(".");
        }
    }
}


阅读(3913) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-11-05 17:01:20

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com