Сейчас на форуме: Rio, vsv1, site-pro (+7 невидимых)

 eXeL@B —› Софт, инструменты —› Инжект кода в ПЕфайл, если такая утилита?
Посл.ответ Сообщение

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

Создано: 17 апреля 2014 09:53
· Личное сообщение · #1

Что бы сразу в файл инжектилось, а не в процесс.Например инжектируемый код оформлен в виде длл, в длл одна экспортируемая ф-ция примерно такого вида:
Code:
  1. extern "C" __declspec(dllexport) void WINAPI EnterCode(DWORD OEP,DWORD base,char *data,DWORD dataSZ)
  2. {
  3.          if(datSZ!=0)
  4.          {
  5.                  DATA=(char*)malloc(datSZ);
  6.                  memcpy(DATA,dat,datSZ);
  7.          }
  8.          /*CreateThread(0,0,WorkThr,0,0,0); или какой то другой код*/
  9.          DWORD ForCall=OEP+base;
  10.          if(OEP!=0)
  11.          {
  12.                  _asm
  13.                  {
  14.                         call ForCall
  15.                  }
  16.          }
  17.          ExitProcess(0);
  18.          return;
  19. }

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



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 17 апреля 2014 10:07 · Поправил: TryAga1n
· Личное сообщение · #2

PETools, CFFExplorer, PE-Bear например, тысячи их



Ранг: 49.7 (посетитель), 19thx
Активность: 0.050
Статус: Участник

Создано: 17 апреля 2014 10:18
· Личное сообщение · #3

добавь (с помощью того же CFF Explorer) в таблицу импорта EXE функцию
MyDLLFunc (ну или как ты её обозвал) библиотеки MyDLL.dll
затем в пропиши вызов этой ф-ии из тела EXE
это самый простой способ.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 17 апреля 2014 10:48
· Личное сообщение · #4

ТС, по видимому, спрашивают про утил, делающую это автоматически.



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

Создано: 17 апреля 2014 11:48
· Личное сообщение · #5

Gideon Vi пишет:
ТС, по видимому, спрашивают про утил, делающую это автоматически.

Именно, не комбайн для редактирования ПЕ файлов,а именно лишь специализированное внедрение такого кода в формате длл.



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 17 апреля 2014 12:52
· Личное сообщение · #6

Даже если и нет, тулза не будет актуальной




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 17 апреля 2014 13:05
· Личное сообщение · #7

kruasancheg, врятли Вам нужно обрабатывать десятки файлов только ради этого. Закинуть свою библиотеку в импорт при помощи того же CFF Explorer (в котором кроме этого много полезного) - дело пары кликов.




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

Создано: 17 апреля 2014 16:37 · Поправил: UniSoft
· Личное сообщение · #8

по-моему такая тулза бесполезна...
Но вот тулза типа мемори-патчера, работающая на уровне сервиса или драйвера,
которая загружалась бы автоматически с системой
и отлавливала запуски новых процессов и загрузку dll и вобщем мем-патчила их, если описание есть в базе...
ну например, храним базу в ini файле:

[c:\Program Files\some.exe] ; тоже и для dll'ок
size=12345
crc32=12345678
check1=00400FF0:0000000000 ; чтобы убедиться что там нужное...
patch1=00400FF0:31C0C20C00 ; сам патч
patch2=00402000:9090909090 ; второй патч, и т.д.
hookaddr=004XXXXX:004XXXXX ; хук адреса, откуда:куда
hookAPI=Wintrust.WinVerifyTrust:00400FF0 ; API:куда прыгнуть
replace=addr:size:pattern:data
fillnop = addr:size
fillzero = addr:size
fillint3 = addr:size
ну и т.д.

Вобщем патчер, но без физического патча файлов на диске...
Знаю, что можно просто лоадер написать... Но так было бы удобнее.

PS: так, размышления... и не сравнивайте со всякими артманями и т.д.
Таких тулз пока нет и не было.




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 17 апреля 2014 16:41
· Личное сообщение · #9

kruasancheg
если это будет для WinAll+LinAll+Mac+ARM - скажу да

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




Ранг: 36.2 (посетитель), 1thx
Активность: 0.010
Статус: Участник

Создано: 17 апреля 2014 17:19
· Личное сообщение · #10

добавь (с помощью того же CFF Explorer) в таблицу импорта EXE функцию
MyDLLFunc (ну или как ты её обозвал) библиотеки MyDLL.dll
затем в пропиши вызов этой ф-ии из тела EXE
это самый простой способ.

