Сейчас на форуме: UniSoft, _MBK_, laslo (+8 невидимых)

 eXeL@B —› Программирование —› Сдублировать длл в памяти
Посл.ответ Сообщение

Ранг: 20.4 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 11 июня 2011 23:10
· Личное сообщение · #1

Ситуация такая в памяти висит пропатченная DLL, нужно создать в памяти точно такую же, я делаю так:
Загружаю снова эту же, но уже непропатченную и переименованную DLL, потом делаю так:
Code:
  1. MoveMemory((void*)(dwHackBaseAddress), (void*)(dwORBaseAddress), DLL_IMAGE_SIZE);

Но почему то ничего не копируется, мб есть какое то низкоуровневое побайтовое копирование?
Вообще обсуждаем =\




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

Создано: 11 июня 2011 23:17 · Поправил: ajax
· Личное сообщение · #2

rep movsb

"Научишься вопросы задавать-приходи"

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




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

Создано: 11 июня 2011 23:21 · Поправил: Veliant
· Личное сообщение · #3

VirtualProtect на области памяти с флагом WRITE выставить сначала, потом вернуть на место. И сдается мне все равно придется читать таблицу секций.
Кстати rep movsD наверно побыстрей будет))

Кстати после того как скопируешь у тебя еще и референсы останутся на патченную длл. Так что профита в этом мало. Проще в загруженной оригинальной поправить таблицу экспорта на патченную. Или засплайсить все функции

А так же релоки и т.п... Очередной г-топ.
Да, да.. умная мысля приходит опосля)

Между прочим довольно распространенный метод снятия int3 бряков с системных либ.




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

Создано: 11 июня 2011 23:24 · Поправил: ajax
· Личное сообщение · #4

Veliant пишет:
VirtualProtect на области памяти с флагом WRITE выставить сначала

А так же релоки и т.п... Очередной г-топ, кг/ам.

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




Ранг: 20.4 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 11 июня 2011 23:32
· Личное сообщение · #5

Ясно, сий метод безнадёжен =\




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

Создано: 12 июня 2011 00:51
· Личное сообщение · #6

DLL_IMAGE_SIZE - константа? где определена и чему равна?

Skino пишет:
Ясно, сий метод безнадёжен

С чего взял-то?

Хоть и сами по себе задачи разрешимы, но чувствуется, что автор просто не поставил чёткой задачи для себя. Поэтому так готов сдаться на всеобщее обозрение...

Skino пишет:
Ситуация такая в памяти висит пропатченная DLL, нужно создать в памяти точно такую же, я делаю так:Загружаю снова эту же, но уже непропатченную и переименованную DLL, потом делаю так:

Ты вообще что хотел сказать? )) Хочешь, чтобы тебе уделили время - удели время, чтобы тебя поняли!

-----
IZ.RU




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

Создано: 12 июня 2011 01:23 · Поправил: hlmadip
· Личное сообщение · #7

подведу итог: вопрос нормально сформулируй




Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 12 июня 2011 01:34 · Поправил: zeppe1in
· Личное сообщение · #8

может быть хук на LoadLibrary решит вопрос.

-----
zzz





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

Создано: 12 июня 2011 01:46
· Личное сообщение · #9

zeppe1in, а ты вопрос-то понял?

-----
IZ.RU



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


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