Как взломать приложение exe
>Q:Какими
программками посоветуешь пользоваться?
A:Отладчики:
DOS: Soft-Ice, DeGlucker, CUP /d, TD(только для
начинающих),386(тоже),
Еще есть: AFDPro, GameTools, AxeHack, но это только для
частных случаев.
WIN: Soft-Ice, TD , встроенный в WDASM32 отладчик
Вьюеры/редакторы:
DOS/WIN: HiEW, BIEW, QVIEW
WIN:WDASM32
И самая рульная вещь - IDA. Это наикрутейший
дизасемблер со многими фичами и отлично
продуманной идеологией.
Унпакеры:
DOS:unp, cup386, unpack
WIN:procdump
>Q: Хм! Думаешь мне что нибудь говорят слова
`отладчик', `унпакер', `дизасемблер'.
A: Хм! Очень плохо 🙁
_Отладчики_(они же дебагеры) были придуманы для
поиска ошибок в программах.Но вскоре были
приспособлены хакерами для своих нужд. А вскоре
появились специальный хакерские
отладчики.Отладчики посволяют пройти программу
по шагам, останавливаться толко в определенных
местах программы и т.д. При этом хакер полностью
контролирует трассируемую(так называется
выполнение по шагам) программу. _Унпакеры_.
Производители программ часто упаковывают свои
программы(чтобы они занимали меньше места) или
криптуют(зашифровывают) их (чтобы хакеры или
конкуренты не могли взломать/посмотреть ее).
Первое и второе усложняет взлом. Чтобы
избавиться от проблем хорошие люди делают
унпакеры/ункрипторы, которые позволяют
распаковать/раскриптовать эти программы.
_Дизасемблер_ позволяет из исполняемого файла (com,
exe, . ) получить листинг этой программы на языке
ассемблера. Ассемблер это эквивалент машинного
кода, только записаный более-менее понятными
словами и обозначениями.
>Q:Что мне нужно знать для того чтобы стать
хакером?
A:Просто знать что-то конечно недостаточно, но вот
несколько советов:
Во-первых не обойтись без знания ассемблера.
Учить его можно по-разному. Сначала нужно
почитать книжки или доки по ассемблеру, вникнуть
в устройство компьютера (прерывания,организация
памяти,ввод/вывод на уровне портов). Неплохо
написать
несколько небольших программ на асме или хотя бы
посмотреть как это делают другие. Хорошо бы
выучить какой-нить язык высокого уровня. Лично
мне кажется что для
этого идеально подходит С. Ведь С некоторые даже
называют языком среднего уровня, т.к. он наиболее
близок к ассемблеру и одновременно обладает
огромной мощью.
Потом начинайте ломать всякие кракмисы. Они ведь
для этого и сделаны 😉 Переходите
к взлому программ. Вначале посмотрите примеры, а
затем ломайте сами. Учитесь пользоваться
различными программами. Например, IDA очень трудно
освоить одним наскоком, но сколько возможностей
она дает! Soft-Ice тоже имеет много фич которые вы
можете никогда и не узнать, но при их применении
жизнь может сильно облегчиться.
>Q:Полного знания паскаля хватит, чтобы
заниматься хакингом?
A: Повторюсь что ты должны знать в первую очередь
асм. Конечно, если ты знаешь паскаль очень хорошо,
то тебе его надолго хватит одного. Но в идеале
нужно знать _несколько_ языков.
Например: ASM, C, C++,PAS, Perl и т.д.
>Q:Вот ты говоришь что IDA крутая вешь? А для чего я
ее могу применять? Ясно конечно что для
дизасемблирования, но ты говорил про всякие
крутые фичи.
A: Самое простое: поиск ссылок на строки
регистрации. Например, программа пишет тебе на
экран "Unregistered". Ты ищещь эту строку в
программе, а затем ссылки на нее. Т.е. определяешь
в каких местах программы идет обращение к этой
строке. А где-то рядом будет проверка
пароля/рег.номера. Еще такая замечательная вещь.
IDA использует технологию FLIRT. При помощи нее можно
обнаруживать в программах
вызовы функций стандартных библиотек и вместо call
12345678h
ты увидишь: call _strcpy
А что делает strcpy ты уже должен знать 😉 Еще в IDA
есть встроенный язык, очень похожий на С. С
помощью него можно вытворять с программой что
угодно: например, расшифровать зашифрованную
часть программы.
>Q:Что такое Soft-Ice и как этой прогой
пользоваться?
A:Как было сказано вначале это отладчик. Кстати,
очень крутой отладчик. По фичности он опережает
всех. А насчет пользования, то софт-айз имеет кучу
команд, и нужно знать что какая из них делает. Об
этом можно прочитать в различных ФАКах о
софтайзе.
>Q:А если нету у меня такого ФАКа? Что делать?
A:Искать! Может быть в следующей версии этого ФАКа
я добавлю команды софтайза, но пока придется
довольствоваться командой `H'. Без
параметров она выдает список всех команд с
кратким описанием, а если в качестве параметра
указать название какой-нить команды софтайза, то
получишь немного более подробную справку.
>Q:Я уже приготовился ломать, но понял что не
знаю как запускать софтайз 🙁
A:Кстати если я теперь говорю про софтайз, то я
имею ввиду виндовую версию. Софтайз запускается
из режима эмуляции ДОСа по виндами. Нужно просто
запустить файл winice.exe. Когда загрузятся винды
запускаете Symbol Loader. А в нем в File->Open. Выбираете
ломаемую прогу и Module->Load.
>Q: Все о каких-то бряках говорят. Что это?
A: Бряк, брякпоинт, брекпоинт, breakpoint - точка
останова. Отладчики позволяют поставить бряк в
каком-нить месте программы и запустить ее. Когда
программа дойдет до этого места - она
остановиться и ты окажешься в дебагере, а там
делай чего хочешь.
>Q: Один мой друг хвастался что все программы
битхаком каким-то ломает. Что это такое?
A: Битхак (bithack) - это метод взлома при котором в
программе меняются несколько бит или байт.
Например если известно что по такому-то адресу
происходит переход, если программа не
зарегестрирована, то можно команду перехода,
которая находится по
этому адресу, заменить, например, на команду NOP.
Если ты не знаешь что это за команда, то серьезнее
отнесись к изучению асма 😉
>Q: Ясно. А что такое метод Бруте Форсе?
A: Во-первых пишется с маленькой буквы - бруте
форсе(brute force) ;)) А во вторых дословно переводиться
как метод `грубой силы', т.е., например, простой
перебор всех возможных паролей.
>Q:Почему софтайз не дает поставить брякпоинт на
некоторые функции, например на GetDlgItemTextA?
A:Все функции храняться в библиотеках. Например
GetDlgItemTextA находится в USER32.DLL К тому же функции
грузятся в память по определенным адресам. И
брякпоинты ставятся не на функции а на адреса
соответсвующие им. А что бы софтайз знал где - что,
нужно экспортировать в софтайз нужные
библиотеки. Делается это в winice.dat
Обычно эти строки уже есть, но закомментированы и
нужно просто убрать `;'
>Q:Все сделал, загрузил. Теперь хочу начать
ломать программу. Она спрашивает
регистрационный номер(РН). Что делать?
>Q: Отыскать? А как?
A: Можно несколькими путями.
1. Отлавливаем место где вводится РН. Затем
трассируем по шагам пока не найдем сравнение.
Здесь обчно делают так bpx GetDlgItemTextA ставят бряк на
функцию, при помощи которой обычно считывается
строка из окна ввода. Можно ставить бряки на
другие функции GetDlgItem*, GetWindowText*, hmemcpy. Хочу
обратить внимание на последнюю. Она просто
выполняет копирование участка памяти, но она
применяется поголовно всеми функциями ввода
данных. Поэтому бряк можно ставить и на нее. Но
нужно помнить, что она может вызывается и при
простом копировании данных, поэтому бряк на нее
нужно ставить только перед нажатием кнопки `OK'.
Ввод РН можно отловить и так: Ввели РН. И не
нажимая ОК жмете Ctrl+D. Теперь вы в софт ксора к
данным дает исходные данные.
Взлом пароля
Конечно, легче будет подобрать пароль в том случае, если устанавливали его Вы, но забыли, и можете вспомнить хотя бы приблизительные символы. Если же это архив из Интернета, и Вы совершенно не представляете, какой может быть установлен на него пароль, дело осложняется.
Сейчас мы рассмотрим, как со всем этим работать.
Первым делом нужно запустить программу и установить необходимые настройки. Открываем вкладку Range (Набор) и устанавливаем переключатель на позиции All digits (Все цифры). All printable (Все печатаемые) устанавливаем в тех случаях, если мы не знаем, какие символы входят в пароль.
Теперь перейдем в раздел Type of attack (Тип атаки) и установим Brute-force (Методом перебора). А напротив Start from (начинать с) установим единицу.
Как взломать архив rar, zip, exe
Теперь мы открываем вкладку Length (Длина). Здесь мы выбираем длину пароля, как максимальную, так и минимальную.
Как взломать архив rar, zip, exe
Выбираем нужный нам файл, нажав на кнопку Open (Открыть). Она находится в левом верхнем углу. Затем нажимаем на старт.
Как взломать архив rar, zip, exe
Прошло немного времени, и мы получили наш пароль — напротив пункта Password for this file мы видим именно ту комбинацию цифр, которую устанавливали вначале. Используем этот пароль для открытия архива.
Случается так, что мы хотим получить доступ к ядру какого-либо приложения. Это позволяет изменить иконку, поменять текст, в конце концов, произвести русификацию. Именно об этом и пойдет речь в приведенной ниже пошаговой инструкции. Когда она подойдет к концу, вы сможете бесплатно скачать последнюю русскую версию программы для взлома других программ.
Описание и возможности
Начнем с короткого вступления. Как известно, любые приложения, работающие в среде операционных систем от Microsoft, состоят из так называемых исполняемых библиотек (DLL). Так вот, при помощи программы, о которой сегодня идет речь, вы сможете открыть любой такой файл и не просто открыть, а изменить его и в таком виде сохранить.
Данная тема заслуживает более длинного пояснения. Если вы хотите тщательно разобраться с приложением, просто перейдите в самый конец этой инструкции и просмотрите видео, в котором автор все показывает на собственном компьютере.
Как пользоваться
Теперь переходим к самому интересному. Дальше вас ждет практика.
Загрузка и установка
Сначала давайте разберемся, как бесплатно скачать приложение для взлома других приложений:
- Перейдите в конец этой статьи и нажмите там кнопку, при помощи которой загрузите на свой компьютер архив с приложением. Распаковываем установочный файл и запускаем его.
- Второй шаг предусматривает изменение пути установки. Если каталог по умолчанию вас не устраивает, просто перейдите дальше, нажав на обозначенную кнопку.
- На следующем этапе нам предложат настроить ярлык в меню «Пуск». Оставляем все как есть и переходим к следующему шагу, кликнув по «Next».
- Теперь запускаем установку. Для этого жмем по обозначенной кнопке.
- Уже через несколько секунд инсталляция завершится, и мы сможем закрыть установщик, нажав на отмеченной элемент.
Что ж, как видите, все очень просто.
Инструкция по работе
Можно переходить непосредственно к работе с программой и рассматривать, как с ее помощью взломать другие приложения. Тут все очень просто. Сначала при помощи иконки в виде папки мы находим любой Dll и открываем его. В результате в левой части приложения вы увидите список каталогов, которые находятся внутри данного файла. В правой половине, наоборот, будет появляться содержимое этих каталогов. Соответственно, это содержимое можно менять.
Когда все нужные изменения будут внесены, вы просто сохраняете Dll, нажав на кнопку с изображением дискеты.
Достоинства и недостатки
Давайте рассмотрим положительные и отрицательные особенности использования данного инструмента.
- Программа не нуждается в мощном компьютере.
- Приложение очень просто и подойдет даже новичкам.
- Масса положительных отзывов от довольных пользователей.
Похожие приложения
Давайте рассмотрим еще несколько программ, способных взламывать другие приложения:
- PE Explorer.
- Free Resource Extractor.
- ResEdit.
- Anolis Resourcer.
- Resource Hacker FX.
- XN Resource Editor.
Системные требования
Как уже было сказано, данный инструмент отличается своей нетребовательностью к ресурсам ПК.
- Центральный процессор: от 1 ГГц.
- Оперативная память: от 2 Гб ОЗУ.
- Пространство на жестком диске: от 5 Мб.
- Платформа: Microsoft Windows 32 или 64 бит.
КРазработчик: | Angus Johnson |
Информация обновлена и актуальна: | 2021 год |
Название: | Resource Hacker |
Платформа: | Windows XP, 7, 8, 10 |
Язык: | Английский |
Лицензия: | Бесплатно |
Пароль к архиву: | bestsoft.club |
Видеообзор
Данное видео поможет разобраться с приложением.
Вопросы и ответы
А теперь, когда наша инструкция закончена, мы можем лишь напомнить об одном правиле своего сайта. Если в процессе работы с программой появятся проблемы, опишите ситуацию в комментариях, которые найдете ниже. Мы ответим как можно быстрее и поможем советом.
Чтобы обьяснить почему происходит взлом программного обеспечения, создадим тестувую программу имитирущую простейший процесс регистрации с вводом ключа.
Пример программы будет приведен на среде разработки Borland C ++ Builder 6, эта среда разработки отлично подходит для нашего опыта, позволяет быстро разработать интерфейс программы без использования ручного описания создания окон средствами WinAPI , и при этом компилятор собирает со стандартной структурой EXE файл в отличие от технологии NET . Для технологии NET данный демонтрационный пример неподходит.
Создадим в C ++ Builder 6 стандартный проект программы с оконным интерфейсом.
Расположим на форме Form 1 одно текстовое поле Edit 1 и кнопку Button 1
Должно получиться примерно так:
Делаем двойной клик по кнопке Button 1 чтобы написать код действия при нажатии на эту кнопку.
Открылся редактор кода в котором мы напишем все волишь одно условие проверки текста в текстовом поле Edit 1
if ( Edit 1-> Text =="0000-2222-1111") ShowMessage ("Вы успешно зарегистрировали программу");
else ShowMessage ("Вы ввели неправельный ключ, пожалуйста попробуйте снова ввести ключ")
Запускаем программу и проверяем.
Вводим 123 в текстовое поле и нажимаем регистрация
При этом введенном тексте мы увидим следущее окно
Теперь пробуем ввести правельный ключ 0000-2222-1111
Ну вот мы реализовали простейшую проверку ключа при регистрации парограммы, и теперь настало время взломать данную программу.
Есть несколько способов взлома:
-взлом подбором ключа – при длинных ключах может занять годы, он нам не подходит.
Смысл метода – подбор ключа по порядку (следует использовать когда пароль несодержит буквы и не слишком длинный).
-взлом путем поиска строк ключа в коде программы с помощью отладчиков и дизассемблеров. Такой метод позволяет найти правельный ключ которые находиться в коде в виде строки а не генерируется определенным образом по заданной формуле.
Первые два метода требуют получить код на ассемблере, который не всегда получается получить благодаря использованию разработчиками упаковщиков и протекторов EXE файлов. Упаковщики очень часто сжимают ЕХЕ файл чтобы получить более малый его размер. При использовании упакощиков псмотреть код на ассмеблере не получиться, и чтобы его получить необходимо предварительно распаковать ЕХЕ файл. Для распаковки ЕХЕ файлов существуют специализаированые анализаторы которые помогут подсказать чем можно распаковать данный файл. Протекторы же намеряно упаковывают ЕХЕ файл с внесением различного мусора в код программы чтобы помещать взлому программы.
Так-как мы сами написали программу для тестирования взлома нам не надо искать распаковщики, но очень часто даже коммерческие программы не упаковываются и не используют протекторов.
И так нам понадобиться отладчик OllyDBG , он подходит как новичкам так и профессионалам, к нему существует большое количество различных плагинов.
Откроем файл ЕХЕ нашей программы
После открытия мы увидем такой вид:
В левом верхнем окне мы видим код ассемблера, но мы будем искать в коде правельный ключ, воспользуемся для этого поиском.
Сразу же видим строку ASCII , это и есть наш ключ.
Так-как мы уже знаем наш ключ, то уже уверены что он подойдет.
В реальных программах регистрация сделана анологична, не считая тех программ которые защищены различными электронными ключами или выщитывающие правельный ключ по серийным номерам оборудования (процессора, жесткого диска, монитора).
Попробуем пойти дальеш чтобы непросто узнать наш ключ, а именно осуществить взлом.
Суть дальнейшего взлома – временно изменить код программы чтобы подходил любой ключ.
Для начала необходимо сделать некоторое отступление и описать немного команд языка Ассемблера.
Чтобы понять что здесь я напишу нужны маленькие основы работы условий языков программрования.
Кто знаком с оператором языка GOTO (есть и в Basic и C ++ и еще много где), то в ассмеблере роль этого оператора выполняет JMP ,
Пример перехода на метку start
JMP позволяет делать как переход на метку так и на адрес в памяти.
JZ / JE
JZ / JE условие если равно (пример на С++ if (…==…) )
JNZ / JNE
JNZ / JNE условие если не равно (пример на С++ if (…!=…) )
Так же есть ещё один полезный оператор в ассемблере NOP , который ничего не делает.
Благодаря ему можно условный переход заменить на NOP , тоесть ничего ни делание.
Теперь когда есть немного теории перейдем к практике, попробуем найти переход.
Возвращаемся в отладчик и делаем двойной клик по строке с нашим ключем.
Мы увидем код ассемблера
Ищем ниже любой переход ( JZ , JE , JNE , JNZ , JMP )
Делаем двойной клик по JE чтобы его поменять на противоположный оператор.
Как писалось выше мы его должны заменить на противоположный был JE будет JNE .
Нажимаем Assemble и проверяем запустив проект кнопкой в отладчике
Вводим неправельный ключ
И видим, и так будет при вводе любого ключа
После закрытия отладчика к программе небудет уже подходить любой ключ, потому что все сделано было только в оперативной памяти, чтобы приучить программу всегда принимать правельный ключ необходимо написать патч или заменить вручную байты переходов в ЕХЕ файле, однако был подробно рассмотрен процесс взлома.
На этом данный материал закончен. В этом примере использовалась очень простая защита с помощью ключа, в следующей статье будет рассмотрена защита программы с помощью ключа который нельзя будет найти в виде строки и для обхода такой защиты будет использован дизассемблер IDA Pro.
Читайте также: