Завершить Процесс

Тема в разделе "WASM.BEGINNERS", создана пользователем gale1238, 21 мар 2009.

  1. gale1238

    gale1238 New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2009
    Сообщения:
    72
    Здравствуйте,
    не получается убить процесс explorer.exe.

    .data
    ProcessName db 'explorer.exe',0
    .data?
    hProcess HANDLE ?
    .code
    start:
    invoke OpenProcess,PROCESS_TERMINATE,FALSE,ProcessName
    mov hProcess,eax
    invoke TerminateProcess,hProcess,0
    invoke CloseHandle,hProcess
    invoke ExitProcess,NULL
    end start
     
  2. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    ProcessName - вместо имени должен быть PID процесса, его нужно предварительно найти. читаем MSDN
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Можно легко уязвимость заюзать, без открытия http://www.virustech.org/f/viewtopic.php?id=82
    Используя "FastExit", типа ссылку передать на xor esp,esp
     
  4. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    нда... :dntknw:
     
  5. gale1238

    gale1238 New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2009
    Сообщения:
    72
    Программа, которая перезагружает оболочку:

    .data
    EndProcess db "taskkill /f /im explorer.exe",0
    RunProcess db "explorer.exe",0
    .data?
    startInfo STARTUPINFO <>
    processInfo PROCESS_INFORMATION <>
    .code
    start:
    invoke CreateProcess,NULL,ADDR EndProcess,NULL,NULL,FALSE,\
    DETACHED_PROCESS or NORMAL_PRIORITY_CLASS,NULL,NULL,ADDR startInfo,ADDR processInfo
    invoke Sleep,1000
    invoke CreateProcess,NULL,ADDR RunProcess,NULL,NULL,FALSE,\
    IDLE_PRIORITY_CLASS,NULL,NULL,ADDR startInfo,ADDR processInfo
    invoke ExitProcess,NULL
    end start

    Хочется реализовать без временной задержки, но не получается - оболочка не загружается.
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    gale1238
    Так не делается. Тебе нужно определить PID проводника. Значит можно найти по какомуто окну, можно системинфо использовать. Потом открыть его и завершить. Перезапускать нет необходимости вручную, так как это сделает винлогон. Просто нужно задать необходимый код завершения процесса. Если ExitStatus = STATUS_WAIT_1(0x1), то проводник не перезапускается, иначе будет перезапущен и в журнале событий записана ошибка.
     
  7. jaja

    jaja New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2008
    Сообщения:
    243
    FASM во все поля
     
  8. gale1238

    gale1238 New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2009
    Сообщения:
    72
    Clerk,
    PID не есть величина постоянная. Перезагрузил компьютер и PID изменился.
     
  9. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    gale1238
    каждый раз нада искать по-новой %)
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    gale1238
    А кто сказал что она постоянная ?
    Кстати к тебе вопрос, как формируется это значение(присваивается процессу) ??
     
  11. gale1238

    gale1238 New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2009
    Сообщения:
    72
    Написал программу, которая перезагружает проводник.
    Теперь нужно поймать момент когда на рабочем столе появляются кнопки и значки.
     
  12. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    И как же? Мне тоже интересно:).
     
  13. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Clerk
    Чему ты учишь людей? Использовать для обычных целей кривые методы? Очень разумно. Может еще для выключения компа юзать какую-нибудь уязвимость, которая в бсод вываливает систему?

    gale1238
    Я плакалъ! :lol: Разумеется речь про _программный_ поиск PID.
    зачем это?
     
  14. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Great
    Почему кривые.. Разрушение стека вполне приличное решение. Темболее это ведь проводник завершается, легальные приложения не завершают его и отрисовку контролов не мониторят.. А открывать процесс этоже не интересно :)
     
  15. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Кривые потому, что ты вырезаешь гланды через задницу) Не спорю - можно конечно, но в некотором софте недопустимо.
    Для решения тривиальных задач советовать разумнее документированные решения.
    Сам баг, бесспорно, интересен, но тут совсем не к месту
     
  16. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Great
    Ну тогда шеллапи пусть юзают. Там функционал более чем достаточный. Посредством их можно сделать практически всё удалённо в проводнике.
     
  17. gale1238

    gale1238 New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2009
    Сообщения:
    72
    .386
    .model flat,stdcall

    option casemap:none

    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\user32.lib
    include \masm32\include\kernel32.inc
    include \masm32\include\user32.inc
    include \masm32\include\windows.inc

    .data
    ProcessName db "explorer.exe",0

    .data?
    hProcessSnap dd ?
    pe32 PROCESSENTRY32 <>
    startInfo STARTUPINFO <>
    processInfo PROCESS_INFORMATION <>
    pt POINT <>

    .code
    start:

    invoke CreateToolhelp32Snapshot,TH32CS_SNAPPROCESS,0
    mov hProcessSnap,eax
    .if hProcessSnap==INVALID_HANDLE_VALUE
    invoke ExitProcess,NULL
    .endif
    mov pe32.dwSize,sizeof pe32
    invoke Process32First,hProcessSnap,addr pe32
    .if !eax
    invoke CloseHandle,hProcessSnap
    invoke ExitProcess,NULL
    .endif
    .WHILE TRUE
    invoke lstrcmpi,addr pe32.szExeFile,addr ProcessName
    .if !eax
    invoke OpenProcess,PROCESS_TERMINATE,0,pe32.th32ProcessID
    mov ebx,eax
    invoke TerminateProcess,ebx,STATUS_WAIT_1
    invoke CloseHandle,ebx
    .endif
    invoke Process32Next,hProcessSnap,addr pe32
    .BREAK .IF !eax
    .ENDW
    invoke CloseHandle,hProcessSnap
    invoke CreateProcess,NULL,ADDR ProcessName,NULL,NULL,FALSE,\
    NORMAL_PRIORITY_CLASS,NULL,NULL,ADDR startInfo,ADDR processInfo

    ;---------------------------дальше не работает-------------------------------------------

    invoke BlockInput,1
    invoke GetCursorPos,ADDR pt
    invoke SetCursorPos,0,0
    invoke mouse_event,MOUSEEVENTF_LEFTDOWN or MOUSEEVENTF_LEFTUP,0,0,0,0
    invoke keybd_event,VK_SHIFT,0,0,0
    invoke keybd_event,VK_F10,0,0,0
    invoke keybd_event,VK_F10,0,KEYEVENTF_KEYUP,0
    invoke keybd_event,VK_SHIFT,0,KEYEVENTF_KEYUP,0
    invoke keybd_event,'I',0,0,0
    invoke keybd_event,'I',0,KEYEVENTF_KEYUP,0
    invoke keybd_event,'A',0,0,0
    invoke keybd_event,'A',0,KEYEVENTF_KEYUP,0
    invoke keybd_event,VK_SHIFT,0,0,0
    invoke keybd_event,VK_F10,0,0,0
    invoke keybd_event,VK_F10,0,KEYEVENTF_KEYUP,0
    invoke keybd_event,VK_SHIFT,0,KEYEVENTF_KEYUP,0
    invoke keybd_event,'I',0,0,0
    invoke keybd_event,'I',0,KEYEVENTF_KEYUP,0
    invoke keybd_event,'T',0,0,0
    invoke keybd_event,'T',0,KEYEVENTF_KEYUP,0
    invoke SetCursorPos,pt.x,pt.y
    invoke BlockInput,0
    invoke ExitProcess,NULL

    end start
     
  18. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Эта что? Arrange - Auto Arrange, Arrange - Type. Нафига?
     
  19. gale1238

    gale1238 New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2009
    Сообщения:
    72
    существует ли api функция, которая позволяет упорядочить значки на рабочем столе?
    Не хочется синтезировать нажатия клавиш.
     
  20. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582