Доброго времени суток. Появилась необходимость логировать все действия подозрительного приложения. Под действиями я понимаю какие файлы пишет, на какие внешние IP ходит, загрузку проца, использование памяти, использование каких-то других ресурсов типа микрофона или камеры. В общем по максимуму информации. платформа Windows. Какие есть софтины под такую задачу?
Одной тулзы наверное нет, но несколькими все можно разрулить. procmon - логирование попыток открывать файлы, ветки реестра и что-то еще... не помню, но иногда одного этого хватает. wireshark - само-собой для логирования передаваемых по сети данных. Process Explorer - да, обычный диспетчер задач, но в нем можно посмотреть открытые хендлы (файлы, мьютексы, етц) а посредством дебугга узнать что это такое открыто вообще. winapioverride - логирование API - вызовов. Я не юзал, мне всегда хватало Spy++ или чего-то подобного - но вроде-как хвалят. Дебугга - ну это само-собой WinDBG. Конечно не Syser, дебажить Венду на живой системе не умеет, но кое-что посмотреть все-равно иногда требуется. К нему понадобятся символы ибо без них там не особо чего наделаешь, но какбэ это уже опционально Можно еще чего погуглить - но это вроде-как основное.
Как в wireshark выделить сетевую активность конкретного приложения? Или как-то это организовать в связке с другой программой? Можно конечно писать весь сетевой трафик, а потом фильтровать только то что нужно. Только вот откуда взять инфу по тому что фильтровать.
Ваершарк не умеет (кажись) хавать pid. Но если взять другой лог любого приложения которое оценивает сетевую активность и скрестить с логом шарка - можно отфильтровать файл уже по факту. Формат этого файла есть в паблике (и вообще он кажись открыт). Готового ПО такого не знаю, но в сущности там не должно быть особо много возни. =========================================== Можно сделать например через какой-нибудь соксификатор или фаерволл. Тоесть заставить весь траф этого приложения проходить через другую сетевую карту (если физическая карта одна - есть VirtualBox и иже с ним). Попробуй подумать в этом направлении. UPD: кстати если так - можно и вообще просто поднять виртуалку, подождать маленько и фильтром накрыть все что тебе не нужно. А потом запускаешь прогу и должен получиться траф этого приложения ну... с какой-то долей примесей.
Если вам под винду, то посмотрите https://github.com/airbus-cert/Winshark#Filtering-on-process-id : Сначала устанавливаете вайршарк, потом виншарк затем в консоли Code: netsh.exe trace start capture=yes report=no correlation=no logman start Winshark-PacketCapture -p "Microsoft-Windows-NDIS-PacketCapture" -rt -ets потом соответственно запускаете вайршарк, зайдите в настройки -> протоколы, там поставьте в таблице "DLT_USER" для DLT=147 как протокол "etw", выбираете "Winshark-PacketCapture" как интерфейс и потом в фильтрах вайршарка задаёте "etw.header.ProcessId == 1234"