0

Как взломать exe файл

Здравствуй уважаемый %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:

    Нажимаем «Compile», сохраняем файл, заменяем с оригинальным и наконец запускаем приложение.

    Выйдет такое окно:

    По названию сервера cloudapp.net можно сделать вывод, что база данных создана на Azure.
    Скачиваем любую бесплатную утилиту подключения к бд, скажем HeidiSQL. После ввода полученных данных подключения открылась БД. А вот и наши ключи активации:

    У большинства ключей отсутствовали значения полей Name, CardId, Phone. Видимо эти ключи еще не продали. Добавил из себя 16 значный ключ, и зарегистрировал программу. В папке с установленной программой появился файл data.dat и приложение выдало сообщение об успешной регистрации. В таблице с ключами пропал созданный ранее ключ. После недолгих поисков этот ключ я нашел в таблице logs. Там был мой ключ с подробным описанием характеристик моего компьютера таких как модель, процессор, видеокарта и т.д. Эту строку я удалил, чтобы не оставить после себя следов.

    Читайте также:  Диаметр отверстия под смеситель в мойке

    Стоит отдать должное разработчику приложения, он позаботился о защите своего приложения. Он защитил БД, обфусцировал приложение, содержание data.dat файла тоже зашифровано, но о проверке хеша используемой библиотеки он позабыл.

    P.S.: Вред организации, взлом приложения не произвел. К тому времени, пока удалось взломать приложение, другу оно уже не было надобным. Активированная копия приложения была только у меня и третьим лицам передано не было. В связи с ненадобностью приложения у себя я тоже её удалил.

    Вы можете помочь и перевести немного средств на развитие сайта

    Disclaimer: всё ниженаписанное написано исключительно с просветительскими и исследовательскими целями, а также понимания механизмов защиты от взлома. Автор ни в коем случае не рекомендует использовать данную информацию для взлома программ.

    В данной статье я хочу рассказать про три с половиной основных способа взлома программ на .NET, цель, которую я преследую — помочь разработчикам лучше понять механизмы защиты своих программ, т.е. выяснить наиболее очевидные угрозы и предпринять соответствующие меры (или не принимать).

    Я не буду углубляться в детали и использовать сложные инструменты для взлома. Всё будет расписано «для чайников», т.е. все инструменты будут простыми, легкодоступными и бесплатными. А основным будет Reflector, декомпилятор программ под .NET

    В качестве подопытного кролика я выбрал Expresso — анализатор регулярных выражений. Данная программа бесплатная, в лицензии вроде бы ничего не указано про взлом, но при этом без регистрации она будет работать всего 60 дней. Другими словами, вред от взлома данной программы минимальный, к тому же внутреннее её устройство очень уж хорошо подходит для тренировки. Буду надеяться, что автор данной программы не обидится на меня.

    Для начала краткий ликбез по структуре .NET программы, для тех кто не знаком с разработкой под данный Framework: весь код, написанный на любом .NET языке (C#, Visual Basic, F#, Delphi.NET) компилируется в особый Intermediate Language, называемый обычно IL или MSIL. Это что-то типа ассемблера, только весьма умного и обладающего весьма мощными инструкциями. И это, в принципе, такой же равноправный язык как и C#, только синтаксис похуже (а возможности больше). Кроме того, в программе на .NET активно используются метаданные, т.е. вся информация о классах, метода, пропертях, атрибутах и всём остальном сохранена в исполняемом файле.
    Т.е. на самом деле, декомпиляция программы не очень верное понятие в данном случае. Она и так вся в открытом виде лежит, а инструменты в виде Reflector’а занимаются тем, что приводят конструкции MSIL к соответствующим конструкциям C# или другого языка, повышая читабельность кода.

    Перейдём, собственно, к взлому.

    0. Обнуление триала

    Собственно, это даже не взлом, а полулегальный способ продлить срок использования неактивированной программы. Заключается он в том, что находится место, где хранится дата первого запуска и меняется/уничтожается. После этого всё можно пользоваться программой до следующего срока.

    Посмотрим на нашего подопытного рефлектором:
    Немного погуляв по коду, находим интересную строчку в конструкторе MainForm

    Открываем редактор реестра, идём в HKEY_CURRENT_USERSoftwareUltrapicoExpresso и видим следующие ключи:

    Удаляем их и получаем ещё 60 дней работы.

    Данный вариант, конечно, прост и очевиден, но если он даже был бы сложнее — потребовалось бы чуть больше времени провести в рефлекторе, чтобы выяснить все места, куда пишется информация и зачистить их.

    Совет разработчикам, которые будут пытаться записать данные в потаённое место: пишите аккуратнее, а то всё может обернуться проблемами обычным пользователям, у которых почему-то не окажется данного места, или не хватит на него прав.

    1. Написание keygen’а

    Самый ужасный для разработчика вариант, и самый приятный для конечного злобного пользователя. Программа считает себя лицензионной, никаких страшных телодвижений не нужно делать.

    Открываем рефлектор и ищем код на предмет классов содержащих License или Registration, видим:

    При вводе имени и кода по имени вычисляется некий хеш, который и сравнивается с кодом.


    Данный хеш использует DES и всякие префиксы


    Байты конвертятся в строку с помощью данного метода.

    Теперь всё выяснилось, открываем IDE и копируем все необходимые куски кода (или сами реализовываем). Осталось только выяснить, какие значения у Prefix, Suffix и параметры реализации MyDES. Я их приводить не буду, это уже технические детали.

    В результате генерируем ключ на любое имя и видим:

    Бинго!

    Защита от кейгенов проста и очевида: использовать в каком либо виде ассиметричное шифрование. Т.е. сделать так, чтобы без знания приватного ключа сгенерировать код было бы невозможно, а данный ключ находится только в одном месте — у автора программы.

    2. Использование враппера

    Проверка корректности лицензии, достаточно хлопотное дело, и небыстрое. Поэтому разработчики программ обычно проверяют лицензию один раз, и дальше используют полученный флажок — валидна/невалидна (как вариант насколько валидна, если допускается несколько типов лицензии, отличающихся возможностями). Тут можно на этом сыграть, использовав следующий алгоритм:

    1. Указать программе, что лицензия уже проверена
    2. Указать программе, что лицензия корректна

    Как это сделать? Я уже упоминал о наличии метаданных в исполняемых файлах в начале, этим и воспользуемся. Посмотрим как запускается программа и как проверяется лицензия:

    С запуском ничего интересного, а в проверке видно, что если уже программа зарегистрирована, то она считает, что всё хорошо и не делает дальнейшую работы по выяснению корректности лицензии.

    Воспользуемся этим:
    Сделаем новый проект, добавим Reference на Expresso.exe и запустим его через себя:

    Смотрим, что получилось:

    Ну кто бы сомневался.

    Читайте также:  Видео обучение оператора почта россии

    В данном случае всё оказалось просто, но если бы автор программы заменил публичные свойства на приватные, то всего-лишь пришлось бы использовать Reflection для доступа и всё бы свелось к исходной задаче.

    Думаю понятно, как можно пробовать защититься от этого — проверять лицензию периодически, смотреть окружение из которого запущена программа, сделать невозможным установку нужной переменной.

    Но все эти защиты приведут к тому, что злоумышленник будет использовать

    3. Физический взлом программы

    Тут уже всё серьёзно. Программа целиком декомилируется в MSIL а из него уже собирается обратно (помните, я писал, что MSIL это такой же язык как и C#?). Для декомпиляции нам понадобится утилита из SDK под названием ildasm, а для компиляции компилятор из .NET Framework ilasm.

    Запускаем ildasm, открываем Expresso.exe и сохраняем дамп в .il файл. Находим уже рассмотренный метод IsRegistered и добавляем немножко своего кода (без меток):

    Потом берём ilasm и собираем всё назад (не забыв подключить ресурсы).

    Что делает данный код: устанавливает нужное имя для регистрации (не обязательно), и возвращает статус, что всё хорошо.
    Чтобы было понятнее, так это выглядит в рефлекторе, в C#

    Т.е. вполне очевидно, что теперь всё будет хорошо:

    Немного про код в MSIL: это стековая машина, у которой нет регистров, все операции имеют вид: засунуть в стек нужное количество параметров, выполнить функцию, которая заберёт нужное количество параметров и положит результат. Ну и обратно: установить значение переменной тем, что лежит в стеке. Чтобы лучше понять работу всего этого рекомендую простой приём: пишите маленькую программу на привычном языке, компилируете, смотрите что получилось в MSILe и разбираетесь в конструкциях языка.
    При этом некоторые вещи в MSIL можно сделать очень красиво, например поменять две переменные местами — 4 симпатичных строчки (на C# меньше, но некрасиво).

    Чем жертвует злоумышленник: подписью программы, теперь она уже не автора, а его. В некоторых случаях это проблема, если в программе используется множество библиотек. Тогда злобному хакеру придётся разбирать их все и собирать их заново, но если он с этим справится, то у него будет «своя» версия программы подписанная его ключом.

    Защиты от всего этого безобразия собственно немного: проводить обфускацию или выносить часть логики/проверки защиты в нативный код.

    Заключение

    Думаю я рассказал, как просто всё можно разломать на .NET, если создатель не приложил усилий для защиты своей программы. А вы уж решайте, стоит ли делать защиту и тратить на это время и ресурсы. А может просто сделать web-систему, или же бесплатную ограниченную версию. Решать разработчикам.

    Как-то давненько я написал одну статью, в которой был оговорен один из способов, как поставить пароль на папку либо файл. Способ этот заключается в архивировании любого файла либо папки архиватором и установки пароля на архив. В интернете таких запароленных архивов полно. После этого мне стали приходить письма с просьбой написать статью о том, как можно взломать такой архив. Частенько присылались фразы типа: «Я забыл пароль к архиву, что теперь делать».

    Восстановить пароль к такому архиву действительно можно, однако не стандартными средствами Windows, а при помощи специального софта. Программа для подбора паролей к архиву типа rar, zip, exe называется Advanced Archive Password Recovery. У меня установлена английская версия программы, поэтому заранее прошу извинить не любителей данного языка. Для тех, кто хочет использовать русскоязычную версию программы, предоставляю ссылочку на официальный сайт: http://www.elcomsoft.ru/archpr.html. Программа платная, однако вы можете скачать ее пробную версию, в которой есть весомые ограничения. Пробная версия не будет подбирать пароль длиннее 4-х символов.
    Ничего сложного в работе данной программы нет, она просто методом подбора находит пароль по заданным вами параметрам. Хочу предупредить, что быстрого эффекта можно ожидать только в том случае, когда пароль устанавливали вы и помните хотя бы его длину и приблизительные символы, которые использовали. Если же вы, так сказать позаимствовали где-то архив, то подбирать к нему пароль можно ооочень долго, но дело того стоит.

    И так, чтобы продемонстрировать работу программы я добавил папку в архив и поставил на нее символический пароль «12345», программа подобрала его за 5 минут.

    А теперь о том как все это делается.

    Для начала запускаем программу и ставим необходимые настройки. Во вкладке Range (Набор) я поставил флажок напротив All digits (Все цифры). Если вы точно не знаете, из каких символов состоит пароль, то ставьте All printable (Все печатаемые).

    В разделе Type of attack (Тип атаки) я выбрал Brute-force (Методом перебора) и напротив Start from (начинать с) я поставил 1.

    Далее я перешел во вкладку Length (Длина), где необходимо было поставить предполагаемую минимальную и максимальную длину пароля.

    После этого необходимо выбрать запароленный файл при помощи кнопки Open (Открыть) в левом верхнем углу и нажать на старт.

    Спустя некоторое время программа мне выдала следующий результат:

    Как видим, напротив строки Password for this file стоит «12345», как я и устанавливал. Теперь для того чтобы открыть архив необходимо просто ввести полученный результат.

    Вебмастер. Высшее образование по специальности "Защита информации". Создатель портала comp-profi.com. Автор большинства статей и уроков компьютерной грамотности

    Спасибо за программу. Реально работает. Тем, кому не помог данный способ, советую использовать программу Manyprog Zip Password Recovery

    Читайте также:  Заливка объекта в coreldraw

    скажите почему win-zip отказывает в доступе?

    rar это значит раритетный материал, старый то есть, понимаешь?

    што значит расширение.rar скажите плиз..

    С домашнего ноута не могу зайти на сайт,не принимает пароль. С рабочего вход-без проблем.

    Суть вопроса такова. Игровые файлы name.sii. Допустим их 5 штук. Все это дело архивируется zip архиватором без сжатия. Получаем архив name.zip. Далее лочим его прогой lockscs.exe. Теперь при открытии архива все файлы имеют вид name.sii* и при попытке открыть их запрашивают пароль, но в игре работают нормально.
    Вопрос такой: можно ли разлочить/разблокировать такой архив?

    А кто может помочь взломать zip архив метод сжатия — без сжатия , но zip не берет его потому что на архив наложен какой — то дополнительный алгоритм , а не пароль. архив небольшой 12 килобайт, в нем несколько текстовых файлов.

    RarSwitch v. 5.0.
    http://crack.x.gg

    Супер… просто СУПЕР… у меня с 7-ю знаками (причем и цифры, и буквы, и строчные, и заглавные, и символы были) за 391 мс взломал.

    Какой хороший сайт. Столько интересного и полезного.Скачивать прям одно удовольствие,обсуждение тем интересных и полезных. Может кто подскажет где базу данных теле2 можно скачать. Третий год бьюсь. Мож у кого завалялась хоть старенькая, мылом на deamitt@yandex.ru бросте…

    Спасибо! Все получилось. )))

    да блин, второй раз код выкладываю ARCHPRP-LEHKE-58253-RHCZW-73269

    кто может сказать как можно узнать код без смс програму winzip2012

    вот текст каторый надо отправить dx354560909001 на номер 3353 помагите

    Advanced Archive Password Recovery Professional 4.53 + Ключ

    Чувак спасиб большое скачал нечего не платил все супер респект тебе

    Advanced Archive Password Recovery

    u mnja vse rabotaet hrwo

    я скачал anti-archive-pro.exe но он тоже платный у кого нибуть есть кряк или кейген к ниму

    Не могу распаковыват запароленную рар архив плз помогите

    вот етот файл 3G Unlimiter запаролен! плз помогите

    xotite skazat? chto na exe. programmi s trebovaniem sms koda net nikakoy programmi? nu xot kakoy nibud est vixod??

    Да работает! На полную активацию проги"Кряк" ссылка вверху есть! Итоже рабочая. Спасбо.

    А что делать если прога в архиве запаролена?
    То есть в архив можно запихнуть хоть десяток файлов и извлечь их без особенного труда кроме запароленного файла.
    Что делать? Подскажите инструмент для борьбы с этой заразой!

    люди а smart zip он взломает?

    ВЗKОМАЛ ПАРОЛЬ ZIP АРХИВА ОКАЗЫВАЕТСЯ МОЖНО ВЗЛОМАТЬ

    Здравствуйте спешу вас расстроить вы наверно говорите о распаковывающий архив zip,rar,tar,exe и ведетесь на большую скорость скачивания вот скачайте такой файл прямо сейчас теперь скачали отлично проверьте сколько он весит а сколько хотите скачать вы ну вот и думайте это же обдираловка с разводом

    exe эта прога не ломает…

    блин как взломать rar c паролем а тоблин просят денег им ещё переслать

    а где её скачать

    Пацаны, мне бы архивчик "exe" запаролированный установить на комп. В этом архиве набор документов HTML (таблицы и картинки со ссылками друг на друга).
    Вот бы пароль подобрать, или этот архив разархивировать, а??

    эту прогу на торрентах можно взять (русифицир.).
    НО ОНА НЕ ЛОМАЕТ ЕХЕ АРХИВЫ.
    АВТОР, ТЫ СЛЫШИШЬ!
    ЗАЧЕМ ПИШЕШ: Программа для подбора паролей к архиву типа rar, zip, exe называется Advanced Archive Password Recovery

    to Сергей. Не я автор программы. На официальном сайте четко написано, что она распаковывает архивы в формате EXE, которые созданы архиваторами PKZip, WinZip, RAR и WinRAR. Что у вас там за архивы я не знаю

    Если сильно надо, то сначала делаешь копию файла затем изменяешь расширение с zip.exe на zip.txt и открываешь падом. вбиваешь в поиск номер на который надо отправить смс и нажимаешь ОК. В полученной строке ищешь переход на строку с паролем копируешь пароль, если не то, нажимаешь далее пока не найдешь, и вуаля архив распакован, но не для всех архивов схема расоложения пароля одинакова , надо поискать , но работает на 100%

    ОБЯЗАТЕЛЬНО, БЕСПЛАТНО эту предлагаемую прогу можно скачать через медиаджет там она идёт с ключом, если заблокируют её пишите мне на маил скину))) respekt.krasilnikov@mail.ru

    a kakoi progoi mojno vzlomat platnyi zip.exe vse-taki.

    А как создать архив zip.exe?

    кстати, прога на русском языке

    Вадим yets kryak na etu progu napishi agentwbond@mail.ru ya tebe dam prosto tak

    А где на .zip.exe найти взломщик.

    это точно пока най дёт этот грёбанй код на верно ет идеоты кторые програмировали это Zombi-2__olololka.my1.ru__2.rar не да ют даже шансов но надуюсь што най дётса и на эту гадость код для rar

    уууууу очень долго ждать чёрт бляха муха

    оййййёёёёёёёй ж дать

    кто эту програму рзместил бестолку ломать кода а сли пароль очень длиный кроче долго долга долга долга долга не 1мсец а 100 лет не повериш а это факт

    Привет всем ! кто ишет программу для обхода смс платных архивов вот сижу в yandexe? google и youtube! но так насмотрелся роликов думал это лехко а сама программы нету хот скачал много программу для взлома но у всех есть тыпа отправка смс ! ну я подумал что это не реально это просто лахатрон !

    admin

    Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *