Що таке файл ABC?
Файл із розширенням .abc — це файл байтового коду ActionScript, створений компілятором Flash у результаті компіляції файлів сценаріїв ActionScript. Байт-код, що міститься у файлі ABC, виконується віртуальною машиною ActionScript (AVM і AVM2). Байт-код містить постійні дані, інструкції з набору інструкцій AVM2 і різні види метаданих. Коли файл ABC завантажується в AVM або AVM2, він проходить перевірку. Якщо він не відповідає огляду AVM2, він відхиляється. Файли ABC можна відкривати в Adobe Flash Player, який давно припинено.
Формат файлу ABC – Додаткова інформація
Файли ABC зберігаються на диску у двійковому форматі, який читають віртуальні машини AVM або AVM2. Його внутрішня файлова структура представляє блок виконуваного коду з усіма його постійними даними, дескрипторами типів, кодом і метаданими.
Структура файлу ABC
Структура файлу ABC показана нижче.
abcFile { u16 minor_version u16 major_version cpool_info constant_pool u30 method_count method_info method[method_count] u30 metadata_count metadata_info metadata[metadata_count] u30 class_count instance_info instance[class_count] class_info class[class_count] u30 script_count script_info script[script_count] u30 method_body_count method_body_info method_body[method_body_count] } Поля файлу ABC
| Назва поля | Опис |
|---|---|
| minor_version, major_version | Значення major_version і minor_version є номерами основної та другорядної версій формату abcFile. |
| constant_pool | Constant_pool — це структура змінної довжини, що складається з цілих чисел, подвійних чисел, рядків, просторів імен, наборів просторів імен і мультиімен. |
| method_count, method | Значення method_count — це кількість записів у масиві методів. Кожен запис у масиві методів є структурою method_info змінної довжини. |
| metadata_count, metadata | Значення metadata_count — це кількість записів у масиві метаданих. Кожен запис метаданих є metadata_infostructure, яка відображає ім’я на набір рядкових значень. |
| class_count, екземпляр, клас | Значення class_count — це кількість записів у екземплярі та масивах класів. |
| script_count, script | Значення script_count — це кількість записів у масиві сценаріїв. Кожен запис сценарію є структурою script_info, яка визначає характеристики окремого сценарію в цьому файлі. |
| method_body_count, method_body | Значення method_body_count — це кількість записів у масиві method_body. Кожен method_bodyentry складається зі структури method_body_info змінної довжини, яка містить інструкції для окремого методу або функції. |