A forum for reverse engineering, OS internals and malware analysis 

Forum for discussion about kernel-mode development.
 #10020  by frank_boldewin
 Wed Nov 30, 2011 8:34 am
Dmitry Varshavsky wrote: We started developing direct hw access library few years ago and it's still far from stable variant. Yes, it's universal, but at the same time it's really hardware dependent solution even for "simple" IDE.. ( we have hundreds(!!) of cases for different chipsets ).
and even if you will have a working hw access library this is only useful if you don't make it public or implement it in your product, otherwise it will be defeated as well.
 #10040  by Dmitry Varshavsky
 Wed Nov 30, 2011 9:08 pm
frank_boldewin wrote:
Dmitry Varshavsky wrote: We started developing direct hw access library few years ago and it's still far from stable variant. Yes, it's universal, but at the same time it's really hardware dependent solution even for "simple" IDE.. ( we have hundreds(!!) of cases for different chipsets ).
and even if you will have a working hw access library this is only useful if you don't make it public or implement it in your product, otherwise it will be defeated as well.
Everything can be defeated. The only difference is in efforts. And this library is already available in our product.
 #10045  by Tigzy
 Thu Dec 01, 2011 9:10 am
Does someone got a doc , or can explain me how to fill the CDB 16-byte block?
in the wdk, there are no explanation about this, only this short sample:
Code: Select all
// Init CDB
sptdwb.sptd.Cdb[0] = SCSIOP_READ_DATA_BUFF;
sptdwb.sptd.Cdb[1] = 2;                         // Data mode
sptdwb.sptd.Cdb[7] = (UCHAR)(sectorSize >> 8);  // Parameter List length
sptdwb.sptd.Cdb[8] = 0;	
 #10046  by Dmitry Varshavsky
 Thu Dec 01, 2011 9:33 am
Tigzy wrote:Does someone got a doc , or can explain me how to fill the CDB 16-byte block?
in the wdk, there are no explanation about this, only this short sample:
Code: Select all
// Init CDB
sptdwb.sptd.Cdb[0] = SCSIOP_READ_DATA_BUFF;
sptdwb.sptd.Cdb[1] = 2;                         // Data mode
sptdwb.sptd.Cdb[7] = (UCHAR)(sectorSize >> 8);  // Parameter List length
sptdwb.sptd.Cdb[8] = 0;	
Did you check this ? \src\storage\tools\spti\spti.c
and this ? http://msdn.microsoft.com/en-us/library ... s.85).aspx

Should be pretty much clear to start..

Here is more detailed info http://www.seagate.com/staticfiles/supp ... 93068c.pdf
Last edited by Dmitry Varshavsky on Thu Dec 01, 2011 9:41 am, edited 1 time in total.
 #10047  by Tigzy
 Thu Dec 01, 2011 9:37 am
Did you check this ? \src\storage\tools\spti\spti.c
Yes, this sample is extracted from this.
The msdn link does not give additional information
Cdb
Specifies the SCSI command descriptor block to be sent to the target device.
 #10048  by Dmitry Varshavsky
 Thu Dec 01, 2011 9:49 am
Tigzy wrote:
Did you check this ? \src\storage\tools\spti\spti.c
Yes, this sample is extracted from this.
The msdn link does not give additional information
Cdb
Specifies the SCSI command descriptor block to be sent to the target device.
Then check the SCSI general specs or vendor info, example given above.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7