Логотип игрового форума RF-Cheats.ru    
Новости онлайн игр Гарант RF-Cheats.ru Чёрный рынок Реклама и привилегии Разработка читов Арбитраж

Регистрация Бан-лист Сообщество ПОПУЛЯРНОЕ
Вернуться   RF-Cheats.ru - форум читеров и ботоводов > > >

Взлом и программирование

: Аспекты программирования при реализации различных методик взлома.
Читы и обход фроста для RF Online без хайдаБоты и читы для Perfect World бесплатно без хайдаМоды и читы для World of Tanks (WoT) бесплатно без хайдаМоды и читы для Armored Warfare бесплатно без хайдаБоты и читы для DOTA 2 бесплатно без хайдаБоты и читы для Black Desert Online бесплатно без хайдаЧиты на ArcheAge бесплатно без хайдаЧиты для Warface бесплатно без хайдаВзлом ВКонтакте и ОдноклассниковСписок разделов со всеми играмиЧиты для онлайн игр






Ответ
 
Сделать тему важной Опции темы
Старый 04.08.2011, 15:25   #1
bigassik
Гость
Аватар для bigassik
Сообщений: n/a
Благодарностей:
0 всего

Как внедрить код в exe-файл


*** ВСЕ НАПИСАННОЕ ИСПОЛЬЗОВАТЬ ТОЛЬКО В ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЯХ! ***

-Инструментарий-
OLLYDBG
Приложение, в которое будем вставлять свой код.
Это будет NOTEPAD.EXE.
Желательно сделать копию файла.
Это все ;)

-Начало-
Наша цель - вклеить свой код в Notepad.EXE .
Мы вклеим простой MessageBox на запуск Блокнота.
Запустим Блокнот, и убедимся, что он запускается нормально.

Если ты уверен, что это оригинальный Notepad.exe, открой его в Olly.
Появится следующее окошко:

Для того, чтобы вставлять свой код, нам нужно место для этого в коде программы.
В ехе-файлах бывает много CodeCaves. Это байты (DB 00).
Тебе нужно просто прокрутить код программы немного ниже начала, и ты узришь CodeCave:

Красным прямоугольником выделен кусок с CodeCave'ами? ;)
Сюда ты можешь вставить любой код, и твоя программа не будет вылелать.
Если ты знаешь API-функцию для вызова MessageBox просто пропусти эти строчки.



Это все, что нужно знать о MessageBox.
Давайте же сделаем что-нибудь с помощью CodeCaves.
Для того, чтобы использовать MessageBox, нам нужно создать текст, который мы будем выводить в
MessageBox. На следующей картинке я выделил пару строк с CodeCaves и
показал меню BinaryEdit для тебя (оно нам пригодится).

Если ты нажал Binary=>Edit или (CTRL+E) ты увидишь следующее окно.
Просто заполни верхнее поле так же, как и я.

Нажми OK, и ты увидишь модифицированный код (выделен красным):

Нажми теперь CTRL+A, чтобы переанализировать код.

OK! Теперь, если ты хочешь сделать заголовок сообщения другим, продублируй эту строчку
(это как второй параметр вызова процедуры).

-Немного ассемблера-

Пришло время и для ASMа ;)
Вот хороший пример!


Эти строчки, введенные в Олли будут выглядеть так:


Видишь стрелку?! ЭТО ОЧЕНЬ ВАЖНО!
Ведь если мы просто запустим программу, то ничего не произойдет. Почему?
Потому что наша маленькая процедура еще нигде не вызывается!
Нужно выписать адрес ее начала, т.е. адрес "PUSH 0", т.к. нам нужно сделать прыжок
на нашу процедуру и вернуться назад ;)
Отлично. Теперь вернись на начало программы (кнопка С на панели инструментов Олли, либо как на рисунке).

Теперь мы на самой первой строчке, которая будет выполняться.
Вы же еще помните, что наша цель - вставка своего кода?
Тогда мы продолжим!
Выделите пару строк с начала и скопируйте их в буфер обмена.

Вставьте их в любой текстовый реактор - они нам еще пригодятся.
Снова вернись на начало программы.
(На картинке выше это PUSH 70).
Двойной щелчок по этой строке отобразит нам следующее окно.
В него нужно ввести "JMP <адрес PUSH 0, который мы записывали ранее>"

Нажми кнопку Assemble и код программы снова изменится, т.е. изменения выделятся красным.

Посмотри на красный прямоугольник! На этот адрес нам нужно перепрыгнуть по завершении нашего кода.
Но если мы перепрыгнем сюда после инъекции, программа выполнится будто бы без нее
Поэтому есть еще одна штука, которую нужно сделать!
Сравни новое начало программы со старым, что мы копировали в текстовый редактор.
Ты увидишь, что две строчки переписались! Но нам нужны они для нормальной работы
программы без ошибок. Найди строки, которые перезаписались.
В моем случае это был следующий код:


Щелкни по первой строчке кода (наш JMP) и нажми ENTER.
Ты попадешь на вставленный код вызова MessageBox!
После CALL MessageBoxA нам нужно будет вставить эти две строчки И прыгнуть назад!

ВОТ ВСЕ!
(Проверить, правильно ли работает прыжок легко - Нажать на нем ENTER!)
Чтобы сохранить наш "модифицированный" Блокнот, выполни действия как на картинке:

Затем нажми Copy All. В появившемся окне нужно нажать правой кнопкой мыши,
выбрать пункт меню Save File и сохранить под новым именем. Запустите файл:


По нажатию ОК запустится Блокнот ;)

-Напоследок-
НЕ НАПРЯГАЙТЕ дебаггер вставкой шеллов, и прочего зловредного кода!

xaker.name
 
Ответить с цитированием
Сказали спасибо:
•TheSaboteur• (17.09.2011), GoodShadow (09.08.2011), fantast (07.08.2011), metokkk (06.08.2011), litvin (04.08.2011), Puck (04.08.2011), бгг (04.08.2011)


Старый 06.08.2011, 23:54   #2
metokkk
Гость
Аватар для metokkk
Сообщений: n/a
Благодарностей:
0 всего

Полезно ))
 
Ответить с цитированием
Ответ



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запуск rf.exe без запускатора Dr.Frank Программы для RF Online 5 15.04.2011 07:53
При запуске *.exe ,должен включиться timer1 [Delphi] woroms007 Взлом и программирование 3 14.01.2011 18:37
Пропадает RFlogin.exe Lastyr RFLogin для Aion, RF Online, R2 Online 4 09.02.2010 15:09

Мир танков | Проект "Армата" | ArcheAge | Black Desert | РФ Онлайн | Айон | Майнкрафт | Браузерные игры
Элдер скролс | Р2 Онлайн | Реквием Онлайн | ПУБГ | Роял Квест | ГТА Санадреас | Контра | Дота 2
Мир кораблей | Лост Арк | Arma2 DayZ mod | The War Z | Карос: Начало | Tera Online
Читы для всех Онлайн-игр