Що таке файл RB?
Файл із розширенням .rb містить вміст електронної книги Rocket. Електронна книга Rocket насправді є пристроєм, виготовленим компанією Nuvo Media; вони випустили цей пристрій у 1998 році. Хоча Rocket eBook здатний відображати зображення, але лише в чорно-білому режимі. Він має екран 106 dpi або 480 x 320 пікселів на 4,5 x 3-дюймовому сенсорному екрані. Rocket eBook підключається до комп’ютера через послідовний порт для завантаження електронних книг у форматі RB. Файли RB можуть використовувати DRM, але ця технологія не використовується в сучасних електронних книгах. Файл RB традиційно містить файл HTML із зображеннями та файл псевдо-OPF з усіма метаданими (.info).
Технічні характеристики формату файлу RB
Магічне число (у шістнадцятковому) відображається в перших 4 байтах файлу: B0 0C B0 0C.
Схоже, що наступні два байти є номером версії, як-от «02 00», що означає основну версію 2 і додаткову версію 0.
Наступні чотири байти містять текст “NUVO”, за яким слідують 4 байти 00h.
Наступні 4 байти — це дата створення книги, закодована як int16. Це ставить нас на зсув 0Eh. Стара версія ORocketLibrary кодувала повне значення року (тобто 1999 був “CF 07”, 2000 був “D0 07”). В останній версії tm_year зберігається дослівно, тобто 100 для 2000 року (“64 00”). Після року йде int8, що представляє 1 відносне число місяця, і int8, що представляє день місяця.
Наступні 6 байтів - це 00h. Для встановлення часу їх можна зарезервувати.
Абсолютне зміщення «Змісту» міститься в int32 зі зміщенням 18h.
Після цього є int32, що містить довжину файлу .rb. Це використовується для визначення повності файлів чи ні.
Уся ця частина байтів (від 20 до 128 годин) потрібна лише для зашифрованого заголовка. У незашифрованих заголовках вони завжди дорівнюють нулю.
У більшості випадків слідує зміст (зі зміщенням 128). Він починається з підрахунку int32 кількості записів “сторінки” (розділів файлу .rb) у ToC. Кожен запис складається з імені (доповненого нулем до 32 байтів), за яким слідують 3 int32: довжина сегмента даних, позиція у файлі .rb і прапор для цього запису. На сьогодні відомі такі значення: 1 (зашифровано), 2 (інформаційна сторінка) і 8 (дефльовано). Усі назви підбираються за потреби, щоб гарантувати їх унікальність.