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

 eXeL@B —› Программирование —› Восстановление секции exe из dll
Посл.ответ Сообщение

Ранг: 7.1 (гость), 2thx
Активность: 0.070.04
Статус: Участник

Создано: 15 декабря 2019 08:00
· Личное сообщение · #1

Такое возможно?




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

Создано: 15 декабря 2019 08:35
· Личное сообщение · #2

А по-русски?




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 15 декабря 2019 08:39
· Личное сообщение · #3

Archer пишет:
А по-русски?


Unless I am very much mistaken, our friend Nihil enim is asking if it is possible to borrow a section from a dll file and move it into an exe file.

-----
Give me a HANDLE and I will move the Earth.




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

Создано: 15 декабря 2019 13:56
· Личное сообщение · #4

Отчего ж нет. Добавляешь секцию, вставляешь содержимое. В чем вопрос-то?

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




Ранг: 7.1 (гость), 2thx
Активность: 0.070.04
Статус: Участник

Создано: 15 декабря 2019 16:01
· Личное сообщение · #5

Надо менять .text секцию при старте проги



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

Создано: 15 декабря 2019 19:56 · Поправил: TryAga1n
· Личное сообщение · #6

1. Поставить в характеристиках секции .text права на запись
2. Внедрить свой код на замену секции в свободном месте
3. Через TLS вызвать свой код, который все сделает.
3.1 Либо сменить EP на свой код и в конце джамп на ОЕР
Как-то так



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 15 декабря 2019 21:25
· Личное сообщение · #7

Nihil enim Надо подгрузить в чужой процесс при его старте нашу dll, которая до выполнения чужого кода его подменит? Надо подробнее задачу описывать.

Тут надо определиться, мы запуск чужого exe из нашего кода инициируем, или нет.

Если из нашего, то тут можно и вообще без dll. Стартовать с флагом CREATE_SUSPENDED, VirtualProtectEx -ом разрешить запись в секцию, WriteProcessMemory, ResumeThread.

Если нет, то кто нибудь другой подскажет )



Ранг: 7.1 (гость), 2thx
Активность: 0.070.04
Статус: Участник

Создано: 16 декабря 2019 01:27
· Личное сообщение · #8

ant_man запуск своего екзешника

Добавлено спустя 5 минут
ant_man dll нужна



Ранг: 173.8 (ветеран), 208thx
Активность: 0.120.36
Статус: Участник

Создано: 16 декабря 2019 02:03
· Личное сообщение · #9

Уже 8 постов, а задача так и не поставлена.
Восстановление это возвращение к исходному состоянию. Что повредило ваш ехе и почему его надо восстанавливать из dll? Я вот сходу не могу понять




Ранг: 271.4 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 16 декабря 2019 08:01
· Личное сообщение · #10

Если длл в импорте ехе, то dllMain() получит управление раньше main() ехе и сможет восстановить .text секцию и даже окислить, если потребуется. Что бы с этой секцией до этого ни произошло и за каким смыслом это восстановление ни понадобилось. Ответ - да, такое возможно.

-----
2 оттенка серого




Ранг: 7.1 (гость), 2thx
Активность: 0.070.04
Статус: Участник

Создано: 16 декабря 2019 08:34
· Личное сообщение · #11

VOLKOFF ScyllaHide например

Добавлено спустя 0 минут
f13nd что значит окислить в вашей трактовке?




Ранг: 271.4 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 16 декабря 2019 08:53
· Личное сообщение · #12

Nihil enim пишет:
что значит окислить в вашей трактовке?

Шутка юмора (отсылка к дисциплине "химия", где окисление и восстановление два противоположных процессна), указывающая на невнятность термина "восстановление" в данном контексте и вообще отсутствие конкретики хоть в чем-то.

-----
2 оттенка серого


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

Ранг: 173.8 (ветеран), 208thx
Активность: 0.120.36
Статус: Участник

Создано: 16 декабря 2019 08:59 · Поправил: VOLKOFF
· Личное сообщение · #13

Nihil enim пишет:
ScyllaHide например

Можно было так сразу и написать, было бы понятнее.
Тут вообще все "просто", что-то из разряда замапить целевой файл как образ, сравнить с текущей памятью и перезаписать нужное поверх (можно по хэшу целостность проверять).
Однако если мы говорим именно о ScyllaHide, то хуки в основном идут по библиотекам практически не затрагивая код основного модуля и "распатчивать" надо там, хотя принцип тот же (можно впрочем и точечно пройтись), плюс есть нюансы.
Для Scylla вообще говоря уже готовые решения на гитхабе есть.




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 16 декабря 2019 09:07
· Личное сообщение · #14

Nihil enim пишет:
Такое возможно?


на вопрос, поставленый таким образом, так и хочется ответить: "ПОПРОБУЙ САМ, ТОГДА УЗНАЕШЬ!"
А если серьезно, то кто мешает попытаться что-то сделать самостоятельно, а уже потом приходить с конкретными вопросами?

-----
Give me a HANDLE and I will move the Earth.




Ранг: 7.1 (гость), 2thx
Активность: 0.070.04
Статус: Участник

Создано: 16 декабря 2019 09:27
· Личное сообщение · #15

задача решена




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

Создано: 16 декабря 2019 09:28
· Личное сообщение · #16

Тогда закрыто.


 eXeL@B —› Программирование —› Восстановление секции exe из dll
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати