VirtualBox

vbox的更動 57125 路徑 trunk/src/VBox/Debugger


忽略:
時間撮記:
2015-7-30 上午10:16:39 (9 年 以前)
作者:
vboxsync
訊息:

DBGPlugInWinNt.cpp: With windows 10/AMD64 there is more kernel space that needs searching.

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Debugger/DBGPlugInWinNt.cpp

    r56986 r57125  
    7171
    7272/**
    73  * PsLoadedModuleList entry for 32-bit NT aka LDR_DATA_TABLE_ENTRY.
    74  * Tested with XP.
    75  *
    76  * @todo This is incomplete and just to get rid of warnings.
     73 * PsLoadedModuleList entry for 64-bit NT aka LDR_DATA_TABLE_ENTRY.
    7774 */
    7875typedef struct NTMTE64
     
    953950     */
    954951    CPUMMODE        enmMode = DBGFR3CpuGetMode(pUVM, 0 /*idCpu*/);
    955     uint64_t const  uStart  = enmMode == CPUMMODE_LONG ? UINT64_C(0xfffff80000000000) : UINT32_C(0x80001000);
     952    uint64_t const  uStart  = enmMode == CPUMMODE_LONG ? UINT64_C(0xffff080000000000) : UINT32_C(0x80001000);
    956953    uint64_t const  uEnd    = enmMode == CPUMMODE_LONG ? UINT64_C(0xffffffffffff0000) : UINT32_C(0xffff0000);
    957954    DBGFADDRESS     KernelAddr;
     
    10611058                    &&  pHdrs->FileHeader.SizeOfOptionalHeader      == sizeof(pHdrs->OptionalHeader)
    10621059                    &&  pHdrs->FileHeader.NumberOfSections          >= 10 /* the kernel has lots */
    1063                     &&  (pHdrs->FileHeader.Characteristics & (IMAGE_FILE_EXECUTABLE_IMAGE | IMAGE_FILE_DLL)) == IMAGE_FILE_EXECUTABLE_IMAGE
     1060                    &&      (pHdrs->FileHeader.Characteristics & (IMAGE_FILE_EXECUTABLE_IMAGE | IMAGE_FILE_DLL))
     1061                         == IMAGE_FILE_EXECUTABLE_IMAGE
    10641062                    &&  pHdrs->OptionalHeader.Magic                 == IMAGE_NT_OPTIONAL_HDR64_MAGIC
    10651063                    &&  pHdrs->OptionalHeader.NumberOfRvaAndSizes   == IMAGE_NUMBEROF_DIRECTORY_ENTRIES
     
    10771075                    while (RT_SUCCESS(rc))
    10781076                    {
    1079                         /* check the name. */
     1077                        /* Read the start of the MTE and check some basic members. */
    10801078                        DBGFADDRESS MteAddr = HitAddr;
    10811079                        rc = DBGFR3MemRead(pUVM, 0 /*idCpu*/, DBGFR3AddrSub(&MteAddr, RT_OFFSETOF(NTMTE64, DllBase)),
     
    10921090                            )
    10931091                        {
     1092                            /* Try read the base name and compare with known NT kernel names. */
    10941093                            rc = DBGFR3MemRead(pUVM, 0 /*idCpu*/, DBGFR3AddrFromFlat(pUVM, &Addr, uMte2.v64.BaseDllName.Buffer),
    10951094                                               u.wsz, uMte2.v64.BaseDllName.Length);
     
    11011100                               )
    11021101                            {
     1102                                /* Read the link entry of the previous entry in the list and check that its
     1103                                   forward pointer points at the MTE we've found. */
    11031104                                rc = DBGFR3MemRead(pUVM, 0 /*idCpu*/,
    11041105                                                   DBGFR3AddrFromFlat(pUVM, &Addr, uMte2.v64.InLoadOrderLinks.Blink),
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette