سؤال

هل هناك طريقة سهلة لمعرفة اسم المضيف للجهاز الذي أنشأ ملف تفريغ وضع المستخدم عبر WinDbg؟

أو على الأقل أي جزء من المعلومات التعريفية لمحاولة التأكد من أن ملفي التفريغ جاءا من نفس النظام.

هل كانت مفيدة؟

المحلول

يمكنك القيام بذلك عن طريق تحليل ملف تفريغ المستخدم باستخدام WinDbg.تشغيل !peb الأمر والبحث عن قيمة COMPUTERNAME في مخرجاتها.

نصائح أخرى

من debugger.chm:

البحث عن اسم الكمبيوتر في ملف تفريغ وضع Kernel

إذا كنت بحاجة إلى تحديد اسم الكمبيوتر الذي تم إجراء تفريغ التعطل عليه، فيمكنك استخدام الملحق !peb والبحث عن قيمة COMPUTERNAME التي تم إخراجها.

أو يمكنك استخدام الأمر التالي:

0: kd> x srv!SrvComputerName
be8ce2e8  srv!SrvComputerName  = _UNICODE_STRING "AIGM-MYCOMP-PUB01"

العثور على عنوان IP في ملف تفريغ وضع Kernel

لتحديد عنوان IP الخاص بالكمبيوتر الذي تم إجراء تفريغ التعطل عليه، ابحث عن مكدس مؤشر الترابط الذي يعرض بعض أنشطة شبكة الإرسال/التلقي.افتح إحدى حزم الإرسال أو استقبل الحزم.سيكون عنوان IP مرئيًا في تلك الحزمة.

يحرر:سألاحظ أنه اعتمادًا على كيفية إنشاء ملف التفريغ، قد لا تكون معلومات PEB متاحة وبالتالي لن تكون كذلك دائماً تكون قادرة على العثور على اسم الكمبيوتر.خاصة إذا جاء شيء ما عبر موقع Microsoft Winqual، فقد تم تطهيره.

استخدام الاختصار لمتغيرات البيئة في PEB:!envvar اسم الكمبيوتر

