|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Окт 28, 2004 23:18:18 Гм.. Я запутался... Где кроме Fix Up's Table RVA по смещению A4h от начала PE-заголовка может находиться адрес таблиц(ы) настроек? Вопрос конкретней: как, например, запускаются все графические fasm'ы? Таблица релоков у них отсутствует... |
|
|
Дата: Окт 28, 2004 23:36:06 Как и любая другая прога... Грузится образ по адресу 400000h и запускется код по смещению, кратному 1000h. А в чем вопрос то? |
|
|
Дата: Окт 29, 2004 00:03:30 И, кроме того, вовсе не обязательно по смещению A4h от начала PE-заголовка. Так искать фиксапы не корректно. |
|
|
Дата: Окт 29, 2004 01:50:38 Turkish А если 400000h уже занят? volodya А как корректно?) |
|
|
Дата: Окт 29, 2004 07:09:08 B_108 > А если 400000h уже занят? Как он будет занят, если под процесс (по нормальному) выделяется своё виртуальное адресное пространство? |
|
|
Дата: Окт 29, 2004 14:02:39 Окей, поправьте, где я ошибаюсь: Фишка вирт. адр. пространства заключается в том, что винда для каждого процесса имеет свой каталог страниц и "переключает" каталоги вместе с переключением процессов. Если процесс хочет дотянуться до вирт. адреса, который отстутствует в каталоге страниц, возникает исключение. У нас флэт модель памяти. Т.е. адрес 400000h есть только у одного процесса. |
|
|
Дата: Окт 29, 2004 14:12:34 Вопрос конкретней: как, например, запускаются все графические fasm'ы? Это кто такие, где можно пример посмотреть? |
|
|
Дата: Окт 29, 2004 14:16:53 Это кто такие, где можно пример посмотреть? Это компиляторы под винду со встроенным редактором :) _http://flatassembler.net/download.php |
|
|
Дата: Окт 29, 2004 14:35:26 Эти компиляторы :) (Fasmw.exe) не имеют релоков и у них фиксированный image base (400000h), по которому они и грузятся, т.к. exe модуль проецируется в юзерное простр-во вторым (в NT после ntdll.dll). Это место (400000h) в виртуальном адр. простр-ве свободно (у ntdll.dll image base выше 70000000h) и вообще юзерное простр-во у каждого процесса своё |
|
|
Дата: Окт 29, 2004 15:18:22 и вообще юзерное простр-во у каждого процесса своё Все, дошло :) Тогда еще один вопрос: когда вообще могут понадобиться релокейшены в екзешниках (не длл)? |
|
|
Дата: Окт 29, 2004 15:32:23 · Поправил: bogrus В екзешниках, наверное только когда их надо загрузить по адресу, отличному от image base, указанному на этапе их компиляции. Чтобы увидеть "своими глазами" процесс создания процесса :), то, что происходит на этапе инициализации и загрузки модулей в юзермоде, советую сделать так: 1. Установить OllyDbg 2. В его настройках поставить галочку (а лучше везде) OllyDbg\Options\Debugging options\Events\[+]Break on debug string3. Запустить рег-файл примерно следующего содержания REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\msgbox.exe] "GlobalFlag"="0x00000002" "Debugger"="c:\\masm32\\tools\\ollydbg\\ollydbg.exe"Где msgbox.exe - отлаживаемое приложение, при запуске которого, будет стартовать отладчик (или что другое;), уведомляемый LDR-строками з.ы. во время отладки посматривать на карту памяти (Alt+M) |
|
|
Дата: Окт 29, 2004 15:39:17 B_108 > когда вообще могут понадобиться релокейшены в екзешниках (не длл) Если собрать файл с ImageBase<0x400000 и запускать его в win98 тогда релоки определенно понадобятся ;-) |
|
|
Дата: Окт 29, 2004 15:46:34 bogrus Понял :) Спасибо за быстрые ответы :))) Наверно, последний вопрос :) В екзешниках, наверное только когда их надо загрузить по адресу, отличному от image base, указанному на этапе их компиляции. Но если указывать image base=400000h, то на всех существующих версиях виндов конфликта происходить не будет? |
|
|
Дата: Окт 29, 2004 15:47:37 bogrus Asterix Пока писал, уже ответили :))) Всем спасибо! |
|
|
Дата: Окт 29, 2004 21:20:30 Процесс, в силу некоторых причин, может отображаться в адресное пр-во другого процесса (например при установке хуков и уж точно не по адресу 400000h), тогда нужны релокейшены. Но, в РЕ ЕХЕ в Виннде2000 и ХР релокейшены игноририруются, в отличнии от 98. Для ДЛЛ релокейшены необходимы, тк вообще говоря неизвестно по какому адресу она грузится. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.062 |