eXeL@B —› Основной форум —› Как формируется карта памяти в OllyDbg? |
Посл.ответ | Сообщение |
|
Создано: 07 февраля 2013 17:45 · Личное сообщение · #1 Вопрос может быть туповатый,но я в поиске ответов не нашел. Смотрите как интересно получается: мы открыли прогу в OllyDbg,дебаггер остановился на EntryPoint и в памяти уже загружены все библиотеки,какие нужны.У всех DLL одинаковое значение ImageBase=10000000 как рекомендует Microsoft, но библиотеки всегда загружаются в строго определенном порядке и по фиксированным адресам, зависящим от версии операционной системы. Где происходят эти вызовы LoadLibrary и почему мы их не видим до ЕР? |
|
Создано: 07 февраля 2013 17:51 · Личное сообщение · #2 И второй вопрос на эту же тему: есть несколько динамических библиотек,у каждой есть секция relocations. Далее проводим научный эксперимент: меняем ImageBase каждой из них: 15000000,20000000,25000000,30000000 и так далее. Запускаем прогу - получаем сообщение об ошибке доступа. Почему так происходит, весь должна срабатывать переадрессация всех имеющихся функций? |
|
Создано: 07 февраля 2013 17:51 · Поправил: hors · Личное сообщение · #3 DobryGnom пишет: Где происходят эти вызовы LoadLibrary и почему мы их не видим до ЕР? Эти вызовы происходят когда заполняется таблица импорта. А вообще, рекомендую Вам почитать вот это. ----- http://ntinfo.biz | Сообщение посчитали полезным: DobryGnom |
|
Создано: 07 февраля 2013 17:56 · Личное сообщение · #4 Оля ничего не загружает, загружает загрузчик PE загружаемого файла. Во блин тавтология какая... DobryGnom пишет: И второй вопрос на эту же тему: есть несколько динамических библиотек,у каждой есть секция relocations. Далее проводим научный эксперимент: меняем ImageBase каждой из них: 15000000,20000000,25000000,30000000 и так далее. Запускаем прогу - получаем сообщение об ошибке доступа. Почему так происходит, весь должна срабатывать переадрессация всех имеющихся функций? Ну ты же ролокам не объяснил, что в другое место переехал. Была тулза от Dr.Golova (кажется) для смены IB. | Сообщение посчитали полезным: DobryGnom |
|
Создано: 07 февраля 2013 17:59 · Поправил: DobryGnom · Личное сообщение · #5 И ещё вопрос на засыпку: есть одна библиотека,которая всегда грузится по адресу 10000000 независимо от версии операционной системы. Она ничем не упакована,написана на Visual C++ 7.1 - как так происходит,у неё что получается максимальный приоритет при загрузке в память? hors пишет: Эти вызовы происходят когда заполняется таблица импорта. Как их отловить и чем определяется сам порядок длл в адресном пространстве? Vovan666 пишет: Была тулза от Dr.Golova (кажется) для смены IB. У Microsoft есть какая то утилита,Rebase кажется. |
|
Создано: 07 февраля 2013 18:12 · Личное сообщение · #6 DobryGnom пишет: И ещё вопрос на засыпку: есть одна библиотека,которая всегда грузится по адресу 10000000 независимо от версии операционной системы. Она ничем не упакована,написана на Visual C++ 7.1 - как так происходит,у неё что получается максимальный приоритет при загрузке в память? Есть! Она в импорте первая прописана... или у нее единственной такая ImageBase, а дллки как правило грузятся по своей ImageBase, если место не занято. |
|
Создано: 07 февраля 2013 18:18 · Личное сообщение · #7 Vovan666 Таблица импорта в аттаче. Библиотека vbase71.dll находится в самом конце таблицы,но в памяти жестко привязана к адресу 10000000 eecf_07.02.2013_EXELAB.rU.tgz - import_table.txt |
|
Создано: 07 февраля 2013 18:25 · Личное сообщение · #8 |
|
Создано: 07 февраля 2013 18:25 · Поправил: hors · Личное сообщение · #9 DobryGnom пишет: Как их отловить и чем определяется сам порядок длл в адресном пространстве? Отловить можно поставив хуки, только загрузчик использует не LoadLibrary, а другие функции с префиксом Ldr*. Порядок загрузки специфичен для каждой оси. В начале грузится сама программа, потом ntdll или kernel32. потом уже другие длл. Посмотреть порядок загрузки модулей можно в структуре PEB_LDR_DATA. ----- http://ntinfo.biz |
|
Создано: 07 февраля 2013 18:29 · Личное сообщение · #10 |
|
Создано: 07 февраля 2013 19:51 · Личное сообщение · #11 |
eXeL@B —› Основной форум —› Как формируется карта памяти в OllyDbg? |
Эта тема закрыта. Ответы больше не принимаются. |