Сейчас на форуме: 2nd, bedop66938, -Sanchez-, barsik (+7 невидимых)

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

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

Создано: 01 августа 2008 13:27
· Личное сообщение · #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




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

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

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

-----
Research For Food




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

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

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




Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

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

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

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

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




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

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

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

1563_01.08.2008_CRACKLAB.rU.tgz - gluck fixed.dll

-----
Research For Food




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

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

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

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



Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

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

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




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

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

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

-----
Research For Food




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

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

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




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

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

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

82c9_01.08.2008_CRACKLAB.rU.tgz - gluck fixed2.dll

-----
Research For Food





Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

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

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

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


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



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

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

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

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

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

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

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

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

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


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