للحصول على قائمة عناوين IP:
3:kd> دو poi(poi(srvnet!SrvAdminIpAddressList))
ffffe001d3d58450 "127.0.0.1" 3: kd> du
ffffe001
d3d58464 "::1"
3:دينار كويتي>
ffffe001d3d5846c "169.254.66.248"
3: kd>
ffffe001
d3d5848a ""
3:دينار كويتي>
ffffe001d3d5848c "fe80::f0cb:5439:f12f:42f8"
3: kd>
ffffe001
d3d584c0 ""
3:KD> FFFFE001d3d584c2 "192.168.104.249" 3: kd> ffffe001d3d584e2 ""
3:دينار كويتي>
fffe001`d3d584e4 "fe80::fc6f:ae16:b336:83dc"
3:دينار كويتي>

في كل من وضع kernel ووضع المستخدم،

10: kd> !envvar COMPUTERNAME
COMPUTERNAME = a-host-name

يسترد اسم الكمبيوتر المعروف أيضًا باسم اسم مضيف الكمبيوتر المستهدف.

يتطلب EXTS.dll الامتداد المراد تحميله، ونظام التشغيل Windows XP+ (W10 RS3 في وقت كتابة هذا التقرير).

في وضع النواة، لا يعمل هذا بشكل مباشر، !envvar سيعود فارغا

10: kd> !peb
PEB NULL...

السياق الحالي الخاص بك هو موضوع خامل.

مساعدة WinDbg (Windows 10 RS3 16299.15 SDK). !process يسرد فقط البتات 0-4، لكنني وجدت أن البت 5 يتخلص من البيئة بأكملها عند استخدامه مع 0 و4.أعلام = 0b110001.لذلك أستخدم هذا أثناء البرنامج النصي لبدء تشغيل WinDbg لتسجيل اسم الكمبيوتر تلقائيًا.

!process 0 0x31 wininit.exe

سيتم تفريغ كافة متغيرات البيئة:

10: kd> !process 0 0x31 wininit.exe
PROCESS ffffc485c82655c0
    SessionId: 0  Cid: 02d0    Peb: 8d04c6b000  ParentCid: 0258
    DirBase: 40452f000  ObjectTable: ffffe30b1150fb40  HandleCount: 163.
    Image: wininit.exe
    VadRoot ffffc485c862b990 Vads 61 Clone 0 Private 326. Modified 12. Locked 2.
    DeviceMap ffffe30b0a817880
    Token                             ffffe30b1150f060
    ElapsedTime                       00:00:18.541
    UserTime                          00:00:00.000
    KernelTime                        00:00:00.015
    QuotaPoolUsage[PagedPool]         121696
    QuotaPoolUsage[NonPagedPool]      11448
    Working Set Sizes (now,min,max)  (1750, 50, 345) (7000KB, 200KB, 1380KB)
    PeakWorkingSetSize                1697
    VirtualSize                       2097239 Mb
    PeakVirtualSize                   2097239 Mb
    PageFaultCount                    2104
    MemoryPriority                    BACKGROUND
    BasePriority                      13
    CommitCharge                      470

    PEB at 0000008d04c6b000            
    InheritedAddressSpace:    No
    ReadImageFileExecOptions: No
    BeingDebugged:            No
    ImageBaseAddress:         00007ff7be3d0000
    Ldr                       00007ff8dff4f3a0
    Ldr.Initialized:          Yes
    Ldr.InInitializationOrderModuleList: 000001be470e1c10 . 000001be47128d60
    Ldr.InLoadOrderModuleList:           000001be470e1d80 . 000001be47128d40
    Ldr.InMemoryOrderModuleList:         000001be470e1d90 . 000001be47128d50
                    Base TimeStamp                     Module
            7ff7be3d0000 600d94df Jan 24 10:40:15 2021 C:\Windows\system32\wininit.exe
            7ff8dfdf0000 493793ea Dec 04 03:25:14 2008 C:\Windows\SYSTEM32\ntdll.dll
...
    SubSystemData:     0000000000000000
    ProcessHeap:       000001be470e0000
    ProcessParameters: 000001be470e1460
    CurrentDirectory:  'C:\Windows\system32\'
    WindowTitle:  '< Name not readable >'
    ImageFile:    'C:\Windows\system32\wininit.exe'
    CommandLine:  'wininit.exe'
    DllPath:      '< Name not readable >'
    Environment:  000001be47104460
        ALLUSERSPROFILE=C:\ProgramData
        CommonProgramFiles=C:\Program Files\Common Files
        CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
        CommonProgramW6432=C:\Program Files\Common Files
        COMPUTERNAME=a-host-name
        ComSpec=C:\Windows\system32\cmd.exe
        NUMBER_OF_PROCESSORS=16
        OS=Windows_NT
        Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
        PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
        PROCESSOR_ARCHITECTURE=AMD64
        PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 1 Stepping 1, AuthenticAMD
        PROCESSOR_LEVEL=23
        PROCESSOR_REVISION=0101
        ProgramData=C:\ProgramData
        ProgramFiles=C:\Program Files
        ProgramFiles(x86)=C:\Program Files (x86)
        ProgramW6432=C:\Program Files
        PSModulePath=%ProgramFiles%\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
        PUBLIC=C:\Users\Public
        SystemDrive=C:
        SystemRoot=C:\Windows
        TEMP=C:\temp
        TMP=C:\temp
        USERNAME=SYSTEM
        USERPROFILE=C:\Windows\system32\config\systemprofile
        windir=C:\Windows

يمكنك النقر فوق رابط PEB dml أو تبديل السياق عبره .process /p <PROCESS_ADDRESS>, ، ثم !envvar COMPUTERNAME سوف تعمل أيضا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top