- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经阅读了phison的源代码(关于badusb,python文件)。但我无法理解程序向 SCSI 设备发送什么命令。在阅读了有关 SCSI 命令的内容后,我仍然找不到以“06h”开头的操作码(存在类似的设置设备 ID 的操作码) https://www.seagate.com/staticfiles/support/disc/manuals/scsi/100293068a.pdf以上是我找到的SCSI命令。以下是读取和写入的命令:
```
def get_info(self):
'''
Performs a SCSI call to read version info from the device.
Returns bool.
The object's following attributes are set:
data, version, run_mode, chip_type, date, f1f2
'''
self.data = self.SCSI_device.read('\x06\x05\x00\x00\x00\x00\x00\x00\x01',528)
if not self.data or self.data[0x17A:0x17C]!='VR':
return False
self.version = struct.unpack('BBB', self.data[0x94:0x97])
self.f1f2 = struct.unpack('BB', self.data[0x9A:0x9C])
self.date = struct.unpack('BBB', self.data[0x97:0x9A])
if self.data[0xA0:0xA8]==' PRAM ':
self.run_mode = 'BROM' # BootROM
elif self.data[0xA0:0xA8]==' FW BURN':
self.run_mode = 'BN' # firmware burner
elif self.data[0xA0:0xA8]==' HV TEST':
self.run_mode = 'HV' # hardware verify
else:
self.run_mode = 'FW' # firmware
self.chip_type = struct.unpack('>H', self.data[0x17E:0x180])[0]
data = self.SCSI_device.read('\x06\x56\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',512)[0:6].encode('hex').upper()
self.chip_id = '-'.join(data[i:i+2] for i in range(len(data))[::2])
return True
def run_firmware(self, firmware):
'''
Loads firmware onto device. Returns bool.
'''
# rebooting
self.brom()
sleep(2)
# sending firmware
self.load_file(firmware,'\x01','\x00')
ret = self.SCSI_device.read('\x06\xEE\x01\x00\x00\x00\x00\x00\x00', 72)
sleep(2)
self.load_file(firmware,'\x03','\x02')
self.SCSI_device.read('\x06\xEE\x01\x01\x00\x00\x00\x00\x00', 72)
self.SCSI_device.read('\x06\xEE\x00\x00\x00\x00\x00\x00\x00', 72)
self.SCSI_device.read('\x06\xEE\x00\x01\x00\x00\x00\x00\x00', 72)
# executing
self.brom()
sleep(2)
return True
def pram(self):
'''
Called to run a burner or firmware. Returns int result.
'''
return self.SCSI_device.write('\x06\xB3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', '')
def brom(self):
'''
Sets device into boot mode from firmware mode. Returns int result.
'''
return self.SCSI_device.write('\x06\xBF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00', '')
```
最佳答案
根据this它是特定于供应商的。
关于python - BadUSB 中的 SCSI 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47086505/
我正在寻找特定于供应商的 SCSI 命令的引用。我主要关心以下几点: 0xD4 0xD5 0xD8 据我所知,这些命令是一些“特殊”的读取命令,用在某些 Plextor 驱动器上。但是,我无法在任何地
windows 是否有特定的接口(interface),我可以通过它发送特定的 scsi 命令,如查询到 scsi 设备?我在网上搜索,找到了对 SCSI Pass Through 接口(interf
我尝试发出 scsi read(10)和 write(10)到 SSD。我用 this example code作为引用/基本代码。 这是我的 scsi 读取: #define READ_REPLY_
我想知道将错误代码映射到字符串的最佳方法是什么,例如在 SCSI 协议(protocol)中,错误总是以数字形式返回。像这样: 00h GOOD 02h CHECK CONDITION 04h CON
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 8 年前。 Improve th
有两个服务器:导出 5TB 磁盘的 Openfiler(v. 2.99) 和通过 iscsi 协议(protocol)使用该磁盘的 Proxmox(v. 3.4)。 使用此磁盘时,我在/var/log
我一直在使用 scsi 命令,我可以发送一些基本命令,例如不同的查询等。 我一直在使用这个示例来生成我的查询。我正在努力使这个示例能够使用不同的 scsi 命令。 http://www.tldp.or
我用了libaums访问我的自定义 USB 的私有(private)分区。现在我想知道如何读取 USB 的隐藏区域。为了访问隐藏区域,我知道 USB 隐藏地址的扇区范围,以及用于读取和写入隐藏区域的供
我有一个程序,其中未安装或以任何其他方式使用的驱动器需要降速。 我注意到在我关闭文件描述符后驱动器会自动加速。 我还没有找到任何信息,这是为什么,有什么办法可以禁用它吗? 这里有一个小程序可以自己测试
给定一个 SCSI 设备作为输入,我正在尝试实现一个内核模块,它可以: 获取发送到该特定设备的 SCSI 命令列表并计算该命令的发出次数。 我该如何实现? 我是内核模块编程的初学者,事实上我到目前为止
如何在 linux & c 上获取 SCSI 设备的供应商名称? 最佳答案 如果您知道设备/总线 ID,您可以阅读/sys 文件,同时检查 lsscsi . -> cat /sys/bus/scs
我正在尝试编写一个程序来阻止使用 SCSI 2 保留的 LUN。 在 SCSI 2 预留中,LUN 可以由具有不同路径的同一主机预留,还是 I-T-L 联结只有一条路径。 例如:假设主机尝试从同一目标
我在 Mac 上,正在尝试导入虚拟机镜像(.ova 文件)。我尝试在 VM 上导入文件并收到以下错误。 找不到名为“SCSI Controller ”的存储 Controller 任何已经存在的针对此
SCSI 是标准电子接口(interface),允许个人计算机与磁盘驱动器、磁带驱动器等外围硬件进行通信。 外围组件互连(PCI),顾名思义,是一种描述如何以结构化和受控方式将系统的外围组件连接在一起
SCSI 是标准的电子接口(interface),允许个人计算机与外围硬件(如磁盘驱动器、磁带驱动器等)进行通信。 外围组件互连 (PCI),顾名思义,是一种标准,描述了如何以结构化和受控的方式将系统
我正在使用 C/C++ 在 Windows 中进行开发,我想知道是否有可能获得适当的 \\.\SCSI设备名称 \\.\PhysicalDrive ?.. 例如,很高兴知道如何获得 \\.\Physi
我有一个应用程序可以同时执行 SCSI READ10 和 WRITE10 操作。当他们到达我的代码的较低级别时,他们调用 write(),然后调用/dev/sgXX 上的 read()。不过,我在接收
我是 SCSI CDB 编程的新手。我有一些使用 6byte CDB 为写命令编写的代码 ccb = (Exec_IO_CCB *)(buffer + header_size); ccb->ccb
我已经阅读了phison的源代码(关于badusb,python文件)。但我无法理解程序向 SCSI 设备发送什么命令。在阅读了有关 SCSI 命令的内容后,我仍然找不到以“06h”开头的操作码(存在
我正在使用 Linux LIO 包为后台存储创建环回设备。我正在使用“targetcli”实用程序来发出站点中提到的以下命令 - http://linux-iscsi.org/wiki/Loopbac
我是一名优秀的程序员,十分优秀!