Сейчас на форуме: 2nd, bedop66938, -Sanchez-, barsik (+7 невидимых) |
eXeL@B —› Крэки, обсуждения —› Непонятные байты в dll |
Посл.ответ | Сообщение |
|
Создано: 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 |
|
Создано: 01 августа 2008 13:54 · Личное сообщение · #2 |
|
Создано: 01 августа 2008 13:56 · Личное сообщение · #3 |
|
Создано: 01 августа 2008 14:07 · Поправил: kioresk · Личное сообщение · #4 Почитай про релоки. Байты лишние не добавляются, просто когда ты загружаешь библиотеку, то система смотрит в релоках какие адреса надо исправить и исправляет их (естественно при условии, что библиотека была загружена не по своему адресу, т.е. не по ImageBase). Поэтому у тебя 0x90 заменяется на другое значение. Кстати, по умолчанию Олли обычно подчеркивает адреса, которые указаны в релоках. |
|
Создано: 01 августа 2008 14:11 · Личное сообщение · #5 Ну а почему бы не потереть этот байт руками? Или я не понял вопроса? В аттаче этот байт затёрт опкодом 90(NOP) 1563_01.08.2008_CRACKLAB.rU.tgz - gluck fixed.dll ----- Research For Food |
|
Создано: 01 августа 2008 14:35 · Личное сообщение · #6 daFix пишет: Ну а почему бы не потереть этот байт руками? Ты у себя исправил (gluck fixed.dll), а у меня в том месте 90 90 91 90. Мне нужно, что бы данные загружались без изменений, как в файле. Можно ли отключить релоки и если да, то как это сделать? На сколько я знаю, они только ускоряют поиск адресов, значит без них dll должна работать. |
|
Создано: 01 августа 2008 14:52 · Личное сообщение · #7 |
|
Создано: 01 августа 2008 15:05 · Поправил: daFix · Личное сообщение · #8 Ну попробуй такое решение, но не думаю что будет работать стабильно изза релоков. Вообще релоки нужны для изменения адреса загрузки библиотеки если по её ImageBase уже загружена какая-то другая библиотека. Смысл метода такой - на EP вписывай нужный тебе байт вручную(MOV BYTE PTR DS:[35F5BF],90). Но это будет привязано к определённому ImageBase, в нашем случае 00350000. Если библиотека загрузится по другому адресу, тогда ты пропишешь этот байт не туда ----- Research For Food |
|
Создано: 01 августа 2008 15:05 · Личное сообщение · #9 |
|
Создано: 01 августа 2008 15:06 · Личное сообщение · #10 |
|
Создано: 01 августа 2008 17:07 · Поправил: kioresk · Личное сообщение · #11 |
|
Создано: 01 августа 2008 19:33 · Личное сообщение · #12 kioresk пишет: Не нужно ничего в других местах искать Нашел www.wasm.ru/forum/viewtopic.php?id=14364 kioresk пишет: А если надо пропатчить именно эту библиотеку Не только эту, нужно написать универсальный скрипт (уже написал). Всем спасибо, все получилось. Сделал следующим образом - убрал релоки, но корректирую адрес вручную (упрощенный пример) add dword ptr [...], ebp где в ebp хранится разница между реальной и заявленной базой. kioresk пишет: Модераторы, перенесите тему в раздел новичков Я далеко не новичок, просто с релоками не доводилось работать. Переносить ничего не нужно, так как тема закрыта. |
eXeL@B —› Крэки, обсуждения —› Непонятные байты в dll |
Эта тема закрыта. Ответы больше не принимаются. |