Memimager

מבצע מזבלה זיכרון באמצעות NTSYSTEMDEBUGCONTROL
הורד עכשיו

Memimager דירוג וסיכום

פרסומת

  • Rating:
  • רישיון:
  • Freeware
  • שם המפרסם:
  • Arne Vidstrom
  • מערכות הפעלה:
  • Windows All
  • גודל הקובץ:
  • 7 KB

Memimager תגים


Memimager תיאור

יישום MemImager נועד להיות כלי שמבצע dump זיכרון באמצעות NtSystemDebugControl. שימוש NtSystemDebugControl להטלה לקבלת קוד מלא 10 נשתמש struct עם הפריסה הבאה בתור מאגר קלט: - DWORD PhysicalAddress; - DWORD Reserved1; חוצץ * הריק -; - DWORD אורך; הבא נוכל עבור malloc למשל חיץ דף בגודל שבו אנו מציינים הצפת, כתיבה 4096 ב אורך, ונקודת PhysicalAddress לכתובת של הדף אנחנו רוצים להעתיק את תוכן. אז אנחנו לבצע NtSystemDebugControl ואם הכל ילך כשורה חיץ שלנו עכשיו מכיל עותק של הנתונים בדף פיזי. די טריוויאלי ממש. בתוך NtSystemDebugControl כדי להבין אם, ואם כן איך, ידיות NtSystemDebugControl במטמון בעיות שאנחנו צריכים לקחת לצלול לתוך הקרנל. הקרנל מייצאת את השגרה שנקראת NtSystemDebugControl, אשר מכילה הצהרת מתג מוטלת עם שיגור לפונקציונליות הנכונה המבוססת על קוד הבקרה. בחודש הבא אני לא אתאר כל פרט קטנטן של קוד. הסיבה הראשונה היא כי ישנם פרטים רבים אשר אינם רלוונטיים מה אנחנו מסתכלים. שנית אני לא decompiled את הקוד, אבל רק אחרי החלקים הרלוונטיים של פירוק (מתוך גרעין SP0 Windows Server 2003). קוד טיפול קוד מלא 10 שיחות שהגרה המתועדת _ExLockUserBuffer מה שהופך את הדפים במאגר שלנו (* Buffer) תושב, נועל אותם בזיכרון, וחוזר (ב מצביע כפרמטר) כתובת וירטואלי שטח מערכת הצבעה על זה. ואז עוד פונקציה מתועדת בשם _KdpCopyMemoryChunks נקראת. הפרמטרים המועברים אליו הם בין היתר את הכתובת הווירטואלית מרחב המערכת מצביע חיץ שלנו, את מספר הבתים להעתיק (אורך), ואת כתובת להעתיק (PhysicalAddress). עכשיו עוד פונקציה מתועדת נקראת: _MmDbgCopyMemory. פונקציה זו מבצעת העתקת בפועל של הנתונים. אבל לפני שהוא יכול לעשות כל העתקה היא צריכה להיות כתובת וירטואלית של המקור במקום כתובת פיזית. לכן הוא קורא הפונקציה המתועדת האחרונה שלנו: _MiDbgTranslatePhysicalAddress. עכשיו אנחנו באמת סוגרים על התשובה לשאלה שלנו. _MiDbgTranslatePhysicalAddress מקבל הכתובת הפיזית שלנו כפרמטר. לאחר מכן הוא משתמשת במשתנה שנקרא _ValidKernelPte, אשר משמש כסוג של תבנית עבור הקרנל PTE: שניות. הדגלים מהתבנית משולבים עם כתובת פיזית להקים PTE המצביעים לדף אנו רוצים להעתיק. אז הנתונים PFN באינדקס כדי למצוא את הכניסה המתאימה בעמוד המקור שלנו. בערך זה המבטים הקרנל בדגלים CacheAttribute של חבר u3.e1. הדגלים CacheAttribute אז משמשים כדי לקבוע את מדד PAT ב PTE. עכשיו אנחנו צריכים התשובה שלנו באמת, אבל אני אמשיך טיפה נוספת בכל מקרה. PTE הקרנל בנתה מועתק עכשיו למיקום שציין _MmDebugPte משתנה הקרנל. לבסוף, הפונקציה מחזירה את הכתובת הווירטואלית כי תשתמש PTE למיפוי. עכשיו _MmDbgCopyMemory חופשי להעתיק את הנתונים מהדף מקור פיזי חיץ שלנו באמצעות כתובות וירטואלי בלבד.


Memimager תוכנה קשורה

Curvefitting

כלי התאמה אישית עקומה כדי לעזור לך עם העבודה שלך. ...

253 176 KB

הורד

unnks

חלץ נתונים מארכיון NKS ו- NKX עם כלי זה. ...

1,443 701 KB

הורד