SDTs

Тема в разделе "WASM.WIN32", создана пользователем DeHunter, 25 дек 2005.

  1. DeHunter

    DeHunter New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    80
    Адрес:
    Ukraine/Kiev
    Здраствуйте.

    Скажите пожалуста как можно получить имя функции по её номеру в сдт. Тоесть к примеру у меня есть номер функции в Сустем сервис тейбл. Я знаю в какой Сдт она находится. Как получить имя функци ? Ешё вопрос - как получить аддресс KeServiceDescriptorShadowTable ? Спасибо.
     
  2. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"


    Путем сканирования экспортов ntdll и поиска функции с нужным номером.





    Во-первых, не KeServiceDescriptorShadowTable, а KeServiceDescriptorTableShadow

    А вот и код:
    Код (Text):
    1. PSERVICE_DESCRIPTOR_TABLE
    2.       GetKeServiceDescriptorTableShadow()
    3. {
    4.     PUCHAR cPtr, pOpcode;
    5.     ULONG Length;
    6.    
    7.     for (cPtr = (PUCHAR)KeAddSystemServiceTable;
    8.          cPtr < (PUCHAR)KeAddSystemServiceTable + PAGE_SIZE;
    9.          cPtr += Length)
    10.     {
    11.         if (!MmIsAddressValid(cPtr)) break;
    12.  
    13.         Length = SizeOfCode(cPtr, &pOpcode);
    14.  
    15.         if (!Length || (Length == 1 && *pOpcode == 0xC3)) break;
    16.        
    17.         if (*(PUSHORT)pOpcode == 0x888D)
    18.         {
    19.             return *(PVOID *)(pOpcode + 2);
    20.         }
    21.     }
    22.  
    23.    return NULL;
    24. }
     
  3. DeHunter

    DeHunter New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    80
    Адрес:
    Ukraine/Kiev
    Я просматривал экспорты нтдлл и они не совпадают с номерами. В нтдлл вроде бы содержатся переходники и реальные функции. Веротяно по этому не совпадает. А этот Тайбл шадов нильзя никак засунуть в импорт ?
     
  4. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"


    Блин, а то что вначале каждой соответствующей ntdll функции стоит mov eax, number тебе ни о чем не говорит?





    Ну дык ты головой подумай, как можно засунуть в импорт то, что не экспортуруется. Сначала как минимум надо создать соответствующий экспорт.
     
  5. DeHunter

    DeHunter New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    80
    Адрес:
    Ukraine/Kiev
    Спасибо.