Как мне удалось взломать приложение
Время на прочтение
4 мин
Количество просмотров 36K
Здравствуй уважаемый %habrauser%. В данной статье я поделюсь с вами историей о том как я взломал приложение. Взломать сам EXE-шник приложения не получилось, но желаемый результат был получен другим способом. Чтобы сохранить конфиденциальность буду опускать некоторые моменты, сильно обрезать скрины. И так
Этот неживой и баснословный мир
Все начиналось хорошо, ничто не предвещало беды. В один поздний вечер мне один хороший знакомый попросил об одной услуге выражаясь фразами типа «ну ты ж у нас программист». Писал он о просьбе взломать некое приложение. На что я ответил, что постараюсь, но о удачном взломе не гарантирую. На следующий день мы встретились, он мне дал диск и объяснил, что это за приложение.
Начало
Есть некая организация, которая занимается обучением людей для сдачи одного определенного экзамена. Чтобы получить это приложение надо пойти в эту организацию, записаться и оплатить курсы. В конце пройденного курса организация за дополнительную плату дает диск с установщиком программы с индивидуальным ключом активации. Приложение позволяет делать тесты, смотреть на результаты. Есть некий режим «На экзамене», который позволяет имитировать среду экзамена. Приложение выдает случайные тесты из разных разделов. Все хорошо и прекрасно.
Первые шаги — экспериментируем
Устанавливаем приложение запускаем его, чтобы посмотреть, что оно из себя представляет.
Открывается такой сплэш экран, и приложение на несколько секунд зависает (данное зависание не спроста).
Открывается сплэш экран, а за ним, через несколько секунд открывается такое окошко:
От нас требуется ввести ключ активации, которого у нас естественно нет. Первое что меня насторожило, это то, что окно ввода ключа активации открывается с ощутимой задержкой, как будто приложение подключается куда-то через интернет и разработчик приложения не позаботился об асинхронном подключении к интернету. Чтобы удостовериться в том, что приложение лезет в интернет отключил сетевые подключения на компьютере
выдернул ethernet кабель
и вновь запустил приложение. Через некоторое время раздумий о бытие человеческой приложение все-таки открыло окно активации, но после ввода туда случайного текста выдало сообщение о том, что нет подключения к интернету.
Отсюда делаем вывод, что приложение активируется через интернет и в ее исходниках не зашиты какие-либо ключи активации или алгоритмы расшифровки.
Лезу в папку уставленной программы:
Структура:
- Arial Narrow.ttf – шрифт
Кеп
- DataSource.data – файл БД в котором все тесты
- *************.exe – екзешник приложения
- MySql.Data.dll – бесплатная opensource библиотека от MySql
Наличие библиотек MySql.Data.dll в папке с программой навела на мысль о том, что приложение скорее всего написано на языке C#. Ни для кого не секрет то, что не защищенные специальными утилитами приложения написанные на этом языке программирования легче всего поддаются декомпиляции. Обрадованный данным предположением, мой мозг автоматически дал мне сигнал запустить программу IlSpy, которая позволяет декомпилировать приложения написанные на C# и открыть приложение в нем.
В итоге передо мной открылась такая картина
Как видно приложение действительно написано на C#, отображается информация о разработчике, используемой версии .NET. После открытия структуры приложения последовало разочарование.
Судя по непонятным знакам, пустым функциям, приложение обфусцировано — код нечитаемый. За помощью я обратился к поисковикам и вскорее нашел бесплатную опенсоурс программу de4dot, которая позволяет деобфусцировать обфусцированные приложения написанные на C#.
Попробуем деобфусцировать и получаем такой результат:
Судя по сообщению приложение обфусцировано с помощью .NET Reactor, и декомпилировать его не представляется возможным. После долгих поисков метода деобфускации от защиты .Net Reactor найти так и не удалось.
Тогда я, решил попробовать хотя бы открыть файл базы данных DataSource.data, в SQLite.
От нас требуется пароль от базы данных.
Разочарованный неудачей я уже сдавался, взлом я оставил на потом на лучшие времена. Но из головы никак не уходила мысль о том, что я что-то пропустил.
Уважаемый вы здоровы?
Иногда шаг вперед является результатом пинка в зад
Прошло какое-то время. Когда я копался в файлах нашел эту программу и обратил внимание на файл MySql.Data.dll. А что если поменять MySql.Data.dll на модифицированный, чтобы он отображал строку подключения к бд. Для этих целей есть opensource программа — dnSpy. Она позволяет редактировать код .net приложений и библиотек. Загружаем dll файл в программе и находим класс MySqlConnection и редактируем функцию .ctor:
Добавим строку:
System.Windows.Forms.MessageBox.Show(connectionString);
Нажимаем «Compile», сохраняем файл, заменяем с оригинальным и наконец запускаем приложение.
Выйдет такое окно:
По названию сервера cloudapp.net можно сделать вывод, что база данных создана на Azure.
Скачиваем любую бесплатную утилиту подключения к бд, скажем HeidiSQL. После ввода полученных данных подключения открылась БД. А вот и наши ключи активации:
У большинства ключей отсутствовали значения полей Name, CardId, Phone. Видимо эти ключи еще не продали. Добавил из себя 16 значный ключ, и зарегистрировал программу. В папке с установленной программой появился файл data.dat и приложение выдало сообщение об успешной регистрации. В таблице с ключами пропал созданный ранее ключ. После недолгих поисков этот ключ я нашел в таблице logs. Там был мой ключ с подробным описанием характеристик моего компьютера таких как модель, процессор, видеокарта и т.д. Эту строку я удалил, чтобы не оставить после себя следов.
Итог
Стоит отдать должное разработчику приложения, он позаботился о защите своего приложения. Он защитил БД, обфусцировал приложение, содержание data.dat файла тоже зашифровано, но о проверке хеша используемой библиотеки он позабыл.
P.S.: Вред организации, взлом приложения не произвел. К тому времени, пока удалось взломать приложение, другу оно уже не было надобным. Активированная копия приложения была только у меня и третьим лицам передано не было. В связи с ненадобностью приложения у себя я тоже её удалил.
KennyN0tdi3
Ученик
(152),
закрыт
3 года назад
Дополнен 10 лет назад
ЭТО НЕ ЛОХОТРОН И ВИРУСЫ идите вы на 3 буквы с таким ответом файл проверен и антивирусом и утилитой и лохотрон не весит 8г или там 100500троянов? + пароль поставлен в целях рекламы есть ссылки на файл txt с паролем но они битые
Дополнен 10 лет назад
Дополнен 10 лет назад
В кампе я не чайник и в прогр тоже так что не пишите бред про смс
Dagaro
Гуру
(4452)
10 лет назад
Ударься головой об стену раз такой умный. И спрашивай пароль там же где и качал сие чудо. Ехе не паролят и вообще первый раз такое слышу.
Ломаем EXE файлы: Обход запароленного файла, ключа активации и т.д.
overbafer1Всем доброго времени суток, мы с вами поговорим про такую вещь, как взлом запароленного файла в надежде найти “подходящий” пароль.
Для этого нам понадобятся программы:
1.OllyDBG
2.edb-debug, для Linux ( можно найти в пакете kali linux)
В примере будет описан процесс использования OllyDBG в Windows.
Начало
Давайте для начала создадим для нашего примера простейшее консольное приложение, которое выводит нам необходимые данные:
Теперь нам нужно “запаролить” данный файл. Воспользуемся программой GameProtector
Выбираем наш exe файл, зададим пароль к примеру “qweqwe”. Нажимаем protect
Теперь при запуске нашей программы будет запрашиваться пароль:
Если ввести неверный пароль, то вы увидите следующее сообщение:
Теперь закрываем это окно, и запускаем OllyDBG
Выбираем вашу программу и открываем её.
В появившемся окне, нажимаем правой кнопкой и выбираем search for – all referenced strings
В новом окне нажимаем Ctrl+F, и делаем поиск по ключевому слову из ошибки – например, Invalid Password.
Выбираем строчку, откуда начинается раскрытие ветки ( JE SHORT…) и нажимаем F2
На ней появится красная полоска (брейкпоинт), а нижний брейкпоинт выбираем и снимаем его нажатием F2.
Запускаем приложение через кнопку:
Откроется окно нашей программы, вводим в него произвольный пароль.
тем временем в OllyDBG мы увидим следующее:
Вверху – то что мы вводили
Внизу – верный пароль, который мы ранее задавали.
Вариант для Kali Linux
А сейчас мы с вами рассмотрим вариант “вскрытия” exe файла, на примере выше описанного файла
Для начала установим wine. Для этого в терминале вводим по очереди следующие команды:
sudo dpkg --add-architecture i386 sudo apt-get update apt-get install wine32
Мы будем использовать утилиту Edb debugger. если в вашей сборке Kali её не оказалось, то установим следующим образом:
sudo apt-get install edb-debugger
Переходим в папку, куда скачали наш exe файл. Нажимаем F4 и откроется терминал
прописываем в терминал: wine Project2.exe
у нас запросят код для программы, который мы не знаем.
Теперь открываем Edb debug, и нажимаем File – Attach
Выбираем наш процесс и нажимаем OK.
Теперь, в edb мы нажимаем старт(крайняя правая кнопка вверху), вводим какой-нибудь пароль в терминале( например,www) Но не нажимаем Enter!
Теперь переходим в edb, нажимаем паузу, снова переходим в терминал и нажимаем Enter.
Теперь в Edb мы нажимаем Step over(F8), чтобы увидеть стэпы
А дальше кликаем на Step Out до тех пор пока не увидим наш неправильный пароль в разделе Stack, либо пока программа не вызовет ошибку.
Затем нажимаем F7 (Step Into), и ищем в окне Stack какие либо ascii/UTF символы.
тут и есть наш заданный пароль qweqwe. Теперь мы можем запустить эту программу, используя найденный пароль.
Ребята, всем привет!
Такая задача: есть программа для управления лазером, у неё есть запароленный режим Service, в котором сервисный наладчик может менять настройки лазерной системы и в который очень хочется войти самому.
Задача: узнать этот пароль :).
Насколько я сумел проанализировать сам exe-файл, этот пароль не содержится в теле программы, но для каждой конкретной системы воссоздается по неустановленному алгоритму с помощью серийного номера установки (программа берет его из внутренней постоянной памяти устройства) и какой-то даты, либо текущей либо опять же зашитой во внутреннюю память.
Серийный номер и все даты видны из обычного “пользовательского” режима доступа.
В тексте exe-файла даже есть такая фраза, относящиеся к паролю ” Hint: It’s a …” , но дальше я не сумел расшифровать.
В общем, ссылка на exe-файл вот http://files.mail.ru/9C234AD630464C918C77D4DF2910D27A , если у кого есть интерес и время, тот может попробовать мне помочь. Отблагодарю всех 🙂
Очередной уровень CTF в котором нужно получить пароль из exe файла.
Петр Фролов
2022-08-31 05:01:55
а где можно protected.exe скачать?
̲ B̲ ̲l̲ ̲A̲ ̲z̲ ̲E̲ ̲r̲ ̲
2022-05-07 21:10:30
Как с тобой связаться в личке?
Олександр
2022-01-28 14:24:35
Где скачать такие программы?
SENAT
2021-12-17 21:08:07
Приветик. Можно вашу электронную почту?
Yesha Yusha
2021-11-26 22:49:43
В какой программе вы это делаете?
Максим Лунда
2021-11-26 09:10:16
Что у вас за версия Kali ? Я скачал актуальный образ с офф.сайта kali-linux-2021-3-vbox-amd64-ova.
Во первых при вводе wine *имя архива” терминал не спрашивает пароль, а открывается окно архива где спрашивает куда извлечь файлы.
Во вторых у меня нет вообще такой утилиты как edb…
Nikki N
2021-10-31 09:41:19
Приветствую.Прога на HDD Secure drive ex. сделал как ты советовал прогой x64dbg. Ничего не получается. Каждый раз разные крякозябры, цифры, буквы. Можно ли найти в этой программе забытый пароль?
Леонид Широкожухов
2021-08-15 07:14:26
какая у Вас почта, нужна Ваша помощь
RadFinder
2021-07-04 20:04:02
А теперь давай екзешник на пару сотен мегабайт, пакованный, шифрованный, подписанный, и от менстрим разрабов. ))
Александр
2021-05-17 17:15:57
Голос на Мармока похож!
Эмбиент Styl
2021-03-28 06:31:22
Эээххх… мне б кто вытащил пароль из exe-шника
Серега Лесной
2021-03-20 09:53:03
Привет друзья Под скажите пожалуйста могу ли я обойти регистрацию гугла То есть моя программа делает вход через акаунт гугл и потом лишь программа делает запуск Как мне обмануть программу чтобы она без гугла запустилась бы Раньше программа была офлайн и я добавлял себе плюшки сейчас уже не могу когда она входит через аакаунт Могу что то сделать помогите пожалуйста
Володимир
2021-03-18 22:01:36
Ваше агонь прям молодец))) теперь я у мамы хацкер)))
Если нужно обмануть программу с триала/демо или взломать программу, обращайтеь в телегу @BlackDeveloper
ДАРК ДЕНЬГИ
2021-02-08 04:48:17
У меня Kali LInux 2020.4, 64-битная. Программа 32-бита. Устанавливал по командам:
youtube.com/results?search_query=%23dpkg #dpkg –add-architecture i386
youtube.com/results?search_query=%23apt #apt -get update
youtube.com/results?search_query=%23apt #apt -get install wine:i386
ДАРК ДЕНЬГИ
2021-02-08 04:43:13
@Хакинг для самых маленьких , буду благодарен вашей помощи. У меня появляется окно для ввода пароля, а можно сделать, чтобы в терминале запрашивался пароль?
Софуна Симба
2021-01-24 18:44:17
Привет друзья Скажите пожалуйста а можно программу обмануть То есть после установки она подключается к гуглу аакаунту потом делает вход Как её обмануть чтобы обойти регистрацию через акаунт Или это невозможно
BV Boo
2021-01-09 12:01:32
Привет вам огромный! Есть именно такая проблема. ЕХЕшники при запуске просят логин и пароль. На экранчике есть еще imail куда просят присылать деньги…ЗАРАЗЫ
Прошу парочку этих програмок для лечения проблемы.
Спасибо.
Ivan Z
2020-06-30 18:33:28
Подскажите, забыл пароль от древнего защиённого диска (нарезался в 2005 году прогой WinOnCD кажется, в результате она видоизменила расширения всех файлов и встроила свою оболочку в автозапуск – требует пароль). Вспомнить не получилось. Может аналогичным образом ломануть попробовать? need help