GNU Map file

Issues related to VMProtect
Post Reply
vektor
Posts: 2
Joined: Mon Jul 19, 2010 12:20 pm

GNU Map file

Post by vektor »

Здравствуйте!
VMProtect не читает имена функций из MAP-файла, созданного MinGW (по флагу Wl,-Map,file.map). При комплиляции в MSVC всё в порядке.
Формат Map-файлов у MSVC и GNU отличается, видимо, проблема в том, что VMProtect пока не поддерживает формат GNU. Действительно ли это так и возможно как-то решить данную проблему, например, преобразовав Map-файл, полученный в MinGW?
Admin
Site Admin
Posts: 2586
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: GNU Map file

Post by Admin »

MinGW генерит ужасный МАР файл, который изнутри выглядит как куча совершенно бессвязного мусора - совершенно непонятно как это парсить.
vektor
Posts: 2
Joined: Mon Jul 19, 2010 12:20 pm

Re: GNU Map file

Post by vektor »

Ну, GDB как-то читает :) После слов "Memory configuration" идут вполне читаемые строки формата: "имя секции", "адрес, размер, имя обектного файла" и список пар "адрес - имя функции". Например, у меня это выглядит примерно так

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()
И по указанным адресам в VMProtect я вижу именно то, что и должен видеть...
Admin
Site Admin
Posts: 2586
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: GNU Map file

Post by Admin »

Присылайте тестовый проект с реальным МАР файлом - посмотрим что можно сделать.
Post Reply