欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]帮win8写了个简单命令行显示十六进制文件

[原创]帮win8写了个简单命令行显示十六进制文件

64位win8不知道为什么没有debug了。动手写了个。

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])

{

  if (argc < 2)

  {

    _tprintf(_T("语法:cmdhex 文件名"));

    return -1;

  }

  HANDLE      hHexFile;

  DWORD      dwNumberOfBytesRead;

  BYTE      SectorBuffer[1024*10];

  ULARGE_INTEGER   dwFileSize = { 0 };

  hHexFile = CreateFile(argv[1], GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL);

  if (hHexFile == INVALID_HANDLE_VALUE)

  {

    _tprintf(_T("文件未找到!"));

    return FALSE;

  }

  dwFileSize.LowPart = GetFileSize(hHexFile, &dwFileSize.HighPart );

  ReadFile(hHexFile, SectorBuffer, dwFileSize.LowPart , &dwNumberOfBytesRead, NULL);

  for (int i = 0; i < dwFileSize.LowPart ; ++i)

  {

     

    if (i % 8 == 0 )

    {

      _tprintf(_T(" "));

    }

    if (i % 16 == 0)

    {

      for (int n = 16; n >= 0; n--)

      {

        if (i == 0) break;

        if (isgraph(SectorBuffer[i - n]))

        {

          _tprintf(_T("%c"), SectorBuffer[i - n]);

        }

        else

        {

          _tprintf(_T("."));

        }

      }

      

      _tprintf(_T("\n"));

      _tprintf(_T("%08X  "), i);

    }

    

    _tprintf(_T("%02X "), SectorBuffer[i]);

  }

  CloseHandle(hHexFile);

//  _getch();

  return 0;

}

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功