CreateThread, CreateRemoteThread, Sleep в ядре

Тема в разделе "WASM.BEGINNERS", создана пользователем nitrotoluol, 1 июн 2007.

  1. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    Собсно нужно создать
    1. Дополнительный поток в драйвере
    2. Дополнительный удаленный поток в чужом драйвере
    3. Как-то написать самопальный Sleep

    Подскажите плз, что и как...
    Заранее сенкс


    ЗЫ: кому не лень, выложите файл winnt.h
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    3. NtDelayExecution
    2. драйверы это и есть набор потоков, разделяющих одно АП.
    1. PsCreateSystemThread
     
  3. sxd

    sxd Виталий

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    56
    Адрес:
    Москва
    Если на Windows API будет
    Код (Text):
    1. Sleep(1000);
    то на уровне ядра делай так:

    Код (Text):
    1. LARGE_INTEGER iDelayInterval;
    2. iDelayInterval.QuadPart = -10000000;
    3. NtDelayExecution(FALSE, &iDelayInterval);
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    NtDelayExecution не экспортируется насколько я помню, так что KeDelayExecutionThread в руки :)
     
  5. sxd

    sxd Виталий

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    56
    Адрес:
    Москва
    - это верно...

    А если так...

    Код (Text):
    1. __declspec(dllimport) NTSYSAPI NTSTATUS NTAPI NtDelayExecution(IN BOOLEAN Alertable, IN PLARGE_INTEGER DelayInterval);
    2.  
    3. LARGE_INTEGER iDelayInterval;
    4. iDelayInterval.QuadPart = -10000000;
    5. NtDelayExecution(FALSE, &iDelayInterval);
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    sxd
    NtDelayExecution ВООБЩЕ не экспортируется ядром. И никакой прототип тут не поможет. Либо искать адрес вручную (гемор), либо вызвать через INT 2E, взяв номер сервиса из ntdll (еще больший гемор), либо просто использовать документированную KeDelayExecutionThread
     
  7. sxd

    sxd Виталий

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    56
    Адрес:
    Москва
    Great
    только что откомпилировал и запустил - пашет на ура, могу и исходник и прогу залить если сомнения возникли ))))))))
     
  8. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    Про разное понятие "ядро" наверное толкуете.
     
  9. sxd

    sxd Виталий

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    56
    Адрес:
    Москва
    )))))))))))))))Наверное........)))))))))))))))
     
  10. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Я не знаю про какое вы ядро, у меня в NTOSKRNL в экспорте кроме KeDelayExecutionThread нет ничего похожего.
    Скрин дать7