[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创] 在批处理中以十六进制表示查看文件内容(使用 FC 命令)

本帖最后由 老刘1号 于 2023-8-4 20:27 编辑

获得二进制表示

注意:当要生成二进制表示的文件本身全部由0x00组成时,此方法无效。
  1. >1.bin echo Hello, world
复制代码
  1. for %%i in (1.bin) do set /a size = %%~zi
复制代码
  1. set size
复制代码
  1. size=14
复制代码
  1. del /f "%tmp%\cmp.bin" 2>nul >nul
  2. fsutil file createNew "%tmp%\cmp.bin" %size%
复制代码
  1. 已创建文件 D:\TEMP\cmp.bin
复制代码
  1. fc /b "%tmp%\cmp.bin" 1.bin
复制代码
  1. 正在比较文件 D:\TEMP\cmp.bin 和 1.BIN
  2. 00000000: 00 48
  3. 00000001: 00 65
  4. 00000002: 00 6C
  5. 00000003: 00 6C
  6. 00000004: 00 6F
  7. 00000005: 00 2C
  8. 00000006: 00 20
  9. 00000007: 00 77
  10. 00000008: 00 6F
  11. 00000009: 00 72
  12. 0000000A: 00 6C
  13. 0000000B: 00 64
  14. 0000000C: 00 0D
  15. 0000000D: 00 0A
复制代码
  1. for /f "tokens=3 skip=1" %%i in (
  2.     'fc /b "%tmp%\cmp.bin" 1.bin'
  3. ) do (
  4.     echo %%i
  5. )
复制代码
  1. 48
  2. 65
  3. 6C
  4. 6C
  5. 6F
  6. 2C
  7. 20
  8. 77
  9. 6F
  10. 72
  11. 6C
  12. 64
  13. 0D
  14. 0A
复制代码
生成新二进制文件

可以使用如下命令:
  1. certutil -decodeHex
复制代码
  1. 要求至少 2 个参数,但收到了 0 个
  2. CertUtil: 找不到参数
  3. 用法:
  4.   CertUtil [选项] -decodehex InFile OutFile [type]
  5.   解码十六进制编码的文件
  6.     类型 -- 数值 CRYPT_STRING_* 编码类型
  7. 选项:
  8.   -f                -- 强制覆盖
  9.   -Unicode          -- 以 Unicode 编写重定向输出
  10.   -gmt              -- 将时间显示为 GMT
  11.   -seconds          -- 用秒和毫秒显示时间
  12.   -v                -- 详细操作
  13.   -privatekey       -- 显示密码和私钥数据
  14.   -pin PIN                  -- 智能卡 PIN
  15.   -sid WELL_KNOWN_SID_TYPE  -- 数字 SID
  16.             22 -- 本地系统
  17.             23 -- 本地服务
  18.             24 -- 网络服务
  19. CertUtil -?              -- 显示动词列表(命名列表)
  20. CertUtil -decodehex -?   -- 显示 "decodehex" 动词的帮助文本
  21. CertUtil -v -?           -- 显示所有动词的所有帮助文本
复制代码
​   
  1. (for /f "tokens=3 skip=1" %%i in (
  2.     'fc /b "%tmp%\cmp.bin" 1.bin'
  3. ) do (
  4.     echo %%i
  5. )) > "%tmp%\hex.txt"
复制代码
  1. type "%tmp%\hex.txt"
复制代码
  1. 48
  2. 65
  3. 6C
  4. 6C
  5. 6F
  6. 2C
  7. 20
  8. 77
  9. 6F
  10. 72
  11. 6C
  12. 64
  13. 0D
  14. 0A
复制代码
  1. certutil -decodeHex "%tmp%\hex.txt" "%tmp%\new.bin"
复制代码
  1. 输入长度 = 56
  2. 输出长度 = 14
  3. CertUtil: -decodehex 命令成功完成。
复制代码
  1. fc 1.bin "%tmp%\new.bin"
复制代码
  1. 正在比较文件 1.bin 和 D:\TEMP\NEW.BIN
  2. FC: 找不到差异
复制代码
​   
  1. fc /b 1.bin "%tmp%\new.bin"
复制代码
  1. 正在比较文件 1.bin 和 D:\TEMP\NEW.BIN
  2. FC: 找不到差异
复制代码
​   

其它

本文章由 Jupyter Notebook 以及我魔改的 iBatch kernel 强力驱动。
编写耗时:20分钟

返回列表