11.07.2015 Views

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ХАКЕР 04 /171/ 2013 Ломаем вместе87сделать, приступая к работе над новымбинарником, чтобы иметь на руках актуальнуюверсию);• индивидуальный, когда происходит импортаннотации для конкретной функции.В этом случае можно выбирать, какуюверсию аннотации грузить (самую последнююили какую-то из более ранних).Поиск функций, для которых доступныаннотации, реализован несколькими способами.Первый — Exact matching, то естьполное соответствие. Берется хеш от бинарногопредставления функции и ее смещениев файле, на основании этих двух параметровв облаке происходит поиск доступныханнотаций. Второй — Fuzzy matching, илинечеткое соответствие, когда вычисляетсяSHA-1-хеш последовательности мнемоники уже на основании этого хеша ведется поисксоответствующей аннотации. Для чегонужен Fuzzy matching? Допустим, ты полностьюразобрал первое поколение червяStuxnet. Но тут идет новая волна, и надоразбираться уже со вторым поколением.Очевидно, что сам исполняемый файл зловредаизменился, функционал расширился,но большинство-то основных функций осталосьна месте. Не начинать же опять анализс чистого листа? В данной ситуации Fuzzymatching позволит сопоставить и загрузитьаннотации функций из первого поколениядля соответствующих функций второго поколениячервя, сэкономив таким образом кучувремени на анализ нового функционала.УСТАНОВКА И НАСТРОЙКАНо довольно теории. Можно долго растекатьсямыслью по древу, но, как говорится,лучше один раз увидеть. Поэтому давайопробуем инструмент в деле. Прежде всего необходимо скачать плагиндля IDA Pro под конкретную операционную систему (доступны для Windows,OS Х и Linux), сделать это можно тут — www.crowdstrike.com/crowdre/downloads. После чего установить его, скопировав в папку plugins в директорииIDA. На этом все настройки на локальной машине закончены, и остаетсятолько зарегистрироваться на облачном сервисе CrowdRE — crowdre.crowdstrike.com/sign-in. CrowdRE использует сервис аутентификации Google,поэтому если у тебя есть ящик на Gmail, то просто нажми на кнопку «Sign inwith Google». Если же нету — придется завести. Залогинившись, первым деломнеобходимо сгенерировать аутентификационный токен (AuthenticationToken), который плагин CrowdRE запросит для взаимодействия с сервисомпри первом использовании. Для этого надо всего лишь нажать на плюсикрядом с надписью Authentication Tokens. Также, если необходимо, чтобык загружаемым аннотациям имели доступ только члены команды, а не всеCLOUD NEINhttps://github.com/AntiCloud/CloudNeinВторой аналитик ещене обновился, поэтомуне видит, что функцияsub_404814 ужепроанализированаВ некоторых ситуациях преимущества облачного сервиса CrowdRE могут оказаться недостатками.Ведь сервис ведет базу всех проанализированных функций, которые подробноразобрали и привели в читабельный вид. Очевидно, что не всем хочется, чтобыплоды их исследований были доступны третьим лицам. Если твоя хактим занимаетсяреверсингом какого-то приватного софта, то будет совсем не круто, если данные о немутекут в Сеть в каком-либо виде. Чтобы избежать этого, можно воспользоваться CloudNein — сторонней реализаций CrowdRE-сервера, который можно развернуть на однойиз своих машин. Как утверждают разработчики, Cloud Nein поддерживает все функцииCrowdRE, единственная вещь, которая может пока работать некорректно, — это Fuzzymatching. В общем, кто-то успешно реверснул протокол обмена данными с CrordREсервером,чем теперь можно с радостью воспользоваться.СОФТ ДЛЯ СОВМЕСТНОГОРЕВЕРСИНГА ПРИЛОЖЕНИЙCrowdRE — не единственная возможностьсовместно анализировать исполняемыефайлы. Как только малварь сталастановиться все сложнее и сложнее,начал появляться софт для совместногоее анализа.• DA Sync (bit.ly/YVNAow) — один из пионеровв этой области, тулза, выпущеннаяв далеком 2005 году и позволяющая реверсерамделиться своими наработкамис коллегами в режиме реального времени.IDA Sync представляет собой централизованныйсервер, написанный на Python,и плагин для IDA, через который все участникиконнектятся к серверу. Как толькоклиент присоединился к серверу, всеизменения, сделанные им (переименованиефункций, локальных переменных,комментарии), немедленно передаютсяостальным участникам команды. Кромеэтого, центральный сервер хранит копиювсех изменений, позволяя новому аналитикув считаные секунды влиться в работу.Помимо прочего, возможность этого инструментаработать в реальном времении мгновенно отображать вносимые измененияможет быть использована для проведениядемонстраций/презентаций илиобучения реверсингу.• CollabREate (bit.ly/aaQOtB) — еще одинотличный инструмент для совместногореверсинга, появившийся на свет в 2008году. Он также состоит из серверной части,отвечающей за хранение и синхронизациюизменений между всеми клиентами,и клиентской части в виде плагинадля IDA. Как и IDA Sync, хранит все измененияи при подключении нового клиентапозволяет ему быстро получить актуальнуюверсию исследуемого файла. Интересно,что в данном инструменте началипроглядываться хоть и слабые, но вполнеразличимые черты систем контроляверсий. Так, CollabREate позволяет разработчикуфоркнуть текущий анализ бинарникаи продолжить его исследованиев другом ключе, не затрагивая при этомработу остальных участников.• BinCrowd (bit.ly/f1UogZ) — zynamics,разработчик таких популярных расширенийдля IDA, как BinDiff и BinNavi, выпустилав 2010 году инструмент BinCrowd. Даннаятулза для организации совместнойработы использует принцип функционированиясистем контроля версий. Она позволяетсоздать централизованный репозиторийдизассемблированного кода,посредством которого можно делитьсянаработками со всеми членами команды.В такой репозиторий можно «коммитить»новые имена и прототипы функций,комментарии и прочую информацию,обнаруживаемую во время реверсинга.Плагин для IDA написан на Python и требуетдля своей работы установленногоIDAPython минимум версии 1.3.2.Ничего сложного в использовании описанныхинструментов нет, а всю необходимую информациюпо установке/настройке/использованиюможно найти в соответствующихreadme-файлах или на официальных сайтах.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!