Сейчас на форуме: asfa, bartolomeo (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Внедрение в exe функции для выполнения
Посл.ответ Сообщение

Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 марта 2012 01:26 · Поправил: SergeyA
· Личное сообщение · #1

Здравствуйте уважаемые участики форума, возник вопрос на который сразу могут дать простой ответ и послать икать решение в поисковиках, давно увликаюсь исполняемыми файлами, конкретнее тем как они работают, вот решился попрактиковатся в этой области, есть OllyDBG, есть exe файл (прикреплён ниже),
стало интересно как записать в конец готового файла функцию SellExecute, а после запуска exe файла, что бы функция выполнилась, с OllyDBG знаком всего 2 часа, с FASM всего 5, например ShellExecute при выполнении должна запустить блокнот, если в Ваших ответах будут такие фразы как Entry Point, jmp и т. д. разъясните пожалуйста что именно функция (процедура) или вырожение делает, зараннее спасибо.

93c6_08.03.2012_EXELAB.rU.tgz - test.exe




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

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

цепляешь допольнительно секцию с помощью Lord PE, переводишь EP в начало твоей секции, и в начале твоей секции пишешь код, пример:

Code:
  1. pushad // сохраняем все регистры
  2. pushfd // тоже самое с fpu (мало ли что случится)
  3.  
  4. // Если знаком с fasm, то написать код для вызова shellexecute тебе не составит труда
  5.  
  6. popfd //восстанавливаем сначало fpu
  7. popad
  8. jmp OEP // OEP - тут точка входа, которая была ранее


WARNING!!! аверы некоторые могут ругатся на такое, типо EP не в секции .code
Если что-нить лишнее сотворишь со стеком, программа вылетит буквально сразу же.

Тут тема сразу будет засрана посыланием читать туторы и курить маны, собсно так и сделай.

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

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

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

http://zalil.ru/32840721
при условии что блокнот в c:\windows\NOTEPAD.exe

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

Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

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

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

Vovan666, Я открыл Ваш пример в OllyDBG, увидел что в конец Вы добавили

CPU Disasm
Address Hex dump Command Comments
004B1663 . 6F00 7000 650 UNICODE "open",0
004B166D 00 DB 00
004B166E 00 DB 00
004B166F . 6300 3A00 5C0 UNICODE "c:\windo"
004B167F . 7700 7300 5C0 UNICODE "ws\NOTEP"
004B168F . 4100 4400 2E0 UNICODE "AD.exe",0
004B169D 00 DB 00
004B169E 00 DB 00
004B169F 00 DB 00
004B16A0 > 6A 01 PUSH 1
004B16A2 . 6A 00 PUSH 0
004B16A4 . 6A 00 PUSH 0
004B16A6 . 68 6F164B00 PUSH 004B166F ; UNICODE "c:\windows\NOTEPAD.exe"
004B16AB . 68 63164B00 PUSH 004B1663 ; UNICODE "open"
004B16B0 . 6A 00 PUSH 0
004B16B2 . FF15 90244800 CALL DWORD PTR DS:[482490]
004B16B8 .^ E9 534CF6FF JMP 00416310

С прыжком на адресс 00416310, не могли бы Вы объяснить для чего этот адресс, это точка входа в приложение? И их там много одинаковых, нужно указывать всегда самый первый? в данном случае 00416310?


CPU Disasm
Address Hex dump Command Comments
00416310 > /0000 ADD BYTE PTR DS:[EAX],AL
00416312 . |0000 ADD BYTE PTR DS:[EAX],AL
00416314 . |0000 ADD BYTE PTR DS:[EAX],AL
00416316 . |0000 ADD BYTE PTR DS:[EAX],AL



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

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

Волшебная фраза inline UPX



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

Создано: 11 марта 2012 05:22
· Личное сообщение · #6

Dart Sergius пишет:
pushfd // тоже самое с fpu (мало ли что случится)

Эм, вообще то это сохранение регистра флагов.


 eXeL@B —› Вопросы новичков —› Внедрение в exe функции для выполнения
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати