Наверное нубский вопрос, но я как то не копал эту тему и что-то это плохо гуглится. Если процесс насильно убивается из вне (диспетчером задач, авером, малварью, из драйвера, чем угодно), можно ли это событие отловить? И в лучшем случае помешать ему, а в худшем случае просто успеть залогировать пользователю это событие? Ну и действие происходит на венде.
Под типу хукать TerminateProcess, не? Я даже хз про блек или вайт. Но малвари убивают себя запуская CreateProcces с cmd со скрытым окном, а аргументы передают задержка на 10 секунд и полный путь программы. --- Сообщение объединено, Nov 27, 2020 --- или в другом случае хукать любой ShellExecute, CreatePorcess и смотреть что там она делает. Программа может записывать в планировщик. Много вариков так-то
Rel, Ты ведь нуи и не понимаешь архитектуру, что процесс это окружение для работы потоков. Соответственно может не быть потоков, но останется окружение - обьекты адресное пространство, но процик там ничего выполнять не будет, это лишь будет висеть в памяти. Завершение процесса технически это посылка ядерных сообщений всем тредам, их прибивает планировщик, кванты они больше не получат, так что это событие никак не узнаешь. Делай как все крипты - первый процесс рабочий, второй под отладку его. Так твоя задача будет распределена между процессами и узнаешь когда один будет завершён. А они думают что создание сотни клонов чем то помешает крутить визором вот же наивные. Мой например инфицирует загрузчик, что бы реализовать наследование процессов, крутить клоны.
а что если дизасмить работающий процесс, находить в нем сигнатурно TerminateProcces и перед этим чекать push регситр eax, если туда пихается offset procces - где procces наш процесс (хендл), после хукать OpenProcces и смотреть аргументы и тот ли хендл принимает TerminateProcces Отладка в реальном времени. Возможно ли? Или бред?
TerminateProcess, TerminateThread на вход принимает хэндл процесса с правами "PROCESS_TERMINATE". В драйвере регистрируем callback( https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-obregistercallbacks ) при создании хендла в системе. А дальше фильтруем в callback права, ID процесса... очевидно что это далеко не все способы, с помощью которых можно убить поток/процесс
Komrako18, Вопрос не просто так, по распределению ресурсов. Если процесс завершается, то соответственно освобождаются обьекты. Но есть перманентный маркер, который остаётся вроде бы, я не помню подробности. Из ядра колхозить нельзя - это повесит ось. Пока какой то обьект/механизм ядро будет завершать, ты этому помешаешь, вмешавшись в этот механизм. Это не деадлок, но ось повесит. Ты вначале ядерные синхромеханизмы пойми, прежде чем советы бредовые давать. Ядро построено на синхронизациях, любое действие синхронно. Да и вопрос про юзер, а не про ядро; имея ядерный доступ можно делать что угодно и данный вопрос не имеет смысла.
а ну, это я так, мысли в слух были. Как вариант. Моя предложка скорее касалась ring3, например как руткит замутить. Например можно отловить диспетчер задач, процесс эксплорер и прч. А так Инде прав, если есть доступ на ядре, то можно отловить походу дела.
nullPtr, Да какое ядро, я ведь выше говорил. Протекторы создают кучи клонов и их завершают, в этом случае отладка вовсе не возможна, для этого и сделано. У авера вирта и им насрать на процессы, так как вирта их крутит. Но это не малварь, где прибив вирты, а паблик протекторы. Так вот что бы их раскрутить нужно в нэйтив инжектится загрузочный. Они создают сотни клонов что бы сбить отладку. Да и вообще, создание клона процесса это палево, это делает любой криптор для загрузки образа(тк самый примитивный простой способ). Под виртой попытка это сделать даст детект. Сейчас для семпла нет конкретно оси, есть защита авер и их вирта.
Крутит так как это замкнутый цикл имеющий выход лишь когда критерий выхода из цикла сойдётся. А гоняют" животных, а не код.
Rel, Скажи, тебе решить задачу или потролить, так как уже решена. В таком случае нужно тему закрывать.
Одно другому не мешает, особенно, когда Инде есть фундаментальное непонимание того, как работают аверские эмули.
Ох рел то ли ты перетолстил то ли я терпение потерял так что распедалю: 1) НОД он бостроено на бош эмуле у него есть таки и эвристика, если его иметь с помощью глубины погружения, стало быть кол-во эмулируемых не пустых инструкций то он взбрыкнет, если глубина достигнута а кодоанализатор не спокоен 2) КАВ там поведенческий анализ в основном старую эвристику убрали а ну и облако 3) Битдеф там в основном упор на эвристику и кодоанализатор, не в курсе что там за эмуль но совсем поганый на ссе2 отваливаливается если их не как мусор использовать 4) виндеф вот тут постарались тут тебе и хороший эмуль с большой глубиной погружения и при определенных параметрах скан в памяти, но и то и то решаемо слишком много у него исключений он жеж почти на каждой тачке 5) все остальное гдето эвристика главная гдето эмуль, кстати в вба эмуль то же есть но он даже пустые циклы не фильрует Нигде визоров и анклавов нету =)) но это не точно
Ну если вы так считаете, то в следующий раз улетите в бан. Последнее самурайское предупреждение предупреждение (П 2.11, правил васма).