Здравствуйте!
VMProtect не читает имена функций из MAP-файла, созданного MinGW (по флагу Wl,-Map,file.map). При комплиляции в MSVC всё в порядке.
Формат Map-файлов у MSVC и GNU отличается, видимо, проблема в том, что VMProtect пока не поддерживает формат GNU. Действительно ли это так и возможно как-то решить данную проблему, например, преобразовав Map-файл, полученный в MinGW?
GNU Map file
Re: GNU Map file
MinGW генерит ужасный МАР файл, который изнутри выглядит как куча совершенно бессвязного мусора - совершенно непонятно как это парсить.
Re: GNU Map file
Ну, GDB как-то читает После слов "Memory configuration" идут вполне читаемые строки формата: "имя секции", "адрес, размер, имя обектного файла" и список пар "адрес - имя функции". Например, у меня это выглядит примерно так
И по указанным адресам в VMProtect я вижу именно то, что и должен видеть...
Code: Select all
Name Origin Length Attributes
*default* 0x00000000 0xffffffff
Linker script and memory map
0x69fc0000 __image_base__ = 0x69fc0000
0x00000000 __dll__ = 0x0
0x69fc0000 ___ImageBase = 0x69fc0000
0x00001000 __section_alignment__ = 0x1000
.text 0x69fc1000 0x36a00
*(.init)
*(.text)
.text 0x69fc1000 0x170 d:/qt/2009.05/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../dllcrt2.o
0x69fc1110 atexit
0x69fc1140 _onexit
0x69fc1060 DllMainCRTStartup@12
.text 0x69fc1170 0xd0 d:/qt/2009.05/mingw/bin/../lib/gcc/mingw32/4.4.0/crtbegin.o
0x69fc1170 __gcc_register_frame
0x69fc11fc __gcc_deregister_frame
.text 0x69fc1240 0x2cc ./release\coreplugin.o
0x69fc13a0 Core::Internal::CorePlugin::CorePlugin()
0x69fc12c4 Core::Internal::CorePlugin::~CorePlugin()
0x69fc1404 qt_plugin_instance
0x69fc1264 Core::Internal::CorePlugin::extensionsInitialized()
0x69fc1240 qt_plugin_query_verification_data
0x69fc127c Core::Internal::CorePlugin::initialize(QStringList const&, QString*)
.text 0x69fc150c 0x1a0 ./release\coreimpl.o
0x69fc150c Core::ICore::instance()
0x69fc1534 Core::Internal::CoreImpl::settings() const
0x69fc1678 Core::Internal::CoreImpl::CoreImpl(Core::Internal::MainWindow*)
0x69fc1518 Core::Internal::CoreImpl::mainWindow() const
0x69fc1614 Core::Internal::CoreImpl::~CoreImpl()
0x69fc1644 Core::Internal::CoreImpl::CoreImpl(Core::Internal::MainWindow*)
0x69fc1544 Core::Internal::CoreImpl::updateContext()
Re: GNU Map file
Присылайте тестовый проект с реальным МАР файлом - посмотрим что можно сделать.