Меня часто мучают вопросами "как написать стиллер паролей для %имяпрограммы%" и в этой статье я решил рассказать как это сделать на примере простенькой программы. Но учтите, что написать стилер доты или танков будет на много сложнее.
SendSey - это программа для рассылки спама в скайпе, что само по себе не есть хорошо, так что написав стиллер вы можете не рискуя кармой воровать пароли от этой программы у бедных школьников и переводить моральный ущерб к себе на кошельки.
Начнём пожалуй с инструментов, т.к. SendSey написан на Delphi, то я заюзал IDR о котором ни раз рассказывал в других статьях ранее, ну и традиционный дебагер OllyDBG.
Загружаем испытуемого в IDR и после анализа ищем место где может храниться логин и пароль, такое место находится быстро:
Ну и в реестре соответственно:
Но вот ведь не задача, пароль зашифрован! Кто то уже поднимает белый флаг т.к. ему показалось что это md5 или самопальный алгоритм криворукого автора под спайсом, но нет, всё куда проще/сложнее:
Я полагаю что ТЗ было примерно такое "Короче надо написать софтину для спама по скайпу, оплата едой, время на разработку 1 вечер и что бы ещё пароль сохраняла и шифровала труалгоритмом". Ну автор решил загуглить труалгоритм шифрования и получил:
Ну и мы тоже заюзаем его для наших целей. Скачать архив с этим модулем и остальным можно будет в конце статьи.
Теперь настало время написания стилера, писать будем на Delphi 7 (идеально для малвари), по этому создаём новый консольный проект и приступаем к адаптации того сурса под Delphi7. Но зачем? Как известно Delphi 2009 и последующие стали юникодными, а у нас тут прошлый век. А ещё я использую библиотеку KOL для снижения веса и адаптировать исходник буду под неё. К тому же эти знания помогут вам при написание аналогичного стилера для софта написанном на С# или другом языке.
Для начала я заменил все String на WideString, ULONG на Cardinal и DWORD на LongWord. Осталась пара функций, а именно StrToInt которую я заменил на Hex2Int и IntToStr которую я заменил на Int2Hex. А так же SizeOf(Char) на 2 (юникод же). Всё! Это заняло меньше минуты и мы добились снижения веса с 120 кило (!!!) до 20! Не плохо, правда? Хотя многим этого не понять...
Осталась работа с реестром, в KOL есть пара функций: RegKeyOpenRead и RegKeyGetStr которые вызываются в соответствующем порядке и мы получаем зашифрованный пароль, который в последующем передаём в функцию Decode.
Осталось только написать отправку расшифрованного пароля на гейт и стиллер готов! Отправку можно сделать на сокетах или синапсе, как говорится на вкус и цвет только фломастеры. А ещё можно сделать билдер и кучу других плюшек, но, это уже другая история.
Скачать софтину, стиллер и сурсы можно по ссылке: MEGA
SendSey - это программа для рассылки спама в скайпе, что само по себе не есть хорошо, так что написав стиллер вы можете не рискуя кармой воровать пароли от этой программы у бедных школьников и переводить моральный ущерб к себе на кошельки.
Начнём пожалуй с инструментов, т.к. SendSey написан на Delphi, то я заюзал IDR о котором ни раз рассказывал в других статьях ранее, ну и традиционный дебагер OllyDBG.
Загружаем испытуемого в IDR и после анализа ищем место где может храниться логин и пароль, такое место находится быстро:
Ну и в реестре соответственно:
Но вот ведь не задача, пароль зашифрован! Кто то уже поднимает белый флаг т.к. ему показалось что это md5 или самопальный алгоритм криворукого автора под спайсом, но нет, всё куда проще/сложнее:
Я полагаю что ТЗ было примерно такое "Короче надо написать софтину для спама по скайпу, оплата едой, время на разработку 1 вечер и что бы ещё пароль сохраняла и шифровала труалгоритмом". Ну автор решил загуглить труалгоритм шифрования и получил:
Ну и мы тоже заюзаем его для наших целей. Скачать архив с этим модулем и остальным можно будет в конце статьи.
Теперь настало время написания стилера, писать будем на Delphi 7 (идеально для малвари), по этому создаём новый консольный проект и приступаем к адаптации того сурса под Delphi7. Но зачем? Как известно Delphi 2009 и последующие стали юникодными, а у нас тут прошлый век. А ещё я использую библиотеку KOL для снижения веса и адаптировать исходник буду под неё. К тому же эти знания помогут вам при написание аналогичного стилера для софта написанном на С# или другом языке.
Для начала я заменил все String на WideString, ULONG на Cardinal и DWORD на LongWord. Осталась пара функций, а именно StrToInt которую я заменил на Hex2Int и IntToStr которую я заменил на Int2Hex. А так же SizeOf(Char) на 2 (юникод же). Всё! Это заняло меньше минуты и мы добились снижения веса с 120 кило (!!!) до 20! Не плохо, правда? Хотя многим этого не понять...
Осталась работа с реестром, в KOL есть пара функций: RegKeyOpenRead и RegKeyGetStr которые вызываются в соответствующем порядке и мы получаем зашифрованный пароль, который в последующем передаём в функцию Decode.
Осталось только написать отправку расшифрованного пароля на гейт и стиллер готов! Отправку можно сделать на сокетах или синапсе, как говорится на вкус и цвет только фломастеры. А ещё можно сделать билдер и кучу других плюшек, но, это уже другая история.
Скачать софтину, стиллер и сурсы можно по ссылке: MEGA
Хорошо сделал
ОтветитьУдалитьчто то я не понял. А как на Delphi XE подключить расшифровку ?
ОтветитьУдалитьНеобходимо подключить модуль KOL http://www.kolmck.net/ или переписать под XE что бы работало.
Удалитья подключаю этот KOL , а там 100500 ошибок выдает. Я конечно с этими библиотеками не очень дружу , но вот что сделал : Crypt.pas закинул в папку с прожкой , подключил в uses , но единственное на что ругается , это в самой Crypt.pas :
Удалить1. Crypt.pas(78): E2003 Undeclared identifier: 'Int2Hex'
2. Crypt.pas(78): E2003 Undeclared identifier: 'Hex2int'
Порыв crypt.pas , я что то не увидел этих двух функций
Читайте внимательно: Осталась пара функций, а именно StrToInt которую я заменил на Hex2Int и IntToStr которую я заменил на Int2Hex.
Удалитьэто я прочитал ))) Эти функции найти в гуглике и вставить ?
УдалитьБл , похожу я что то делаю не так ... Под ноч голова не варит .
ОтветитьУдалитьВанс , может замутишь прожку для декода ? Тип вставил туда этот зашифрованный пас , а он тебе дает нормальный