能力值:
( LV2,RANK:10 )
2 楼
我看了下特征码没变,还可以用win10 1709。可以正常SSDT HOOK。 //1709 //fffff802`655160be 4c8d15bb071800 lea r10, [nt!KeServiceDescriptorTable(fffff802`65696880)] //fffff802`655160c5 4c8d1df4951600 lea r11, [nt!KeServiceDescriptorTableShadow(fffff802`6567f6c0)]
能力值:
( LV2,RANK:10 )
3 楼
楼主,你代码是怎么发的?
能力值:
( LV9,RANK:280 )
4 楼
PSYSTEM_SERVICE_DESCRIPTOR_TABLE GetSSDTBase(void)
{
#ifdef AMD64
PIMAGE_NT_HEADERS pHdr;
PIMAGE_SECTION_HEADER pFirstSec;
PIMAGE_SECTION_HEADER pSec;
PUCHAR ntosBase;
ntosBase = (PUCHAR)g_ntosbase;
// Already found
if (g_SSDT != NULL)
return g_SSDT;
if (!ntosBase)
return NULL;
pHdr = RtlImageNtHeader(ntosBase);
pFirstSec = (PIMAGE_SECTION_HEADER)(pHdr + 1);
for (pSec = pFirstSec; pSec < pFirstSec + pHdr->FileHeader.NumberOfSections; pSec++)
{
// Non-paged, non-discardable, readable sections
// Probably still not fool-proof enough...
if (pSec->Characteristics & IMAGE_SCN_MEM_NOT_PAGED &&
pSec->Characteristics & IMAGE_SCN_MEM_EXECUTE &&
!(pSec->Characteristics & IMAGE_SCN_MEM_DISCARDABLE) &&
(*(PULONG)pSec->Name != 'TINI') &&
(*(PULONG)pSec->Name != 'EGAP'))
{
PVOID pFound = NULL;
// KiSystemServiceRepeat pattern
UCHAR pattern[] = "\x4c\x8d\x15\xcc\xcc\xcc\xcc\x4c\x8d\x1d\xcc\xcc\xcc\xcc\xf7";
NTSTATUS status = BBSearchPattern(pattern, 0xCC, sizeof(pattern) - 1, ntosBase + pSec->VirtualAddress, pSec->Misc.VirtualSize, &pFound);
if (NT_SUCCESS(status))
{
g_SSDT = (PSYSTEM_SERVICE_DESCRIPTOR_TABLE)((PUCHAR)pFound + *(PULONG)((PUCHAR)pFound + 3) + 7);
return g_SSDT;
}
}
}
return NULL;
#else
return KeServiceDescriptorTable;
#endif
}
from 452K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6p5j5i4u0@1K9q4c8G2L8W2)9J5c8V1u0D9j5h3y4C8j5X3!0F1k6g2)9J5c8R3`.`.
still work for 1803
最后于 2018-9-25 09:22
被hzqst编辑
,原因: