هذا هو تقلب الأوامر الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
التقلبات - إطار الطب الشرعي الذاكرة المتقدمة
موجز
التقلبات [خيار]
التقلبات -f [صورة] --الملف الشخصي=[الملف الشخصي] [المساعد]
الوصف
يعد Volatility Framework عبارة عن مجموعة مفتوحة تمامًا من الأدوات لاستخراج
التحف الرقمية من عينات الذاكرة المتطايرة (RAM). ومن المفيد في تحليل الطب الشرعي.
يتم تنفيذ تقنيات الاستخراج بشكل مستقل تمامًا عن النظام
تم التحقيق فيها ولكنها توفر رؤية غير مسبوقة لحالة وقت تشغيل النظام.
يدعم Volatility العديد من إصدارات أنظمة التشغيل MS Windows وLinux وMAC OSX:
مايكروسوفت ويندوز:
· نظام التشغيل Windows XP Service Pack 32 و2 3 بت
· 32 بت Windows 2003 Server Service Pack 0، 1، 2
· نظام التشغيل Windows Vista Service Pack 32 بت 0، 1، 2
· إصدار 32 بت من Windows 2008 Server Service Pack 1، 2 (لا توجد حزمة الخدمة SP0)
· 32 بت ويندوز 7 حزمة الخدمة 0، 1
· تحديث 32 بت لأنظمة التشغيل Windows 8 و8.1 و8.1 1
· نظام التشغيل Windows 32 10 بت (الدعم الأولي)
· نظام التشغيل Windows XP Service Pack 64 و1 2 بت (لا توجد حزمة الخدمة SP0)
· نظام التشغيل Windows 64 Server Service Pack 2003 و1 2 بت (لا توجد حزمة الخدمة SP0)
· نظام التشغيل Windows Vista Service Pack 64 بت 0، 1، 2
· نظام التشغيل Windows 64 Server Service Pack 2008 و1 2 بت (لا توجد حزمة الخدمة SP0)
· نظام التشغيل Windows 64 R2008 Server Service Pack 2 و0 1 بت
· 64 بت ويندوز 7 حزمة الخدمة 0 و 1
· تحديث 64 بت لأنظمة التشغيل Windows 8 و8.1 و8.1 1
· 64 بت ويندوز سيرفر 2012 و 2012 R2
· نظام التشغيل Windows 64 10 بت (الدعم الأولي)
لينكس:
· نواة لينكس 32 بت 2.6.11 إلى 4.2.3
· نواة لينكس 64 بت 2.6.11 إلى 4.2.3
· OpenSuSE، Ubuntu، Debian، CentOS، Fedora، Mandriva، إلخ
نظام التشغيل Mac OSX:
· 32 بت 10.5.x Leopard (الإصدار 64 بت 10.5 الوحيد هو الخادم، وهو غير مدعوم)
· 32 بت 10.6.x سنو ليوبارد
· 64 بت 10.6.x سنو ليوبارد
· 32 بت 10.7.x أسد
· 64 بت 10.7.x أسد
· 64 بت 10.8.x Mountain Lion (لا يوجد إصدار 32 بت)
· 64 بت 10.9.x مافريكس (لا يوجد إصدار 32 بت)
· 64 بت 10.10.x يوسمايت (لا يوجد إصدار 32 بت)
· 64 بت 10.11.x El Capitan (لا يوجد إصدار 32 بت)
تنسيقات الذاكرة المدعومة هي:
· العينة الخطية الأولية (dd)
· ملف السبات
· تعطل ملف التفريغ
· VirtualBox ELF64 تفريغ الأساسية
· برنامج VMware يحفظ ملفات الحالة واللقطات
· تنسيق EWF (E01)
· LiME (Linux Memory Extractor) الشكل
· تنسيق ملف Mach-O
· مقالب الجهاز الظاهري QEMU
· فاير واير
· HPAK (FDPro)
مساحات العناوين المدعومة (أنواع ذاكرة الوصول العشوائي) هي:
· AMD64PagedMemory - مساحة عنوان AMD 64 بت القياسية
· ArmAddressSpace - مساحة العنوان لمعالجات ARM
· FileAddressSpace - هذا هو الملف المباشر AS
· HPAKAddressSpace - يدعم هذا AS تنسيق HPAK
· IA32PagedMemoryPae - تطبق هذه الفئة مساحة عنوان الترحيل IA-32 PAE.
إنها مسؤولة
· IA32PagedMemory - مساحة عنوان الترحيل القياسية IA-32
· LimeAddressSpace -- مساحة العنوان لايم
MachOAddressSpace - مساحة العنوان لملفات mach-o لدعم ذاكرة atc-ny
قارئ
· OSXPmemELF - هذا AS يدعم تنسيق VirtualBox ELF64 coredump
· QemuCoreDumpElf - يدعم هذا AS تنسيق Qemu ELF32 وELF64 coredump
· VirtualBoxCoreDumpElf64 - هذا AS يدعم تنسيق VirtualBox ELF64 coredump
· VMWareAddressSpace - هذا AS يدعم لقطة VMware (VMSS) والحالة المحفوظة
ملفات (VMSS).
· VMWareMetaAddressSpace - يدعم هذا AS تنسيق VMEM مع VMSN/VMSS
البيانات الوصفية
· WindowsCrashDumpSpace32 - هذا AS يدعم تنسيق Windows Crash Dump
· WindowsCrashDumpSpace64BitMap - هذا AS يدعم Windows BitMap Crash Dump
شكل
· WindowsCrashDumpSpace64 - هذا AS يدعم تنسيق Windows Crash Dump
· WindowsHiberFileSpace32 - هذه مساحة عنوان السبات للنوافذ
ملفات السبات
توجد صور ذاكرة نموذجية للاختبارات في
https://github.com/volatilityfoundation/التقلبات/wiki/عينات الذاكرة.
OPTIONS
-ح ، --مساعدة
قم بإدراج جميع الخيارات المتاحة وقيمها الافتراضية. قد يتم تعيين القيم الافتراضية
ملف التكوين (/etc/volatilityrc).
--conf-file=/root/.volatilityrc
ملف التكوين القائم على المستخدم.
-د، --Debug
تصحيح التقلبات.
--plugins=PLUGINS
إضافي المساعد الدلائل المراد استخدامها (مفصولة بنقطتين).
--معلومات طباعة معلومات حول كافة الكائنات المسجلة.
--cache-directory=/root/.cache/volatility
الدليل حيث يتم تخزين ملفات ذاكرة التخزين المؤقت.
--مخبأ
استخدم التخزين المؤقت.
--tz=TZ
قم بتعيين المنطقة الزمنية لعرض الطوابع الزمنية باستخدام pytz (إذا كان مثبتًا) أو tzset
-f اسم الملف، --filename = FILENAME
اسم الملف الذي سيتم استخدامه عند فتح ملف صورة.
--profile=WinXPSP2x86
اسم ملف التعريف المراد تحميله (استخدام --معلومات لرؤية قائمة الملفات الشخصية المدعومة).
-l موقع، - الموقع = الموقع
موقع URN الذي سيتم تحميل مساحة العنوان منه.
-w ، --اكتب
تمكين دعم الكتابة.
--dtb=DTB
عنوان دي تي بي.
--shift=SHIFT
عنوان تحويل Mac KASLR.
--output=text
الإخراج بهذا التنسيق.
- ملف الإخراج = OUTPUT_FILE
اكتب الإخراج في هذا الملف.
-الخامس، - الإسراف
معلومات مطولة.
-g كي دي بي جي, --kdbg=KDBG
حدد عنوانًا افتراضيًا محددًا لـ KDBG. بالنسبة لنظام التشغيل Windows 64 والإصدارات الأحدث 8 بت، هذا هو
عنوان KdCopyDataBlock.
--فرض
استخدام القوة للملف الشخصي المشتبه به.
-k كبكر، --kpcr=KPCR
حدد عنوان KPCR محددًا.
--ملف تعريف الارتباط=ملف تعريف الارتباط
حدد عنوان nt!ObHeaderCookie (صالح لنظام التشغيل Windows 10 فقط).
PLUGINS لأي لبس مظهر
المدعومة المساعد يمكن عرض الأوامر والملفات الشخصية في حالة استخدام الأمر '$
التقلبات --معلومات'. لاحظ أن المكونات الإضافية المسموح بها لنظام التشغيل Linux وMAC OSX ستحتوي على "linux_"
والبادئات "mac_". تم تصميم المكونات الإضافية التي لا تحتوي على هذه البادئات لنظام التشغيل MS Windows.
الملفات الشخصية هي خرائط تستخدمها Volatility لفهم أنظمة التشغيل. MS المسموح به
يتم توفير ملفات تعريف Windows بواسطة Volatility.
يجب عليك إنشاء ملفات التعريف الخاصة بك لنظامي التشغيل Linux وMAC OSX. لهذا، اقرأ على أنظمة دبيان
ملف README.Debian المقدم من قبل التقلبات-حزمة الأدوات.
في نظام التشغيل MS Windows، لتحديد نوع نظام التشغيل، يمكنك استخدام:
تقلب $ -f معلومات الصورة
or
تقلب $ -f com.kdbgscan
البيئة المتغيرات
في نظام GNU/Linux أو OS X، يمكن ضبط هذه المتغيرات:
· VOLATILITY_PROFILE - يحدد ملف التعريف الذي سيتم استخدامه كإعداد افتراضي
لا لزوم لها "--الملف الشخصي' خيار.
· VOLATILITY_LOCATION - يحدد مسار صورة. لذلك، أمر التقلب
لن تحتاج إلى اسم ملف عبر '-f' خيار.
· VOLATILITY_KDBG - يحدد عنوان KDBG. انظر الإجراءات الإضافية للمزيد
تفاصيل.
أخرى المساعد يمكن استخدام الأعلام بهذه الطريقة، على سبيل المثال KPCR أو DTB أو PLUGINS. متى
تصدير المتغيرات، ما عليك سوى إضافة البادئة VOLATILITY_ قبل اسم العلامة (على سبيل المثال
VOLATILITY_KPCR). وبخلاف ذلك، يظل اسم العلم كما هو عند إضافته إلى ملف
ملف الضبط.
إذا كان لديك مسار يحتوي على مسافة أو أكثر في الاسم، فيجب استبدال المسافات بـ %20
بدلاً من ذلك (على سبيل المثال LOCATION=file:///tmp/my%20image.img).
على سبيل المثال:
$ تصدير VOLATILITY_PROFILE=Win7SP0x86
$ التصدير VOLATILITY_LOCATION=file:///tmp/myimage.img
$ تصدير VOLATILITY_KDBG=0x82944c28
CONFIGURATION FILES
عادةً ما تكون ملفات التكوين "volatilityrc" في الدليل الحالي أو
'~/.volatilityrc"في الدليل الرئيسي للمستخدم، أو في المسار المحدد بواسطة المستخدم، باستخدام الملف --conf-
ملف خيار. يظهر مثال لمحتويات الملف أدناه:
[DEFAULT]
الملف الشخصي=Win7SP0x86
LOCATION=file:///tmp/myimage.img
KDBG=0x82944c28
أخرى المساعد يمكن استخدام الأعلام بهذه الطريقة، على سبيل المثال KPCR أو DTB أو PLUGINS. متى
تصدير المتغيرات، ما عليك سوى إضافة البادئة VOLATILITY_ قبل اسم العلامة (على سبيل المثال
VOLATILITY_KPCR). وبخلاف ذلك، يظل اسم العلم كما هو عند إضافته إلى ملف
ملف الضبط.
إذا كان لديك مسار يحتوي على مسافة أو أكثر في الاسم، فيجب استبدال المسافات بـ %20
بدلاً من ذلك (على سبيل المثال LOCATION=file:///tmp/my%20image.img).
EXTRA العمليات
تحديد منطقة زمنية
يمكن أن تكون الطوابع الزمنية المستخرجة من الذاكرة إما بالتوقيت المحلي للنظام أو بالتوقيت العالمي
الإحداثيات (التوقيت العالمي). إذا كانت بالتوقيت العالمي المنسق، فيمكن توجيه Volatility لعرضها في وقت واحد
المنطقة التي يختارها المحلل. لاختيار منطقة زمنية، استخدم إحدى المناطق الزمنية القياسية
أسماء (مثل أمريكا/ساو باولو، أوروبا/لندن، الولايات المتحدة/الشرق أو معظم المناطق الزمنية في أولسون) مع
علامة --tz=TIMEZONE.
يحاول التقلب استخدام pytz إذا تم تثبيته، وإلا فإنه يستخدم tzset.
يرجى ملاحظة أن تحديد منطقة زمنية لن يؤثر على كيفية عرض التوقيت المحلي للنظام. لو
قمت بتحديد وقت تعلم أنه يعتمد على التوقيت العالمي المنسق (UTC)، يرجى تسجيله كمشكلة في أداة تعقب المشكلات.
بشكل افتراضي، تكون الطوابع الزمنية _EPROCESS CreateTime وExitTime بالتوقيت العالمي المنسق (UTC).
إعداد DTB
DTB (قاعدة جدول الدليل) هو ما تستخدمه Volatility لترجمة العناوين الافتراضية إلى عناوين فعلية
عناوين. افتراضيًا، يتم استخدام kernel DTB (من عملية الخمول/النظام). إذا كنت تريد استخدام أ
DTB لعملية مختلفة عند الوصول إلى البيانات، قم بتوفير العنوان إلى --dtb=ADDRESS.
تعيين عنوان KDBG (هذا عنوان Windows فقط خيار)
يقوم بفحص التقلبات لبنية "_KDDEBUGGER_DATA64" باستخدام التوقيعات المشفرة "KDBG" و
سلسلة من الشيكات التعقل. هذه التوقيعات ليست ضرورية لنظام التشغيل ليعمل
بشكل صحيح، وبالتالي يمكن للبرامج الضارة الكتابة فوقها في محاولة للتخلص من الأدوات التي تعتمد على
إمضاء. بالإضافة إلى ذلك، في بعض الحالات قد يكون هناك أكثر من '_KDDEBUGGER_DATA64' (لـ
على سبيل المثال، إذا قمت بتطبيق تحديث رئيسي لنظام التشغيل ولم تقم بإعادة التشغيل)، مما قد يسبب ارتباكًا ويؤدي إلى
عملية غير صحيحة وقوائم الوحدات، من بين مشاكل أخرى. إذا كنت تعرف العنوان
أضف "_KDDEBUGGER_DATA64"، يمكنك تحديده باستخدام --kdbg=ADDRESS وهذا يتجاوز الإعداد التلقائي
عمليات المسح. لمزيد من المعلومات، راجع البرنامج المساعد kdbgscan.
تعيين عنوان KPCR (هذا عنوان Windows فقط خيار)
توجد منطقة KPCR واحدة (منطقة التحكم في معالج Kernel) لكل وحدة معالجة مركزية على النظام. بعض التقلبات
تعرض المكونات الإضافية معلومات لكل معالج. وبالتالي، إذا كنت تريد عرض البيانات الخاصة بوحدة المعالجة المركزية (CPU) المحددة، فيمكنك ذلك
على سبيل المثال وحدة المعالجة المركزية 3 بدلاً من وحدة المعالجة المركزية 1، يمكنك تمرير عنوان KPCR الخاص بوحدة المعالجة المركزية باستخدام --kpcr=ADDRESS.
لتحديد موقع KPCRs لجميع وحدات المعالجة المركزية (CPUs)، راجع البرنامج المساعد kpcrscan. لاحظ أيضًا أنه بدءًا من Volatility 2.2،
يتم تكرار العديد من المكونات الإضافية مثل idt وgdt تلقائيًا من خلال قائمة KPCRs.
تمكين دعم الكتابة
يجب استخدام دعم الكتابة في التقلب بحذر. لذلك، لتمكينه فعليًا، يجب عليك
ليس فقط اكتب --write في سطر الأوامر ولكن يجب عليك كتابة "كلمة المرور" ردًا على سؤال
ستتم مطالبتك بـ. في معظم الحالات، لن ترغب في استخدام دعم الكتابة لأنه قد يؤدي إلى ذلك
الفساد أو تعديل البيانات في تفريغ الذاكرة الخاصة بك. ومع ذلك، توجد حالات خاصة تجعل هذا
ميزة مثيرة للاهتمام حقا. على سبيل المثال، يمكنك تنظيف النظام المباشر من بعض البرامج الضارة عن طريق
الكتابة إلى ذاكرة الوصول العشوائي (RAM) عبر سلك الحماية، أو يمكنك اقتحام محطة عمل مقفلة عن طريق تصحيح وحدات البايت في ملف
ملفات DLL الخاصة بـ Winlogon.
تحديد إضافية المساعد الدلائل
يمكن لبنية المكونات الإضافية الخاصة بـ Volatility تحميل ملفات المكونات الإضافية من أدلة متعددة في وقت واحد. في ال
كود مصدر التقلب، معظم المكونات الإضافية موجودة في التقلبات/المكونات الإضافية. ومع ذلك، هناك آخر
الدليل (التقلب/المساهمة) المخصص للمساهمات من مطوري الطرف الثالث، أو
المكونات الإضافية المدعومة بشكل ضعيف والتي لا يتم تمكينها افتراضيًا. للوصول إلى هذه المكونات الإضافية، عليك فقط
اكتب --plugins=contrib/plugins في سطر الأوامر. كما يمكّنك من إنشاء دليل منفصل
من المكونات الإضافية الخاصة بك والتي يمكنك إدارتها دون الحاجة إلى إضافة/إزالة/تعديل الملفات في المركز
أدلة التقلب.
الملاحظات:
* في أنظمة دبيان، يوجد دليل المساهمة/المكونات الإضافية في /usr/share/volatility/contrib/plugins.
* سيتم أيضًا اجتياز الدلائل الفرعية طالما يوجد ملف __init__.py (والذي يمكن أن يكون فارغًا)
بداخلهم.
* يمكن أيضًا أن تكون المعلمة الخاصة بـ --plugins ملفًا مضغوطًا يحتوي على المكونات الإضافية مثل
مثل --plugins=myplugins.zip. نظرًا لطريقة تحميل المكونات الإضافية، فإن دليل المكونات الإضافية الخارجية
أو يجب تحديد ملف مضغوط قبل أي وسيطات خاصة بالمكون الإضافي (بما في ذلك اسم ملف
توصيل في). مثال:
تقلب $ --plugins=contrib/plugins -f XPSP3x86.vmem مثال
اختيار تنسيق الإخراج
بشكل افتراضي، تستخدم المكونات الإضافية أجهزة عرض النص للإخراج القياسي. إذا كنت ترغب في إعادة التوجيه إلى ملف، يمكنك
يمكنك بالطبع استخدام إعادة توجيه وحدة التحكم (على سبيل المثال > out.txt) أو يمكنك استخدام --output-file=out.txt.
السبب الذي يجعلك تختار أيضًا --output=FORMAT هو السماح للمكونات الإضافية بعرض الإخراج بتنسيق HTML أيضًا،
JSON، SQL، أو أي شيء تختاره. ومع ذلك، لا توجد مكونات إضافية بتنسيقات الإخراج البديلة تلك
تم تكوينها مسبقًا للاستخدام، لذا ستحتاج إلى إضافة وظيفة باسم render_html، و render_json، و render_sql،
على التوالي لكل مكون إضافي قبل استخدام --output=HTML.
خيارات محددة للبرنامج المساعد
تقبل العديد من المكونات الإضافية الوسائط الخاصة بها، والتي تكون مستقلة عن الخيارات العامة. لرؤية ال
قائمة الخيارات المتاحة، اكتب اسم البرنامج المساعد و -h/--help في سطر الأوامر.
قائمة دلل التقلب $ -h
وضع التصحيح
إذا لم يحدث شيء ما في Volatility بالطريقة المتوقعة، فحاول تشغيل الأمر باستخدام -d/--debug.
سيؤدي هذا إلى تمكين طباعة رسائل تصحيح الأخطاء القياسية. لمزيد من مستويات التصحيح، كما هو الحال في الاستخدام
pdb debugger)، أضف -d -d -d إلى الأمر.
استخدام التقلب كمكتبة
على الرغم من أنه من الممكن استخدام Volatility كمكتبة، (هناك خطط لدعمها بشكل أفضل في
مستقبل). حاليًا، لاستيراد التقلبات من برنامج نصي بيثون، يمكن استخدام رمز المثال التالي:
$ بيثون
>>> قم باستيراد Volatility.conf كـ conf
>>> استيراد volatility.registry كتسجيل
>>> التسجيل.PluginImporter()
>>> التكوين = conf.ConfObject()
>>> استيراد Volatility.commands كأوامر
>>> قم باستيراد volatility.addrspace كـ addrspace
>>>register.register_global_options(config, Commands.Command)
>>>register.register_global_options(config, addrspace.BaseAddressSpace)
>>> config.parse_options()
>>> config.PROFILE="WinXPSP2x86"
>>> config.LOCATION = "ملف:///media/memory/private/image.dmp"
>>> قم باستيراد volatility.plugins.taskmods كتعديلات المهام
>>> ع = Taskmods.PSList(config)
>>> للعملية في p.calculate():
...عملية الطباعة
أمثلة
لرؤية جميع المكونات الإضافية وملفات التعريف وعمليات فحص الماسح الضوئي ومساحات العناوين المتاحة:
تقلب $ --معلومات
لسرد جميع العمليات النشطة الموجودة في نظام التشغيل MS Windows 8 SP0 صورة:
تقلب $ -f win8.raw --profile=Win8SP0x86 pslist
لسرد جميع العمليات النشطة الموجودة في نظام التشغيل MS Windows 8 SP0 صورة، باستخدام المنطقة الزمنية:
تقلب $ -f win8.raw --profile=Win8SP0x86 pslist --tz=America/Sao_Paulo
لإظهار kernel bnuffer من Linux 3.2.63 صورة:
$ التقلب -f mem.dd --profile=Linux_3_2_63_x64 linux_dmesg
الملاحظات
استندت هذه الصفحة إلى بعض الاختبارات والعديد من الوثائق الرسمية حول التقلبات. ل
معلومات ودروس أخرى، راجع:
· http://www.volatilityfoundation.org
· https://github.com/volatilityfoundation/التقلبات/ ويكي
استخدم التقلبات عبر الإنترنت باستخدام خدمات onworks.net