@@ -369,17 +369,17 @@ NTSTATUS BBInitDynamicData( IN OUT PDYNAMIC_DATA pData )
369
369
else if (verInfo .dwBuildNumber == 15063 )
370
370
{
371
371
pData -> ver = WINVER_10_CU ;
372
- pData -> KExecOpt = 0x0 ;
373
- pData -> Protection = 0x0 ;
374
- pData -> ObjTable = 0x0 ;
375
- pData -> VadRoot = 0x620 ;
376
- pData -> NtCreateThdIndex = 0x0 ;
377
- pData -> NtTermThdIndex = 0x0 ;
378
- pData -> PrevMode = 0x0 ;
379
- pData -> ExitStatus = 0x0 ;
372
+ pData -> KExecOpt = 0x1BF ;
373
+ pData -> Protection = 0x6CA ;
374
+ pData -> ObjTable = 0x418 ;
375
+ pData -> VadRoot = 0x628 ;
376
+ pData -> NtCreateThdIndex = 0xB9 ;
377
+ pData -> NtTermThdIndex = 0x53 ;
378
+ pData -> PrevMode = 0x232 ;
379
+ pData -> ExitStatus = 0x6F8 ;
380
380
pData -> MiAllocPage = 0 ;
381
- if (NT_SUCCESS (BBScanSection ("PAGE" , (PCUCHAR )"\x48\x8D\x7D\x18 \x48\x8B " , 0xCC , 6 , (PVOID )& pData -> ExRemoveTable )))
382
- pData -> ExRemoveTable -= 0x60 ;
381
+ if (NT_SUCCESS (BBScanSection ("PAGE" , (PCUCHAR )"\x48\x8B\x47\x20 \x48\x83\xC7\x18 " , 0xCC , 8 , (PVOID )& pData -> ExRemoveTable )))
382
+ pData -> ExRemoveTable -= 0x34 ;
383
383
384
384
status = BBLocatePageTables ( pData );
385
385
break ;
@@ -429,8 +429,11 @@ NTSTATUS BBLocatePageTables( IN OUT PDYNAMIC_DATA pData )
429
429
pData -> DYN_PDE_BASE = * (PULONG_PTR )(pMiGetPhysicalAddress + 0x49 + 2 );
430
430
pData -> DYN_PTE_BASE = * (PULONG_PTR )(pMiGetPhysicalAddress + 0x56 + 2 );
431
431
}
432
+
433
+ DPRINT ( "BlackBone: PDE_BASE: %p, PTE_BASE: %p\n" , pData -> DYN_PDE_BASE , pData -> DYN_PTE_BASE );
432
434
return STATUS_SUCCESS ;
433
435
}
434
436
437
+ DPRINT ( "BlackBone: PDE_BASE/PTE_BASE not found \n" );
435
438
return STATUS_NOT_FOUND ;
436
439
}
0 commit comments