Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Цитата(GreenPiece @  27.1.2011,  04:01 Найти цитируемый пост)
при просмотре в отладчике все равно каждый раз разные адреса
Это надо очень постараться, что бы такого достигнуть. Исполняемые файлы всегда грузятся на один и тот же адрес. DLL могут быть перебазированы, причем в любом случае. Запретить это нельзя.


Автор: borisbn 27.1.2011, 13:39
Цитата(GreenPiece @  27.1.2011,  04:01 Найти цитируемый пост)
при просмотре в отладчике все равно каждый раз разные адреса


хмммм... странно. у меня при запуске как из студии (правда 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,  18:18 Найти цитируемый пост)
загружаю его в OllyDbg

что за зверь ? м.б. в нём и проблема ? почему не пользуешь встроенный в студию ?

Автор: GreenPiece 27.1.2011, 19:03
OllyDbg - отличный отладчик, в нем гораздо проще разбираться, что к чему в программках, чем в встроенном в студию отладчике. Не, думаю, проблема не в нем, потому что до этого кучу приложений отлаживал в нем, и проблем не было никаких smile 

Автор: GreenPiece 28.1.2011, 01:38
Ура!
Разобрался, в чем суть. А дело - в ASLR и опции компоновщика /dynamicbase, ну и Висте, конечно же. То есть если б я запускал прожку на ХР, то и не заметил бы никакого подвоха. Убирая эту опцию, получаем исполняемый файл со статической imagebase, неважно, способна ли система к ASLR или нет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)