помогите с NtOpenProcess

Тема в разделе "WASM.WIN32", создана пользователем dead_body, 10 ноя 2004.

  1. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    Скачал значит *The Undocumented Functions Microsoft Windows NT/2000* и сижу разбираюсь, но никак не получается открыть процесс с помощью NtOpenProcess возвращает 80000002(OUTOFMEMORY)

    а делаю все как надо:

    push offset ClientId

    push offset ObjectAttributes(первый байт=18h)

    И каков должен быть размер ObjectAttributes?

    push PROCESS_ALL_ACCESS

    push offset OUT_PROCESS_HANDLE

    А должен ли OUT_PROCESS_HANDLE содержать processId?

    (хотя пробовал и так и так)

    Подскажите в чем дело(кроме кривых рук).
     
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    > push PROCESS_ALL_ACCESS



    А тебе никто и не обещал с такими правами открытие процесса, возможно система воспротивилась если ты под юзером или ещё там чего...

    Да и некорректно открывать процесс с такими правами доступа, тем более они все вряд ли тебе нужны :derisive:
     
  3. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    >возможно система воспротивилась если ты под юзером

    А когда вызываю через OpenProcess то не противиться?

    А сижу под админом и открываю explorer.exe

    И забыл:сижу на XP Pro SP1
     
  4. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Ты выровнял структуры? Попробуй поставить align 4 перед ObjectAttributes
     
  5. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Я бы грешил на неправильно переданные параметры...

    Вот тебе пример вызова на С:


    Код (Text):
    1.  
    2. OBJECT_ATTRIBUTES oa = {sizeof(oa)};
    3. CLIENT_ID cid = {TargetPID, 0};
    4. HANDLE hTarget;
    5. NTSTATUS Result = NtOpenProcess(&hTarget, PROCESS_ALL_ACCESS, &oa, &cid);
    6.  
     
  6. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Для компиляции потребуется KmdKit (лежит на этом сайте). С Windows.inc не совместим.


    Код (Text):
    1.  
    2. .386
    3. .model flat, stdcall
    4. option casemap:none
    5.  
    6. ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
    7. ;                                  I N C L U D E   F I L E S                                        
    8. ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
    9.  
    10. include \masm32\include\kernel32.inc
    11. include \masm32\include\w2k\ntdll.inc
    12. include \masm32\include\w2k\ntddk.inc
    13. include \masm32\include\w2k\ntstatus.inc
    14.  
    15. includelib \masm32\lib\kernel32.lib
    16. includelib \masm32\lib\w2k\ntdll.lib
    17.  
    18. include \masm32\Macros\Strings.mac
    19.  
    20. ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
    21. ;                                       C O D E                                                    
    22. ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
    23.  
    24. .code
    25.  
    26. ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
    27. ;                                         start                                                    
    28. ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
    29.  
    30. start proc
    31.  
    32. local hProcess:HANDLE
    33. local oa:OBJECT_ATTRIBUTES
    34. local cid:CLIENT_ID
    35.  
    36.     InitializeObjectAttributes addr oa, NULL, OBJ_CASE_INSENSITIVE, NULL, NULL
    37.  
    38.     mov cid.UniqueProcess, 1100     ; Your process ID. You've got it somehow.
    39.     mov cid.UniqueThread, 0
    40.  
    41.     invoke ZwOpenProcess, addr hProcess, PROCESS_ALL_ACCESS, addr oa, addr cid
    42.     .if eax == STATUS_SUCCESS
    43.    
    44.         invoke ZwClose, hProcess
    45.     .endif
    46.  
    47.     invoke ExitProcess, 0
    48.     ret
    49.  
    50. start endp
    51.  
    52. ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
    53. ;                                                                                                  
    54. ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::
    55.  
    56. end start
    57.  
     
  7. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    Все спасибо за оперативную помощью Надо всего было поставить align 4 и правильно поработать с OBJECT_ATTRIBUTES.

    И не подскажите, а где можно взять инфу об кейлогерре который бы работал через драйвер, и если мне не изменяет память, то там что-то обещал по поводу этой темы Four-F?
     
  8. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Four-F



    А чем отличается ZwOpenProcess от NtOpenProcess?

    В импорте kernel32 кажется Nt или я что-то путаю?

    Мне это нужно для плагина знать :derisive:
     
  9. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    Asterix

    названием. так думает PeBrowsePro

    GetProcAddress c NtOpenProcess делаеш

    а он пишет что eax==ZwOpenProcess

    И точка входа у них одна,если верит PeBrowsePro
     
  10. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    [ Asterix: <font color="indigo]А чем отличается ZwOpenProcess от NtOpenProcess?</font><!--color--> ]



    Для ntdll ничем. Это синонимы. Для ядра отличаются. Я имею ввиду префиксы Zw и Nt вообще.







    [ dead_body: <font color="indigo]И не подскажите, а где можно взять инфу об кейлогерре который бы работал через драйвер, и если мне не изменяет память, то там что-то обещал по поводу этой темы Four-F?</font><!--color--> ]



    Первая часть статьи написана и во вторник отослана Aquila. Если он её получил, то на днях выложит, наверное. Но там пока арт-подготовка. Фильтр будет в следующей статье. Пример готового "кейлогерра, который бы работал через драйвер" можно взять на rootkit.com: проект называется klog.