Какво е RB файл?
Файлът с разширение .rb съдържа съдържанието на Rocket eBook. Rocket eBook всъщност е устройство, направено от 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 файла. Това се използва, за да се определи дали файловете са пълни или не.
Цялата тази част от байтове (20h до 128h) изглежда е необходима само за заглавие, което е шифровано. В некриптираните заглавия те винаги са нула.
В повечето случаи следва съдържанието (при отместване 128). Започва с int32 броене на броя на записите на “страница” (.rb-файлови секции) в ToC. Всеки запис се състои от име (подплатено с нула до 32 байта), последвано от 3 int32: дължината на сегмента с данни, позицията в .rb файла и флаг за този запис. Към днешна дата известните стойности са: 1 (криптирана), 2 (информационна страница) и 8 (дефлирана). Всички имена са персонализирани, както е необходимо, за да се гарантира, че са уникални.