Linux. API монитор силами WINE API монитор позволяет следить за этим интерфейсом, для того, чтобы узнать, какие функции вызывались программой и с какими параметрами. При работе с вредоносным кодом вещь просто незаменимая. Если нет времени на дизассемблирование и детальное разбирательство в функционале вредоноса, бывает очень удобно просто запустить его и посмотреть лог API монитора. В случае с тривиальными троянцами такой лог фактически будет являться ничем иным, как полным описанием функциональности троянца. Добрый день. Сегодня я расскажу о такой полезной вещи, как API монитор. API это application programming interface. Подробнее можно почитать в вики. В данной статье пойдет речь о том, как можно использовать в качестве такого API монитора известную программу WINE. Для начала несколько слов о том, что такое Wine. Это альтернативная реализация того, что известно нам под именем Windows. Как работает операционная система? Вы пишите программу. Если возникла необходимость записать информацию в файл, то вы просто используете функцию для записи в файл. Дальше система сама передаст нужные сигналы драйверу диска и запись будет произведена. Так вот, создателям Wine пришлось написать собственные реализации функций, которые используются при программировании приложений для Windows. При этом в Wine реализованы широкие возможности отладки. Как самого Wine, так и запускаемых с его помощью программ. Рассмотрим пример на Ubuntu 10.10. Итак, начинается все с установки Wine. Тут ничего необычного - находим программу в Синаптике и отмечаем для установки: После установки запускаем конфигуратор из соответствующего пункта меню: При первом запуске это займет какое-то время: При этом в домашнем каталоге пользователя будет создан подкаталог .wine. В него и будут помещены все файлы лже-виндовса. В Линукс каталоги, имя которых начинается с точки - скрыты. Для того, чтобы их увидеть нужно включить отображение скрытых файлов: После того, как конфигуратор запустится нужно внимательно исправить пути к стандартным каталогам. Менять их лучше на что-то находящее внутри каталога .wine. И вот почему: после таких изменений вы можете легко скопировать каталог .wine с целью будущего восстановления. Сразу после установки Wine займет что-то около 40 мегабайт. Это вам не виртуалка с полноценной Win7. Можно хоть после каждого запуска удалять-восстанавливать - это займет пару секунд. Кроме этого убедитесь, что в разделе дисков нет ничего лишнего - все-таки планируем вирусы запускать, маловероятно, что что-то расползется, но осторожность проявить стоит. После того, как сделаете резервную копию каталога .wine (вы ведь её сделаете?) можно приступать к исследованиям. Запускаем терминал и переходим на диск С нашего воображаемого виндовса: cd .wine/drive_c Управлять отладчиком Wine можно в помощью служебной переменной WINEDEBUG. В нее нужно передать каналы, которые будут отслеживаться. Доступны все мыслимые каналы - они перечислены в официальной вики проекта. Используются они так: Пишем WINEDEBUG=+file, и отладчик будет выводить все, что касается канала file, то есть дисковые операции. Можно перечислить сразу несколько каналов, через запятую. Для исследования используем импровизированный даунлоадер - wget, который будет качать страницу google.com. Вся магия кроется в одной строчке: WINEDEBUG=+file,+reg,+network - выбранные каналы (операции с файлами, реестром и сетью) wine wget.exe google.com - передаем вайну название программы, которую нужно запустить, а затем передаем этой программе, какой файл качать. 2>log.txt - перенаправить debug-вывод в файл. Так как выполнение программы может занимать разное время, для того, чтобы убедиться, что выполнение завершено можно смотреть список процессов в системном мониторе: Нас интересуют следующие процессы: Как только они исчезнут из списка, значит можно приступать к работе с логом. Лог получается очень объемным. Кто видел лог WinDbg без фильтров поймет о чем я говорю. Но поискав по ключевому http находим следующий участок: Видно, куда совершается обращение (Ссылка доступна только зарегистрированным пользователям), видно, как будет называться сохраняемый файл (index.html), а так же путь, по которому он будет располагаться. Причем путь представлен и для виндовс-версии (??C и для линукс (/home/test/.wine/dosdevices/c:/). Так же немаловажно, что в логе отображается адрес, на который производилось обращение (Location: Ссылка доступна только зарегистрированным пользователям [following]): А так же адрес, с которого производилась закачка (Location: Ссылка доступна только зарегистрированным пользователям [following]) То есть можно проследить все перенаправления. Можно еще написать скрипт, который ловко перелопатит получающийся даже на таком простом примере мегабайтовый лог и предоставит красиво оформленный отчет о работе вредоноса.