DeviceIoControl () връща данните означава - winapi, reverse-engineering, createfile, ollydbg

Обръщах примерно приложение, дадено в клас и се изправях пред проблем, опитвайки се да разбера какво DeviceIoControl() функцията се връща в Output Buffer & от DeviceIoControl() често се използва след обаждане CreateFile(), трябва да обсъждам последната. Това са стъпките, през които преминава програмата:

  1. Програмата се отваря C: карам с READ|WRITE достъп & READ|WRITE споделен режим (CreateFile() функция).
  2. След това попълва входния буфер (който изглежда е структура) с определени данни, които ще публикувам в края.
  3. Определя Input Buffer & Output Buffer размери.
  4. И накрая се обади DeviceIoControl() с контролен код: 4D004h

Като преглеждате данните, върнати в Output Buffer, изглежда, че всичко е за информация за твърдия диск като: производител, име на модел ... и т.н.

Това е връщаният блок данни: Данните са върнати

Най-важният низ, който се съхранява за последваща употреба, е: Z2P1S4PJ и аз нямам представа какво означава това!

За останалите добавки:

CreateFile

ControlIODevice

Съдържание на входния буфер

Отговори:

0 за отговор № 1

След малко търсене, и ако ние говорим за dwIoControlCode на winapi DeviceIoControl() функция, изглежда, че 4D004 кодът е дефиниран като IOCTL_SCSI_PASS_THROUGH, така че позволява да се изпращат някои команди към SCSI устройства. Детайлите на командата трябва да бъдат в буфера, посочен от двойката параметри lpInBuffer / nInBufferSize,

Ще бъде трудно да се каже точно коя команда, без да е известно устройството, и не знам подробностите за управлението на интерфейса на SCSI.


Свързани въпроси
Най - известен