Сейчас на форуме: tyns777, cppasm, dutyfree (+8 невидимых)

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

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

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

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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

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

Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

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

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



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

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

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



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

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

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

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

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

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

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



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

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

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




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

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

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



Ранг: 226.0 (наставник), 67thx
Активность: 0.160
Статус: Участник

Создано: 09 марта 2012 12:22
· Личное сообщение · #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 (нарушитель)
Активность: 0.010
Статус: Участник

Создано: 20 июля 2017 11:22
· Личное сообщение · #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.

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



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

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

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

-----
старый пень




Ранг: 95.5 (постоянный), 36thx
Активность: 0.080.04
Статус: Участник

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

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



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

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

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



Ранг: 95.5 (постоянный), 36thx
Активность: 0.080.04
Статус: Участник

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

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

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



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

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

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

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

Ранг: 95.5 (постоянный), 36thx
Активность: 0.080.04
Статус: Участник

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

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

))
Rio)


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