Последний раз о killprocess

Тема в разделе "WASM.WIN32", создана пользователем Flasher, 9 дек 2004.

  1. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Хочу убить winlogon.exe

    Вот, обясните пожайлуста, - получаю привилегии, что дальше делать?

    Пытаюсь грохать, но некаких реакций...


    Код (Text):
    1. .data
    2. szNamee db "SE_DEBUG_NAME"
    3. pr PROCESSENTRY32 <?>
    4. hs dword ?
    5.  
    6. .code
    7. Privilegii proc
    8.     local hToken:HANDLE
    9.     local tkp:TOKEN_PRIVILEGES
    10.     invoke GetCurrentProcess
    11.     mov ecx,eax
    12.     invoke OpenProcessToken,ecx,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,addr hToken
    13.     .if eax != 0
    14.       invoke LookupPrivilegeValue,0,addr szNamee,addr tkp.Privileges.Luid
    15.       .if eax != 0
    16.         mov tkp.PrivilegeCount,1
    17.         mov tkp.Privileges.Attributes,SE_PRIVILEGE_ENABLED
    18.         invoke AdjustTokenPrivileges,hToken,0,addr tkp,0,0,0
    19.         .if eax != 0
    20.           invoke GetLastError
    21.           .if eax == ERROR_SUCCESS
    22.             mov eax,1
    23.           .else
    24.             xor eax,eax
    25.           .endif
    26.         .endif
    27.       .endif
    28.       push eax
    29.       invoke CloseHandle,hToken
    30.       pop eax
    31.     .endif
    32.     ret
    33. Privilegii endp
    34. start:
    35.        invoke Privilegii
    36.  
    37.        @Q:mov pr.dwSize,sizeof PROCESSENTRY32
    38.        invoke CreateToolhelp32Snapshot,2,0
    39.        mov dword ptr [hs],eax
    40.        invoke Process32First,dword ptr [hs],offset pr
    41.        @@:test eax,eax
    42.        jz @E
    43.        invoke MessageBoxA,0,offset pr.szExeFile,$CTA0('process'),0
    44.        invoke lstrcmp,offset pr.szExeFile,$CTA0('WINLOGON.EXE')
    45.         test eax,eax
    46.         jz @K
    47.        @N:invoke Process32Next,dword ptr [hs],offset pr
    48.        jmp @B
    49.        @K:invoke OpenProcess,0001h,0,pr.th32ProcessID
    50.         test eax,eax
    51.         jz short @N
    52.        invoke TerminateProcess,eax,0
    53.        invoke CloseHandle,eax
    54.        jmp short @N
    55.        @E:invoke CloseHandle,dword ptr [hs]
    56.        invoke ExitProcess,0
    57. end start
     
  2. vinnie_pooh

    vinnie_pooh New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    98
    В коде вроде бы все правильно. Так ты получаешь hProcess, или TerminateProcess не работает? Я попробовал на Си - winlogon убивается исправно. Но когда я набрал WINLOGON.EXE большими буквами, как у тебя, то не получил hProcess. Попробуй маленькими.
     
  3. vinnie_pooh

    vinnie_pooh New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    98
    Sorry, прогнал, наверное у тебя XP. Кажется, ошибка в Privilegii: у тебя

    szNamee db "SE_DEBUG_NAME"

    а в WINNT.H:

    #define SE_DEBUG_NAME TEXT("SeDebugPrivilege")
     
  4. dead_body

    dead_body wasm.ru

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

    push eax

    push ADJUST_CURRENT_PROCESS

    push 1

    push SE_DEBUG_PRIVILEGE

    Call eax

    pop eax

    eax== address RtlAdjustPrivilege(ntdll)

    successful eax == 0

    SE_DEBUG_PRIVILEGE equ 20

    ADJUST_CURRENT_PROCESS equ 0
     
  5. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    вместо SE_DEBUG_NAME поставил SeDebugPrivilege и всё заработало :)

    Всем посиба, все свободны ;)