Сегодня наткнулся на очередную фейк программу и подумал почему бы не написать руководство по их распознаванию.
Инструменты которые нам потребуются:
Цитата:
Всем известный хекс редактор – WinHex (Можно воспользоваться любым другим)
Редактор ресурсов, я буду использовать редактор ресурсов встроенный в PE Explorer
Программы легко гуглятся, так что не спрашивайте у меня где их достать.
В качестве примера я взял фейк RFLogin'a который обнаружил на одном форуме.
Начнем с того что запустим PE Explorer. Он выглядит вот так:
Откроется редактор ресурсов. В левой части отображается список групп ресурсов. В нем мы видим такую группу как “RC Data” присутствие этой группы уже говорит о том что программа написана либо на Delphi либо на C++ Builder. Открыв эту группу мы видим среди ее ресурсов "DVCLAL". Выбрав его мы узнаем компилятор:
Так же мы видим ресурс под названием “TFORM1” это текстовый ресурс описывающий формы формата Delphi/C++ Builder. В PE Explorer’е он структурирован и можно посмотреть каждый объект в отдельности по уровням вложенности. Щелкаем на плюсик что бы раскрыть список, внутри видим объект под названием “Form1: TForm1” это главная форма программы. Его так же раскрываем и видим элементы находящиеся на форме, среди них есть “IdSMTP1: TIdSMTP ”, это и есть компонент с помощью которого происходит отправка письма. Выбираем его и в правой части видим список его свойств:
Из этого мы видим, что программа подключается к почтовому серверу 'smtp.mail.ru' под логином 'moneyfreeze' с паролем 'qweasd' иными словами она отправляет пароли с почтового ящика 'moneyfreeze@mail.ru' . Паролем от этого ящика является 'qweasd'. Заходим на этот ящик и меняем пароль, тем самым обламываем программу и ее создателя, так как она уже не сможет входить на ящик и отсылать пароли. :d
Мы определили ящик с которого отсылаются пароли. Как же определить куда они уходят? Запускаем WinHex и открываем в нем исследуемую программу. Теперь вызовем диалог поиска нажатием “Ctrl+F” и предполагая что у злоумышленника ящик для приема писем зареган в той же зоте что и для отправки, в поле для поиска вписываем “.ru” так же можно вписать любой другой предполагаемый домен.
Нажимаем на кнопку “OK” и первый же найденный результат приводит нас к ответу, на скрине первый выделенный ящик является получателем, а второй отправителем.
Вот мы и распознали фейк программу. Даное руководство не является шаблонным, ведь программы могут быть написаны по разному, я лишь показал пример возможного обнаружения, так что при анализе программ включайте серое вещество и все получится. =)
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
Вот именно, у меня тоже нет ни антивируса ни файрвола. И нет ни одного вируса. Я привык доверять себе, а не антивирусам в базах которых может не быть сигнатур новых вирусов (и т.д). Да и интересно покопаться в чужой проге и посмотреть как она устроена. В общем у каждого свои методы. ;)
Отличная статья, спасибо. Есть небольшое дополнение - совсем не обязательно пользоваться WinHex или другим редактором. В PE explorer есть встроенный дисассемблер (кнопка рядом с редактором ресурсов). В нем на закладке строки с помощью поиска можно найти искомый адрес электронной почты. Тем самым сокращаем необходимый нам инструментарий до одной программы, но это все частности =)
Отличная статья, спасибо. Есть небольшое дополнение - совсем не обязательно пользоваться WinHex или другим редактором. В PE explorer есть встроенный дисассемблер (кнопка рядом с редактором ресурсов). В нем на закладке строки с помощью поиска можно найти искомый адрес электронной почты. Тем самым сокращаем необходимый нам инструментарий до одной программы, но это все частности =)
Ну про эт я знаю но почему то не написал (но спасибо за дополнение). Наверно хотел показать как можно определить с помощью вин хекса. Да и еще по моему в PE explorer юникодовые строки не показывает, да и проги написанные под .net или на basic'e он не дизасмит, в этом случае и поможет вин хекс.
Если автор феика не полный кретинойд, там поверх может висеть крипт, и мы... ну вы поняли.
Хмм, а вообще все объекты в дельфях/билдере можно создавать вручную. Хотя это и не нужно - достаточно вручную создать этот самый смтп логинер и чутка криптануть лог и пасс. Дальше выживут только матерые реверс инженеры.
А вообще интересненько так. Жалко конечно что формат не преобразовывается на этапе компиляции, тк походу это все место должно жрать не мерянно в итоговой проге. На куте чтоль переидти, да они вроде не меньше жрут.
Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
— Rick Cook
История России — борьба невежества с несправедливостью. (c) МихМих