понедельник, 22 февраля 2016 г.

[Delphi] Пишем стиллер Psi+

Почти каждый день появляются разнообразные стиллеры, некоторые воруют пароли, а более современные перешли на кражу Cookie с браузеров. Но стиллеры не всегда приносят вред, иногда мы просто забываем пароль и не можем вспомнить его. В этой статье мы рассмотрим алгоритм шифрования паролей в Jabber клиенте Psi+ что бы восстановить наш забытый пароль.




Инструмент как всегда стандартный:
  1. IDA
  2. OllyDBG
  3. Delphi
Для начала необходимо найти где Psi+ хранит пароли, это сделать не сложно, достаточно побродить по файлам и мы наткнёмся на файл accounts.xml который содержит наш пароль:

<password type="QString">тут будет зашифрованный пароль</password>

Теперь посмотрим где происходит загрузка этого файла:


Поищем переменную password и наткнёмся на....


Очевидно что тут происходит считывание поля содержащего пароль, копаем дальше...


А вот и считывание логина, оно кстати нам пригодиться при расшифровке пароля!

Теперь началось самое сложное - отследить где же расшифровывается пароль. Psi+ написан на Qt, реверсить это дело то ещё удовольствие... Я потратил более часа ставя точки останова на чтение памяти и в результате добился желаемого:


А вот и зашифрованный пароль, расшифровка пароля происходит в этой же функции. Адрес функции: 0050F3F0

Теперь, когда мы знаем адрес функции которая расшифровывает пароль, можно начать отладку программы используя клавишу F8. Мне понадобилось 10 минут что бы понять алгоритм шифрования, он достаточно прост и по этому я реализовал его на Delphi:


Суть "шифрования" - обычный XOR пароля с логином.

Скачать программу и исходник: MEGA 

© VANS

Комментариев нет:

Отправить комментарий