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

 eXeL@B —› Вопросы новичков —› Пропатчивание упакованой DLL на лету
Посл.ответ Сообщение

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

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

Всем привет!

Есть вопрос:
Есть прога для работы с фото, при триале, она ставит водяной знак.

Этот водяной знак находится в *DLL,
DLL запакована аспаком,
поэтому пропатчить обычным патчем её не получается.

Можно конечно снять аспак, пропатчить и тогда всё будет гуд, но тогда придётся включить библу в патч, а это лишний вес.

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

Только вот смешная проблема получается.

После того как я запускаю патченный ехе,
водяной знак всё равно появляется!

Но когда трассирую этот же ехе в Ольге(!),
прога запускается и нет водяного знака.

В чём может быть дело ?
Как это можно исправить?
Заранее спасибо!

P.S. Прогу не выкладываю, просто хочется подсказочку получить и доделать работу самому.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 16 декабря 2010 11:12
· Личное сообщение · #2

Поищи статейки на тему инлайна ASPack, имхо это самый правильный вариант.

-----
Yann Tiersen best and do not fuck




Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 16 декабря 2010 11:14
· Личное сообщение · #3

tekton, скорее всего у Вас проблема в адресе по которому Вы размещаете патч. Если он у Вас статический то это неверное решение, патч dll должен быть динамичен: адрес должен рассчитываться исходя из адреса по которому загружена dll.

-----
все багрепорты - в личные сообщения




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

Создано: 16 декабря 2010 21:59
· Личное сообщение · #4

PE_Kill пишет:
Поищи статейки на тему инлайна ASPack

Да вроде я знаю как инлайнить аспак (Но обычно инлайнил ехе, а вот DLL как то не приходилось)

HandMill пишет:
tekton, скорее всего у Вас проблема в адресе по которому Вы размещаете патч. Если он у Вас статический то это неверное решение, патч dll должен быть динамичен: адрес должен рассчитываться исходя из адреса по которому загружена dll.

А можно по подробнее :
1) как узнать адрес по которому загружена DLL ?
2) как обычный адрес перевести в динамический ?




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

Создано: 16 декабря 2010 23:07
· Личное сообщение · #5

1. GetModuleHandle/инлайнить сразу после вызова LoadLibrary, будет в eax.
2. Сделать поправку на изменившуюся базу.
РФТМ, как грузятся длл, что такое база и почему она может измениться.


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


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