достаточно ж вроде просто добавить в импорт exe нужную dll и вставить в ее DllMain вызов нужного кода.



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

Создано: 17 апреля 2014 17:47
· Личное сообщение · #11

alt76 пишет:
достаточно ж вроде просто добавить в импорт exe нужную dll и вставить в ее DllMain вызов нужного кода.

Оно не будет одним целым с патченным экзешником.




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 17 апреля 2014 18:03 · Поправил: ajax
· Личное сообщение · #12

kruasancheg
матчасть учите - FF15/FF25 - прямой вызов. и вариантов масса. вплоть до инъекции в хеадер и релоки, аха

-----
От многой мудрости много скорби, и умножающий знание умножает печаль


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


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

Создано: 17 апреля 2014 18:11
· Личное сообщение · #13

ajax пишет:
матчасть учите - FF15/FF25

он вероятно имеет в виду приаттачивание dll к exe




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 17 апреля 2014 18:19 · Поправил: ajax
· Личное сообщение · #14

UniSoft
я понимаю. но, оно будет именно одним целым, без хука в памяти? кста, собс-но он тоже целостность в этом плане не предлагает. про PE формат отдельная тема. если смысл loadlib() перед OEP - то это далеко не Колумб и не всегда айс
ваще бы потер все темы ентого юзера. особенно - найденая формула в прошлой впечатлила

ps: XE5-6 видел, респект сам все еще на XE3, ибо стэйбл

kruasancheg пишет:
Я имею ввиду что будет один целостный файл.Почти вирус(ПЕинфект по сути), но не размножается, потому и не вирус

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

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




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

Создано: 17 апреля 2014 18:48 · Поправил: kruasancheg
· Личное сообщение · #15

UniSoft пишет:
он вероятно имеет в виду приаттачивание dll к exe

Я имею ввиду что будет один целостный файл.Почти вирус(ПЕинфект по сути), но не размножается, потому и не вирус.



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 17 апреля 2014 19:46
· Личное сообщение · #16

Тема для оффтопа, не?




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 17 апреля 2014 20:27 · Поправил: ajax
· Личное сообщение · #17

TryAga1n
тема для - 1- гадалок - 2 - бани ТС - 3 - изучения "великого и могучего" в рамках ЕГЭ

по либе инъекции импорта не только в PE - отписал vden (приятная либа, код тоже гут), может найдет время для non-PE32, ждем-с

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




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

Создано: 13 мая 2014 13:54 · Поправил: drin
· Личное сообщение · #18

ТС явно хочет тулзу для "склеивания" двух PE файлов, хз есть ли такая в общем доступе, я готовых решений не видел, для своих целей я сам стряпал на коленке, выкладывать не собираюсь так как оно заточено только под мою задачу и ни каких не стандартных для нее ситуаций не предусмотрено... но в принципе задача вполне решаема:
1) вырезаем секцию с кодом из одного файла и добавляем ее в другой (нужны релоки хотя бы в одном из них что бы исправить адреса после изменения базового адреса)
2) ребилдим IAT, склеивая таблици из обоих файлов
3) при необходимости перестраиваем таблицы релоков и экспортов, склеивая таблици из обоих файлов
4) добавляем в конец своего кода прыжок в оригинальный Entry Point
5) правим headers (Entry Point, Size of Image, etc...)

в вашем случае вы предусматриваете переход на OEP из вклеиной ф-ии, следовательно вам нужно создать код Entry Point самому, код который будет передавать ваши аргументы в т.ч. и OEP, а ImageBase передавать не обязательно, его можно узнать из кода, хотя бы простейшим вызовом GetModuleHandle( NULL )
и тулза у вас тоже будет заточена сугубо под вашу задачу...



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

Создано: 13 мая 2014 14:33
· Личное сообщение · #19

drin пишет:
ТС явно хочет тулзу для "склеивания" двух PE файлов, хз есть ли такая в общем доступе, я готовых решений не видел,

да ладно.. гуглите "glue exe" решений масса тема подымалась не однократно.

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




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

Создано: 13 мая 2014 15:22
· Личное сообщение · #20

VodoleY пишет:
да ладно.. гуглите "glue exe" решений масса тема подымалась не однократно.

я же не говорил что не находил мне просто на глаза не попадалось, а специально я не искал


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


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