Rdmap Info

Парсер файлов .rdmap x86/x64 (Radialix)
  1. Оффлайн

    Автор темы

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 1010

    Создано тем: 80

    Рейтинг: 8

    Репа: (134|134|0)

    Баллы: 2016

    Был: 2025-12-20 22:05

    Лайков: 222

    Парсинг метаданных файлов RDMAP


    RDMAP (Radialix Map) - это специальный формат данных, разработанный компанией Radialix Software для обеспечения локализации жестко-закодированных строк в приложении Radilaix. Файл формата RDMAP может быть получен с помощью плагина RDMAP к дизассемблеру IDA версий 5.2-5.7 и предоставляет информацию о типах, адресах, ссылках и размерах строк. Это позволяет средствами Radilaix локализовать жестко-закодированные строки и увеличить их длину (только при наличии ссылок).

    Формат является проприетарным и ни документации, ни официального описания структуры файлов в свободном доступе найти не удалось. Пришлось разбираться на основе готовых файлов, тем не менее, ничего особо сложного в них нет. Внутреннее устройство RDMAP-файлов достаточно прозрачно: формат следует чёткой структуре.

    Файл в формате RDMAP состоит из сигнатуры, заголовка, содержащего несколько полей, и собственно данных, разделенных на три секции (таблицы). Сигнатура представляет собой строку "rdmap" из 5 символов и 1 символ терминатора, за которыми следует WORD со значением 1, возможно это версия формата.

    Сигнатура и версия

    Rdmap Info


    Далее следует заголовок размером 54h, актуальный как для 32-бит, так 64-бит версий RDMAP.

    Заголовок



    Заголовок содержит следующие поля (размером DWORD): контрольную сумму файла (СRC32 по устаревшему алгоритму), для которого создан файл rdmap, количеством функций (таблица 1), количество ссылок (таблица 2), количество строк по типам строк (таблица 3): Pascal, Pascal Wide, Pascal Short, WIDEZ и ASCIIZ.

    Поля в заголовке (32-бит rdmap)



    Для RDMAP версии 64-бит все поля в заголовке имею другие смещения, кроме контрольной суммы.

    После заголовка, по смещению 5Ch, начинаются данные, разделённые на три секции (таблицы). Таблица 1 содержит адреса функций (условно) и их размеры. Размеры полей для 32-бит версии RDMAP - DWORD, а для 64-бит - QWORD

    Таблица 1 - Функции



    Формально таблица 1 содержит следующие пары данных:
    [адрес начала функции][размер функции]

    Сразу за ней следуют данные таблицы 2 - ссылки, которая содержит адреса строк и соответствующие им адреса ссылок. Размеры полей с адресами: DWORD для 32-бит версии RDMAP и QWORD для 64-бит версии RDMAP. Разделитель данных для пар адресов: 02h для 32-бит версии и 05h - 64-бит.

    Таблица 2 - Ссылки



    Формально таблица 2 содержит следующие пары данных:
    [адрес строки][адрес ссылки][разделитель]

    Значение между парами данных условно названо и принято как "Разделитель". Реальное назначение этого поля выяснить не удалось.

    Далее сразу следует таблица 3, в которой содержатся адреса строк и соответствующие им длины (в байтах), включая терминатор. Размеры полей с адресами строк: DWORD для 32-бит версии RDMAP и QWORD для 64-бит версии RDMAP. Таблица 3 является общей для всех поддерживаемых типов строк и порядок их размещения следующий:
    • Pascal (ANSI/Unicode) - строки
    • Pascal Wide - "широкие" строки
    • Pascal Short - "короткие" строки
    • WIDEZ - Unicode строки
    • ASCIIZ - ANSI строки


    Таблица 3 - Адреса и размеры строк



    Формально таблица 3 содержит следующие пары данных:
    [адрес строки][размер строки в байтах, включая терминатор]

    Формат поддерживаемых строк описан в справочной документации Radialix (см. главу Локализация файлов > Локализация файлов PE32/PE32+ > Жестко-закодированные строки > Типы поддерживаемых строк). Если какой-тип тип строк отсутствует, то и в таблице их нет. Тип строк, которые содержатся в таблице можно выяснить на основании данных из заголовка RDMAP.

    Для удобства и быстрого просмотра информации из RDMAP файлов была создана программа.
    rdmap_info.exe - это консольное приложение и в качестве основного параметра ему необходимо передать файл RDMAP.
    В качестве дополнительного параметра можно указать ключ -v и программа выведет данные из таблиц (не более 10-ти первых записей).
    Файлы RDMAP можно просто перетаскивать на файл rdmap_info.exe в проводнике Windows.

    Пример работы программы



    Скачать архив с программой: ЯДиск

    Смотрящий нравится это сообщение.

    Кто ищет, тот всегда найдет!

    Вчера, 22:00 / #1

Статистика форума, пользователей онлайн: 0 (за последние 20 минут)

---
Создано тем
1228
Всего сообщений
16585
Пользователей
18308
Новый участник
Muradia