| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Изменить адрес загрузки exe-файла |
| Автор: GreenPiece 27.1.2011, 04:01 |
| Добрый день. Студия 2010, есть такая проблемка. Нужно фиксировать адрес загрузки файла (imagebase), но вот как это сделать? #pragma comment(linker,"/base:0x00400000") не работает, при просмотре в отладчике все равно каждый раз разные адреса. Как же это сделать? |
| Автор: Dem_max 27.1.2011, 08:42 |
| в опциях компилятора не пробовал смотреть ? |
| Автор: xvr 27.1.2011, 13:22 |
| Это надо очень постараться, что бы такого достигнуть. Исполняемые файлы всегда грузятся на один и тот же адрес. DLL могут быть перебазированы, причем в любом случае. Запретить это нельзя. |
| Автор: borisbn 27.1.2011, 13:39 |
хмммм... странно. у меня при запуске как из студии (правда 2008, но думаю дело не в этом), так и без неё на адрес одной и той же переменной выдаётся одно и то же. Собственно говоря, так и должно быть |
| Автор: GreenPiece 27.1.2011, 18:18 |
| Добрый день. Я уже почти ничего не понимаю. Создаю обычное приложение в студии, загружаю его в OllyDbg, и вижу каждый раз разные стартовые адреса, вот сейчас, например, 00990000, потом 00230000. В файле ничего трогаю. Студия 2010, Win Vista. Я понимаю, в принципе, что должно быть так, как Вы говорите, в случае исполняемых файлов, один и тот же адрес, вот в C++ Builder, например, так и есть. Не могу понять, почему у меня в студии это не так... |
| Автор: borisbn 27.1.2011, 18:45 |
что за зверь ? м.б. в нём и проблема ? почему не пользуешь встроенный в студию ? |
| Автор: GreenPiece 27.1.2011, 19:03 |
| OllyDbg - отличный отладчик, в нем гораздо проще разбираться, что к чему в программках, чем в встроенном в студию отладчике. Не, думаю, проблема не в нем, потому что до этого кучу приложений отлаживал в нем, и проблем не было никаких |
| Автор: GreenPiece 28.1.2011, 01:38 |
| Ура! Разобрался, в чем суть. А дело - в ASLR и опции компоновщика /dynamicbase, ну и Висте, конечно же. То есть если б я запускал прожку на ХР, то и не заметил бы никакого подвоха. Убирая эту опцию, получаем исполняемый файл со статической imagebase, неважно, способна ли система к ASLR или нет. |