DeviceIoControl () ने डेटा का अर्थ वापस कर दिया - winapi, रिवर्स-इंजीनियरिंग, 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, इसलिए यह कुछ आदेशों को एससीएसआई उपकरणों को भेजने देता है। कमांड का विवरण पैरामीटर जोड़ी द्वारा इंगित बफर में होना चाहिए lpInBuffer / nInBufferSize

यह जानना मुश्किल होगा कि उपकरण को जानने के बिना वास्तव में क्या आदेश है, और मुझे एससीएसआई इंटरफ़ेस प्रबंधन का विवरण नहीं पता है।


संबंधित सवाल
सबसे लोकप्रिय