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

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

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

Создано: 09 января 2007 23:35
· Личное сообщение · #1

Вобщем нашел нужный код, сделал свою грязное дело, в дебагере всё работатет как надо.
Проблемма в том, что сохранённая (copy to executable) на диск dll потом не работает, на пропатченном месте программа просто падает, объясните почему и как с этим бороться...



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

Создано: 09 января 2007 23:53
· Личное сообщение · #2

У Оли с этим бывают проблемы. Не парься и юзай Хью.




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 10 января 2007 00:04
· Личное сообщение · #3

IN_human
Ты уверен что программа работает, если ее пропатчить в оле ДО запуска?
Если да, то 99% - проверка crc.



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

Создано: 10 января 2007 00:14
· Личное сообщение · #4

IN_human
Релоки м.б?



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

Создано: 10 января 2007 00:55
· Личное сообщение · #5

Попробовал найти и заменить соответствующие байты руками в WinHEX,
там просто не нашлось такой последовательности, что за фигня?




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 10 января 2007 01:24
· Личное сообщение · #6

Хех)) так может дллка запакована?



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 10 января 2007 03:43
· Личное сообщение · #7

IN_human пишет:
что за фигня?

1. Релоки
Если ты пытаешься патчить релоки (Оля такие байты подчёркивает), то нужно удалять их из таблицы переназначений. Если патч имеет такой вид, что даже релоки нужны, то лучше придумывай другой патч... Или правь таблицу как надо.
2. Запакована
Тогда на выбор: лоыдьр, инлайн, предварительная распаковка.

-----
Всем привет, я вернулся




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

Создано: 10 января 2007 06:21 · Поправил: tundra37
· Личное сообщение · #8

100% релоки. Сам на эти грабли наступал. При CRC прога не падала бы. При упаковке не было бы фразы
IN_human пишет:
на пропатченном месте программа

Кстати, обычно при патче DLL нужно просто затереть "мешающий" релок нулями - всю таблицу не обязательно тереть.




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 10 января 2007 07:22
· Личное сообщение · #9

tundra37 пишет:
При CRC прога не падала бы.

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



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

Создано: 10 января 2007 08:13
· Личное сообщение · #10

HoBleen пишет:
при изменении генерили исключение

Но нафига им генерить исключение именно там, где пропатчили ?!




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 10 января 2007 08:54
· Личное сообщение · #11

tundra37
Ну да, ты прав. Я не посмотрел на то, что исключение понимается в пропатченном участке. Да и просто случай вспомнил)



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

Создано: 10 января 2007 12:40
· Личное сообщение · #12

OK
а теперь объясните тупому (смотрим на мой ранг) что мне делать...
я первый раз в жизни полез реальную софтину ломать, не хочется с первого раза обламываться



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

Создано: 10 января 2007 22:02
· Личное сообщение · #13

IN_human пишет:
что мне делать...

Поис использовать. Что такое релоки, и что с ними делать обсуждалось уже не раз.

IN_human пишет:
а теперь объясните тупому (смотрим на мой ранг)

Да, они введены именно для того, чтоб тупость собеседника определять.



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 11 января 2007 08:55
· Личное сообщение · #14

IN_human пишет:
а теперь объясните... что мне делать.

Если это действительно релоки, то самое простое не изменять подчёркнутые байты. То есть разместить патч так, чтобы не задеть команды с релоками и всё будет как надо.
Или, как я уже сказал, править таблицу переназначений, но тут надо хоть чуть-чуть знать её формат (читай про релоки в PE-формате). Готовых утилит для таких задач пока нет. Я всё собираюсь дописать свою, но времени не хватает.

-----
Всем привет, я вернулся





Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 11 января 2007 15:04
· Личное сообщение · #15

IN_human пишет:
не хочется с первого раза обламываться

Привыкай к обломам - пригодится

-----
программистом не рождаются - им умирают




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

Создано: 12 января 2007 04:23
· Личное сообщение · #16

Я тут внимательно поковырялся в препарируемой софтине, один модуль уже фиксится при помощи
Process Patcher by thewd, в моём случае правка уже загруженной в память DLL поможет обойти траблы с релоками?



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 12 января 2007 05:07
· Личное сообщение · #17

IN_human пишет:
один модуль уже фиксится при помощи
Process Patcher by thewd

Какой модуль, exe или dll?
Знаешь, рано или поздно придётся разбираться с PE-форматом самому, так лучше рано ;).
Посмотри эту тему:
http://exelab.ru/f/action=vthread&forum=5&topic=5445
Там и инфа, и ссылки на статьи.

-----
Всем привет, я вернулся




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

Создано: 12 января 2007 06:42
· Личное сообщение · #18

Bitfry пишет:
Какой модуль, exe или dll?

dll

никто не отказывается разбираться, но начинать надо с простого, дабы иметь мотивацию для сложного, это раз
мне нравится идея иметь на диске непокоцанную библиотеку, это два
крак чем проще тем надёжней, это три

Инфу обязательно почитаю, thnx за ссылу, везде бы такие модераторы были отзывчивые.



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 12 января 2007 07:26
· Личное сообщение · #19

IN_human, ну вот, если прочёл вводную инфу, должен был понять, что делают релоки, как обойти грабли.
IN_human пишет:
в моём случае правка уже загруженной в память DLL поможет обойти траблы с релоками?

И ещё должен был понять, что dll может загружаться по разным адресам, а значит и «правильщик» должен это учитывать.

-----
Всем привет, я вернулся




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

Создано: 04 июня 2007 15:28
· Личное сообщение · #20

Блин, умаялся. Уже чётвертый месяц лопачу Сеть на предмет нормальной статьи по структуре PE-формата, натыкаюсь на пространные рассуждения или засорённую сленгом непонятную терминологию расчитанную на человека хорошо разбирающегося в реверсинге, нигде ни разу не встречал внятной фомулировки на тему "кто такие релоки и как их изводить". Ткните носом в адекватную статью, если кто видел такую.



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 04 июня 2007 15:41
· Личное сообщение · #21

IN_human, я почти дописал свой редактор релоков.
К нему будет справка по релокам, она уже в состоянии полуготовности.
Если интересно могу передать на тестирование.
Только эта справка предполагает, что ты уже хоть чуть-чуть знаком с самыми обычными структурами данных.
В принципе могу и сам редактор дать. Он готов % где-то на 60.

-----
Всем привет, я вернулся




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

Создано: 04 июня 2007 15:48
· Личное сообщение · #22

Высылай и хелпу и софтину, буду очень признателен.
inhuman[на]bevgames_ком
Если разберусь накатаю содержательный фидбэк


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


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