Русский / Russian English / Английский

Сейчас на форуме: VLSL, morgot (+6 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Крэки, обсуждения —› Непонятные байты в dll
Посл.ответ Сообщение

Ранг: 0.3 (гость)
Статус: Участник

Создано: 1 августа 2008 13:27 New!
Цитата · Личное сообщение · #1

Открываю dll файл в OllyDBG и наблюдаю, что в коде не понятно от куда добавились лишние байты.
Подскажите, кто знает, от куда они взялись и как их убрать?
Суть проблемы - когда записываю на это место код - он портится и dll файл не работает.
Ниже ссылки на dll и картинку с OllyDBG. Сам dll забит нулями для упрощения поиска, соответственно не рабочий.
www.perleandr.ho.com.ua/upload/files/dll/gluck.dll
www.perleandr.ho.com.ua/upload/files/dll/gluck.gif


Ранг: 528.5 (!)
Статус: Участник
5KRT

Создано: 1 августа 2008 13:54 New!
Цитата · Личное сообщение · #2

Там добавляется только 1 байт - 86, а три других байта это опкоды комманды NOP.

Ранг: 0.3 (гость)
Статус: Участник

Создано: 1 августа 2008 13:56 New!
Цитата · Личное сообщение · #3

пусть один байт - это проблему не решает


Ранг: 154.2 (ветеран)
Статус: Участник
REVENGE Crew

Создано: 1 августа 2008 14:07 · Поправил: kioresk New!
Цитата · Личное сообщение · #4

Почитай про релоки.

Байты лишние не добавляются, просто когда ты загружаешь библиотеку, то система смотрит в релоках какие адреса надо исправить и исправляет их (естественно при условии, что библиотека была загружена не по своему адресу, т.е. не по ImageBase). Поэтому у тебя 0x90 заменяется на другое значение.

Кстати, по умолчанию Олли обычно подчеркивает адреса, которые указаны в релоках.


Ранг: 528.5 (!)
Статус: Участник
5KRT

Создано: 1 августа 2008 14:11 New!
Цитата · Личное сообщение · #5

Ну а почему бы не потереть этот байт руками? Или я не понял вопроса?
В аттаче этот байт затёрт опкодом 90(NOP)

{ Атач доступен только для участников форума } - gluck fixed.dll

Ранг: 0.3 (гость)
Статус: Участник

Создано: 1 августа 2008 14:35 New!
Цитата · Личное сообщение · #6

daFix пишет:
Ну а почему бы не потереть этот байт руками?

Ты у себя исправил (gluck fixed.dll), а у меня в том месте 90 90 91 90. Мне нужно, что бы данные загружались без изменений, как в файле.
Можно ли отключить релоки и если да, то как это сделать?
На сколько я знаю, они только ускоряют поиск адресов, значит без них dll должна работать.

Ранг: 128.1 (ветеран)
Статус: Участник

Создано: 1 августа 2008 14:52 New!
Цитата · Личное сообщение · #7

vit84
Советую прочитать статью на wasm.ru "Об упаковщиках в последний раз" .
После этого не будет таких наивных ( сорри ) вопросов.


Ранг: 528.5 (!)
Статус: Участник
5KRT

Создано: 1 августа 2008 15:05 · Поправил: daFix New!
Цитата · Личное сообщение · #8

Ну попробуй такое решение, но не думаю что будет работать стабильно изза релоков.
Вообще релоки нужны для изменения адреса загрузки библиотеки если по её ImageBase уже загружена
какая-то другая библиотека. Смысл метода такой - на EP вписывай нужный
тебе байт вручную(MOV BYTE PTR DS:[35F5BF],90). Но это будет привязано к определённому ImageBase, в
нашем случае 00350000. Если библиотека загрузится по другому адресу, тогда ты пропишешь этот байт
не туда

Ранг: 0.3 (гость)
Статус: Участник

Создано: 1 августа 2008 15:05 New!
Цитата · Личное сообщение · #9

уже читал... ладно, перечитаю еще раз... может еще в другом месте что-то поищу


Ранг: 528.5 (!)
Статус: Участник
5KRT

Создано: 1 августа 2008 15:06 New!
Цитата · Личное сообщение · #10

Аттачи не цепляются...

{ Атач доступен только для участников форума } - gluck fixed2.dll


Ранг: 154.2 (ветеран)
Статус: Участник
REVENGE Crew

Создано: 1 августа 2008 17:07 · Поправил: kioresk New!
Цитата · Личное сообщение · #11

Не нужно ничего в других местах искать, лучше сделай что тебе советуют — почитай про релоки, чтобы понимать что к чему.

А еси надо пропатчить именно эту библиотеку, то просто найди пустое место, куда не указывают релоки и впиши туда нужный код.


Модераторы, перенесите тему в раздел новичков.

Ранг: 0.3 (гость)
Статус: Участник

Создано: 1 августа 2008 19:33 New!
Цитата · Личное сообщение · #12

kioresk пишет:
Не нужно ничего в других местах искать

Нашел www.wasm.ru/forum/viewtopic.php?id=14364

kioresk пишет:
А если надо пропатчить именно эту библиотеку

Не только эту, нужно написать универсальный скрипт (уже написал).

Всем спасибо, все получилось. Сделал следующим образом - убрал релоки, но корректирую адрес вручную (упрощенный пример) add dword ptr [...], ebp где в ebp хранится разница между реальной и заявленной базой.

kioresk пишет:
Модераторы, перенесите тему в раздел новичков

Я далеко не новичок, просто с релоками не доводилось работать. Переносить ничего не нужно, так как тема закрыта.
 eXeL@B —› Крэки, обсуждения —› Непонятные байты в dll
Эта тема закрыта. Ответы больше не принимаются.

Видеокурс ВЗЛОМ