Опять ZwCreateFile...

Тема в разделе "WASM.BEGINNERS", создана пользователем steelfactor, 11 дек 2007.

  1. steelfactor

    steelfactor New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    501
    Вот код, несложный, фактически передрал с Нэббета -
    Код (Text):
    1. NTSTATUS DriverEntry(IN PDRIVER_OBJECT  driverObject, IN PUNICODE_STRING registryPath)
    2. {
    3.     UNICODE_STRING exe_file;
    4.     HANDLE hFile, haupt_section, hSection, hProcess;
    5.     RtlInitUnicodeString(&exe_file, L"\\DosDevices\\C:\\file.exe");
    6.        OBJECT_ATTRIBUTES оа = {sizeof(OBJECT_ATTRIBUTES), hFile, &exe_file, OBJ_CASE_INSENSITIVE};
    7.     status = ZwOpenFile(&haupt_section, FILE_EXECUTE | SYNCHRONIZE,&oa, &iosb, FILE_SHARE_READ, FILE_SYNCHRONOUS_IO_NONALERT);
    8.     oa.ObjectName = NULL;
    9.     status = ZwCreateSection(&hSection, SECTION_ALL_ACCESS, &oa, 0, PAGE_EXECUTE, SEC_IMAGE, haupt_section);
    10.     ZwClose(haupt_section);
    11.     status = ZwCreateProcess(&hProcess, PROCESS_ALL_ACCESS, &oa, IoGetCurrentProcess(), TRUE, hSection, 0, 0);
    12.  
    13.     return status;
    14. }
    ZwOpenFile и ZwCreateSection отрабатывают нормально, но на вызове ZwCreateProcess драйвер даже не стартует. В ZwCreateProcess менял параметры как только можно, но все равно... Где туплю?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    не понял при чем тут драйвер.. статус то какой?
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    нифигасебе, там хендл передавать надо родительского процесса, а не указатель на блок EPROCESS
     
  4. steelfactor

    steelfactor New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    501
    Да знаю я..... :dntknw:((
    Я ж говорю, в ZwCreateProcess менял параметры как только можно - параметр InheritFromProcessHandle менял от NtCurrentProcess() до (HANDLE)0xFFFFFFFF (как в ZW)....
    PsGetCurrentProcess() вставил от "а вдруг сработает, бугага???" :dntknw: