1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Отловить убийство собственного процесса?

Тема в разделе "WASM.BEGINNERS", создана пользователем Rel, 27 ноя 2020.

  1. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    3.874
    Наверное нубский вопрос, но я как то не копал эту тему и что-то это плохо гуглится. Если процесс насильно убивается из вне (диспетчером задач, авером, малварью, из драйвера, чем угодно), можно ли это событие отловить? И в лучшем случае помешать ему, а в худшем случае просто успеть залогировать пользователю это событие? Ну и действие происходит на венде.
     
  2. nullPtr

    nullPtr Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2020
    Сообщения:
    137
    Под типу хукать TerminateProcess, не?

    Я даже хз про блек или вайт. Но малвари убивают себя запуская CreateProcces с cmd со скрытым окном, а аргументы передают задержка на 10 секунд и полный путь программы.
    --- Сообщение объединено, 27 ноя 2020 ---
    или в другом случае хукать любой ShellExecute, CreatePorcess и смотреть что там она делает. Программа может записывать в планировщик.
    Много вариков так-то
     
  3. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.175
  4. nullPtr

    nullPtr Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2020
    Сообщения:
    137
  5. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.189
    Rel,

    Ты ведь нуи и не понимаешь архитектуру, что процесс это окружение для работы потоков. Соответственно может не быть потоков, но останется окружение - обьекты адресное пространство, но процик там ничего выполнять не будет, это лишь будет висеть в памяти. Завершение процесса технически это посылка ядерных сообщений всем тредам, их прибивает планировщик, кванты они больше не получат, так что это событие никак не узнаешь.

    Делай как все крипты - первый процесс рабочий, второй под отладку его. Так твоя задача будет распределена между процессами и узнаешь когда один будет завершён. А они думают что создание сотни клонов чем то помешает крутить визором вот же наивные. Мой например инфицирует загрузчик, что бы реализовать наследование процессов, крутить клоны.
     
  6. nullPtr

    nullPtr Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2020
    Сообщения:
    137
    а что если дизасмить работающий процесс, находить в нем сигнатурно TerminateProcces и перед этим чекать push регситр eax, если туда пихается offset procces - где procces наш процесс (хендл), после хукать OpenProcces и смотреть аргументы и тот ли хендл принимает TerminateProcces

    Отладка в реальном времени. Возможно ли? Или бред?
     
  7. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.175
    nullPtr, а как ты узнаешь, кто именно хочет тебя убить? Все процессы в системе перехватывать?
     
    Indy_ нравится это.
  8. Komrako18

    Komrako18 New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2017
    Сообщения:
    2
    TerminateProcess, TerminateThread на вход принимает хэндл процесса с правами "PROCESS_TERMINATE".
    В драйвере регистрируем callback( https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-obregistercallbacks ) при создании хендла в системе.
    А дальше фильтруем в callback права, ID процесса...

    очевидно что это далеко не все способы, с помощью которых можно убить поток/процесс
     
  9. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.189
    Komrako18,

    Вопрос не просто так, по распределению ресурсов. Если процесс завершается, то соответственно освобождаются обьекты. Но есть перманентный маркер, который остаётся вроде бы, я не помню подробности.

    Из ядра колхозить нельзя - это повесит ось. Пока какой то обьект/механизм ядро будет завершать, ты этому помешаешь, вмешавшись в этот механизм. Это не деадлок, но ось повесит. Ты вначале ядерные синхромеханизмы пойми, прежде чем советы бредовые давать. Ядро построено на синхронизациях, любое действие синхронно. Да и вопрос про юзер, а не про ядро; имея ядерный доступ можно делать что угодно и данный вопрос не имеет смысла.
     
    M0rg0t нравится это.
  10. nullPtr

    nullPtr Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2020
    Сообщения:
    137
    а ну, это я так, мысли в слух были. Как вариант.
    Моя предложка скорее касалась ring3, например как руткит замутить. Например можно отловить диспетчер задач, процесс эксплорер и прч.

    А так Инде прав, если есть доступ на ядре, то можно отловить походу дела.
     
  11. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.189
    nullPtr,

    Да какое ядро, я ведь выше говорил. Протекторы создают кучи клонов и их завершают, в этом случае отладка вовсе не возможна, для этого и сделано. У авера вирта и им насрать на процессы, так как вирта их крутит. Но это не малварь, где прибив вирты, а паблик протекторы. Так вот что бы их раскрутить нужно в нэйтив инжектится загрузочный. Они создают сотни клонов что бы сбить отладку.

    Да и вообще, создание клона процесса это палево, это делает любой криптор для загрузки образа(тк самый примитивный простой способ). Под виртой попытка это сделать даст детект.

    Сейчас для семпла нет конкретно оси, есть защита авер и их вирта.
     
    nullPtr нравится это.
  12. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    3.874
    Или все же гоняет, а не крутит? Мы в прошлый раз так и не решили.
     
  13. sl0n

    sl0n Мамонт дзена **

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    642
    вначале крутит а потом гоняет (лысого, но это не точно)
     
  14. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.189
    Крутит так как это замкнутый цикл имеющий выход лишь когда критерий выхода из цикла сойдётся. А гоняют" животных, а не код.
     
  15. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    3.874
    Но цикл не бесконечный, поэтому гоняет, а не крутит.
     
  16. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.189
    Rel,

    Скажи, тебе решить задачу или потролить, так как уже решена. В таком случае нужно тему закрывать.
     
    nullPtr нравится это.
  17. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    3.874
    Одно другому не мешает, особенно, когда Инде есть фундаментальное непонимание того, как работают аверские эмули.
     
  18. sl0n

    sl0n Мамонт дзена **

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    642
    Ох рел то ли ты перетолстил то ли я терпение потерял так что распедалю:
    1) НОД он бостроено на бош эмуле у него есть таки и эвристика, если его иметь с помощью глубины погружения, стало быть кол-во эмулируемых не пустых инструкций то он взбрыкнет, если глубина достигнута а кодоанализатор не спокоен
    2) КАВ там поведенческий анализ в основном старую эвристику убрали а ну и облако
    3) Битдеф там в основном упор на эвристику и кодоанализатор, не в курсе что там за эмуль но совсем поганый на ссе2 отваливаливается если их не как мусор использовать
    4) виндеф вот тут постарались тут тебе и хороший эмуль с большой глубиной погружения и при определенных параметрах скан в памяти, но и то и то решаемо слишком много у него исключений он жеж почти на каждой тачке
    5) все остальное гдето эвристика главная гдето эмуль, кстати в вба эмуль то же есть но он даже пустые циклы не фильрует

    Нигде визоров и анклавов нету =)) но это не точно
     
  19. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    1
    Регистрация:
    11 июн 2004
    Сообщения:
    3.467
    Адрес:
    Russia
    Ну если вы так считаете, то в следующий раз улетите в бан. Последнее самурайское предупреждение предупреждение (П 2.11, правил васма).
     
    Indy_ нравится это.
  20. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    842
    Адрес:
    подполье
    Инде торжествуэ.
    А по сабжу мож в статический тлс обработать длл_детач_процесс, не пробывал только