eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: vallac (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Добавить код в exe'шник (Abandonware)
Посл.ответ Сообщение

Ранг: 3.1 (гость)
Статус: Участник

Создано: 20 февраля 2012 18:42 New!
Цитата · Личное сообщение · #1

Как добавить свой код в exe'шник? Т.е. не изменить команды, а именно добавить новую порцию кода.


Ранг: 1010.0 (!!!!)
Статус: Участник

Создано: 20 февраля 2012 18:51 New!
Цитата · Личное сообщение · #2

добавить новую секцию аля .text
перенаправить в нёё с того места где надо и вернутся точно так же

| Сообщение посчитали полезным: logo2004


Ранг: 617.3 (!)
Статус: Участник

Создано: 20 февраля 2012 18:51 New!
Цитата · Личное сообщение · #3

ищешь свободное место или добавляешь новую секцию и там пишешь свой код.
или пишешь длл, и подгружаешь ее.

Ранг: 189.9 (ветеран)
Статус: Участник

Создано: 20 февраля 2012 18:55 New!
Цитата · Личное сообщение · #4

Ищи на форуме и в статьях по слову инлайн (inline).

Ранг: 300.0 (мудрец)
Статус: Участник

Создано: 20 февраля 2012 20:47 New!
Цитата · Личное сообщение · #5

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

| Сообщение посчитали полезным: logo2004


Ранг: 3.1 (гость)
Статус: Участник

Создано: 9 марта 2012 04:53 New!
Цитата · Личное сообщение · #6

Добавил новый сегмент через IDA пишу там команду jnz {адрес в нутри этого сегмента}, однако он пишет "cannot reach destination from current location"... при том что jmp добавлятся нормально...

Ранг: 3.1 (гость)
Статус: Участник

Создано: 9 марта 2012 05:33 New!
Цитата · Личное сообщение · #7

А можно ли из dll вызвать функции оригинального файла? (те, которые он не экспортирует)
На самом деле так наверно даже удобнее, удастся обернуть функции файла в свои, тем более dll ку можно и на C написать.


Ранг: 1986.5 (!!!!)
Статус: Модератор
retired

Создано: 9 марта 2012 09:14 New!
Цитата · Личное сообщение · #8

Править проще олькой или HIEW.
Вызывать функции ехе (видимо, он имелся в виду) можно, разрешаю.
З.Ы. Пользуйся кнопкой "Правка", не создавай сообщения подряд.

Ранг: 226.0 (наставник)
Статус: Участник

Создано: 9 марта 2012 12:22 New!
Цитата · Личное сообщение · #9

logo2004 пишет:
А можно ли из dll вызвать функции оригинального файла?

Можно что угодно вызвать и поменять.

Можно в EXE поменять EP например так

Code:
  1. PUSH    00xxxxxx                           ; /FileName="xxx.dll"
  2. CALL    DWORD PTR DS:[<&KERNEL32.LoadLibraryA>]             ; \LoadLibraryA
  3. PUSH    10                                 ; /Style=MB_OK|MB_ICONHAND|MB_APPLMODAL
  4. PUSH    00xxxxxx                           ; |Title = "xxx"
  5. PUSH    00xxxxxx                           ; |Text = "xxx"
  6. PUSH    0                                       ; |hOwner = NULL
  7. CALL    DWORD PTR DS:[<&USER32.MessageBoxA>]          ; \MessageBoxA
  8. PUSH    0                                       ; /ExitCode = 0
  9. CALL    DWORD PTR DS:[<&KERNEL32.ExitProcess>]               ; \ExitProcess


А в DLL сделать все что нужно, востановить EP и перейти на EP.

Ранг: -2.1 (нарушитель)
Статус: Участник

Создано: 20 июля 2017 11:22 New!
Цитата · Личное сообщение · #10

reversecode пишет:
добавить новую секцию аля .text
перенаправить в нёё с того места где надо и вернутся точно так же

Напишите пример пожалуйста
Vovan666 пишет:
ищешь свободное место или добавляешь новую секцию и там пишешь свой код.
или пишешь длл, и подгружаешь ее.

Напишите пример пожалуйста
Veliant пишет:
Если много кода, то лучше вариант с dll, тк меньше проблем с адресацией. Пишешь весь необходимый код, который надо добавить. Потом ищешь в оригинальном exe места, где нужно пропатчить или перехватить управление, и кодом в DllEntry, втыкаешь туда прыжки на себя или подменяешь адреса вызовов.

Напишите подробно, попонятнее и пример пожалуйста
SergX пишет:
Можно что угодно вызвать и поменять.

Можно в EXE поменять EP например так

Code:
PUSH    00xxxxxx                           ; /FileName="xxx.dll"
CALL    DWORD PTR DS:[<&KERNEL32.LoadLibraryA>]             ; \LoadLibraryA
PUSH    10                                 ; /Style=MB_OK|MB_ICONHAND|MB_APPLMODAL
PUSH    00xxxxxx                           ; |Title = "xxx"
PUSH    00xxxxxx                           ; |Text = "xxx"
PUSH    0                                       ; |hOwner = NULL
CALL    DWORD PTR DS:[<&USER32.MessageBoxA>]          ; \MessageBoxA
PUSH    0                                       ; /ExitCode = 0
CALL    DWORD PTR DS:[<&KERNEL32.ExitProcess>]               ; \ExitProcess


А в DLL сделать все что нужно, востановить EP и перейти на EP.

пНапишите оподробнее пожалуйста и пример из программы, если можно

Ранг: 568.5 (!)
Статус: Модератор

Создано: 20 июля 2017 11:56 New!
Цитата · Личное сообщение · #11

Animelubitel
Не нужно плодить топики. Мало того что своей работы никакой нет, так еще и гадишь.

Ранг: 94.1 (постоянный)
Статус: Участник

Создано: 22 июля 2017 17:25 New!
Цитата · Личное сообщение · #12

logo2004
изучай PE
https://habrahabr.ru/post/266831/

Ранг: 287.7 (наставник)
Статус: Модератор
CrackLab

Создано: 22 июля 2017 17:57 New!
Цитата · Личное сообщение · #13

Rio Заканчивай спамить по темам, или ты думаешь он твоего ответа > 5 лет ждал?!

Ранг: 94.1 (постоянный)
Статус: Участник

Создано: 23 июля 2017 02:30 · Поправил: Rio New!
Цитата · Личное сообщение · #14

SReg пишет:
Rio Заканчивай спамить по темам

В чём заключается мой спам, в том что предоставил инфу?
Если ему не нужно, то автор топика мне скажет об этом, а если Вам не нравится не читайте, а лучше укажите правильный вектор автору.

Ранг: 287.7 (наставник)
Статус: Модератор
CrackLab

Создано: 23 июля 2017 05:32 New!
Цитата · Личное сообщение · #15

Rio
Автору ответили первым же постом, твоя инфа неактуальна для ТС с февраля 2012 года. 2012-го, Карл!

| Сообщение посчитали полезным: sefkrd


Ранг: 94.1 (постоянный)
Статус: Участник

Создано: 23 июля 2017 07:54 New!
Цитата · Личное сообщение · #16

SReg пишет:
Карл!

))
Rio)
 eXeL@B —› Вопросы новичков —› Добавить код в exe'шник (Abandonware)
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS