# -*- encoding: utf-8 -*- """ @File : disk_to_bin.py @License : (C)Copyright 2021-2023 @Modify Time @Author @Version @Description ------------ ------- -------- ----------- 2023/10/9 16:01 zart20 1.0 None """ # 定义常量 SECTOR_SIZE = 512 # 扇区大小 BYTES_PER_LINE = 16 # 每行字节数 MAX_SECTORS_TO_READ = 15927 # 要读取的最大扇区数量 # MAX_SECTORS_TO_READ = 3 # 打开设备文件 drive_letter = "I:" # 请替换为你要操作的磁盘 file_path = f"\\\\.\\{drive_letter}" # 设备文件路径 with open("output.bin","wb+") as out: with open(file_path, 'rb') as disk: sector_number = 0 # 起始扇区号 byte_offset = 0 # 字节偏移量初始化 sectors_read = 0 # 已读取的扇区数量 while sectors_read <= MAX_SECTORS_TO_READ: # 读取扇区数据 disk.seek(sector_number * SECTOR_SIZE) sector_data = disk.read(SECTOR_SIZE) print(sector_data) out.write(sector_data) for byte in sector_data: print(f"{byte:02X}", end=" ") # 输出每个字节的16进制表示 print() # 换行 sector_number += 1 byte_offset += len(sector_data) # 累加字节偏移量 sectors_read += 1