memimager.

يؤدي تفريغ ذاكرة باستخدام ntsystemdebugcontrol
التحميل الان

memimager. الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • Freeware
  • اسم الناشر:
  • Arne Vidstrom
  • أنظمة التشغيل:
  • Windows All
  • حجم الملف:
  • 7 KB

memimager. العلامات


memimager. وصف

تم تصميم تطبيق Memimager لتكون أداة تؤدي تفريغ ذاكرة باستخدام NtsystemDebugControl. باستخدام ntsystemdebugcontrol لإغراق للحصول على رمز التحكم 10 نستخدم الهيكل مع التخطيط التالي كمخزن مؤقت للإدخال: - DWORD IssinalAddress؛ - DWORD محفوظة 1؛ - فراغ * المخزن المؤقت؛ - طول DWORD بعد ذلك يمكننا على سبيل المثال Malloc مخزن مؤقت بحجم الصفحات الذي نشير المخزن مؤقتا إليه، واكتب 4096 في الطول، ونقاط الفيزياء إلى عنوان الصفحة التي نود نسخ محتوياتها. ثم نقوم بتنفيذ NTSYSTEMDEBUGCONTROL وإذا كان كل شيء على ما يرام جيدا يحتوينا الآن على نسخة من البيانات في الصفحة الفيزيائية. تافهة جدا في الواقع. داخل ntsystemdebugcontrol. لفهم إذا، وإذا كان الأمر كذلك، فإن NtsystemDebugcontrol يتعامل مع مشكلات التخزين المؤقت علينا أن نأخذ الغوص في النواة. تقوم Kernel بتصدير الروتين المسمى NTSYSTEMDEBUGCONTROL، والذي يحتوي على عبارة تبديل مكلفة مع إرسالها إلى الوظيفة الصحيحة بناء على رمز التحكم. في ما يلي لن أصف كل التفاصيل الصغيرة الصغيرة من التعليمات البرمجية. السبب الأول هو أن هناك العديد من التفاصيل التي ليست ذات صلة بما ننظر إليه. ثانيا، لم أقم بتعريف التعليمات البرمجية، ولكن فقط اتبعت الأجزاء ذات الصلة من التفكيك (من Kernel Windows Server 2003 SP0). يدعو رمز التحكم في معالجة التعليمات البرمجية 10 روتين غير موثق _ExlockUserbuffer الذي يجعل الصفحات الموجودة في المقيم المخزن المؤقت (* المخزن المؤقت)، وأقفزها في الذاكرة، والعودة (في مؤشر مرت كمعلمة) عنوان افتراضي مساحة نظام يشير إليه. ثم يسمى وظيفة أخرى غير موثقة تسمى _KDPCopyMemorychunks. تعتبر المعلمات التي مرت إليها من بين أمور أخرى العنوان الظاهري الفضائي للنظام الذي يشير إلى المخزن المؤقت لدينا، وعدد البايتات لنسخ (الطول) وعنوان نسخ من (IssinalAddress). الآن تسمى وظيفة أخرى غير موثقة: _mmdbgcopymemory. تؤدي هذه الوظيفة النسخ الفعلي للبيانات. ولكن قبل أن تتمكن من القيام بأي نسخ، يجب أن يكون لديك عنوان افتراضي للمصدر بدلا من عنوان فعلي. لذلك يستدعي آخر وظيفة غير موثقة: _midbgtranslatephysicaladdress. الآن نحن نبحث حقا عن الإجابة على سؤالنا. _midbgtranslatephysicaladdress يتلقى عنواننا الفيزيائي كمعلمة. ثم يستخدم متغيرا يسمى _validkernelpte، الذي يعمل كواحد من القالب لنواة PTE: S. يتم دمج الأعلام من القالب مع العنوان الفعلي لتشكيل PTE مشيرا إلى الصفحة التي نريد نسخها. ثم يتم فهرسة قاعدة بيانات PFN للعثور على الإدخال المقابل لصفحة المصدر الخاصة بنا. في هذا الإدخال ينظر النواة إلى إشارات Cacheattribute لعضو U3.E1. ثم يتم استخدام إشارات Cacheattribe لتعيين مؤشر PAT في PTE. الآن لدينا إجابتنا حقا، لكنني سوف أواصل قليلا على أي حال. يتم نسخ PTE The Kernel الآن إلى الموقع المدبب من قبل متغير Kernel _mmdebugpte. أخيرا، ترجع الدالة العنوان الظاهري الذي سيستخدم PTE لرسم الخرائط. الآن _mmdbgcopymemory مجاني لنسخ البيانات من صفحة المصدر الفيزيائي إلى المخزن المؤقت لدينا باستخدام العناوين الافتراضية فقط.


memimager. برامج ذات صلة

guidgen.

أداة المطورين لإنشاء واحد أو أكثر من GUID ...

182 35 KB

تحميل