Код (Text): typedef struct _SERVICE_DESCRIPTOR_TABLE { PVOID *ServiceTable; PULONG CounterTable; ULONG TableSize; PUCHAR ArgumentTable; } SERVICE_DESCRIPTOR_TABLE, *PSERVICE_DESCRIPTOR_TABLE; DbgPrint("SSDT Count: 0x%X\nSSDT Count(ULONG): %lu\n",KeServiceDescriptorTable->TableSize,(ULONG)KeServiceDescriptorTable->TableSize); Выводит SSDT Count: 0x805E0F55 SSDT Count(ULONG): 2153647957 -- KeServiceDescriptorTable->TableSize это ведь количество записей в таблице, так? Но я дико сомневаюсь, что ssdt содержит столько записей.
Код (Text): typedef struct _SYSTEM_SERVICE_TABLE { PNTPROC ServiceTable; ULONG *CounterTable; ULONG ServiceLimit; BYTE *ArgumentTable; }SYSTEM_SERVICE_TABLE, * PSYSTEM_SERVICE_TABLE, * * PPSYSTEM_SERVICE_TABLE ; typedef struct _SERVICE_DESCRIPTOR_TABLE { SYSTEM_SERVICE_TABLE ntoskrnl; //SST для ntoskrnl.exe SYSTEM_SERVICE_TABLE win32k; //SST для win32k.sys SYSTEM_SERVICE_TABLE unused1; //не используется SYSTEM_SERVICE_TABLE unused2; //не используется }SERVICE_DESCRIPTOR_TABLE, * PSERVICE_DESCRIPTOR_TABLE, * * PPSERVICE_DESCRIPTOR_TABLE ; extern PSERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable; Однако...
DbgPrint("SSDT Count: 0x%X\nSSDT Count(ULONG): %lu\n",KeServiceDescriptorTable->ntoskrnl.ServiceLimit,(ULONG)KeServiceDescriptorTable->ntoskrnl.ServiceLimit); SSDT Count: 0x805E0F55 SSDT Count(ULONG): 2153647957
Даже не знаю что сказать... DbgPrint("Count: 0x%p", KeServiceDescriptorTable->ntoskrnl.ServiceLimit); Count: 0x00000129
что-то я по ссылке выше решения не нашел, впрочем как и поиском. Да, где-то Clerk упоминал про смещение, я так понимаю нужно использовать #pragma pack(1) ? статей бы по теме, насколько я понял смещение появляется только в xp и выше?
А почему нельзя сделать мап, а оттуда уже выковыривать всё что нужно? тогда можно даже и с преобразованием оффсетов не возиться - система сразу загрузит секции по нужным адресам.
d2k9 Умник, ещё раз для непонятливых, качай SDTRestore и разбирайся. Да она для r3. Да она опенсурс. Да это можно приспособить для анхука. Да ты не умник. И да я знаю гораздо больше тебя.
reader323 И чё ты прицепился? Надоело сосать лапу? Я сам решу что мне делать. А знаешь ты только как в воздух пукать.
Ухаха, нашёл дров написанный на дельфи который анхукает SSDT теневую таблицу и сработал без всяких правок с 1-ого раза (всякие примеры от мс-рема со встроенным LDasm и т.д. систему в бсод уводили) - йа в шоке, перевожу на Си