Проект «Abu Архиватор» и формат .2ch: Новый манифест конспирации в Рунете

Статус проекта: Концепт / Pre-Alpha (C, Win32 API)
Целевая аудитория: Посетители имиджборд, цифровые партизаны, зумеры, гики


💡 Суть и техническая новизна

Проект представляет собой утилиту Abu Архиватор и кастомный медиа-контейнер .2ch. В его основе лежит стеганография нового поколения (модернизированный «раржпег»).
В отличие от старых методов, которые легко вскрывались стандартными WinRAR или 7-Zip, формат .2ch использует динамическую XOR-маску и кастомное смещение сигнатур.

Для внешнего мира: Файл загружается на любой сайт или имиджборду как обычная картинка (.jpg/.png) или видео (.mp4 .webm), корректно отображается в браузере и воспроизводится в плеерах.
Для чужих архиваторов: При попытке открыть файл через WinRAR или 7-Zip программа выдает ошибку «Архив поврежден» из-за измененных маркеров.
Для своих: Только оригинальный архиватор Abu находит секретный маркер ABU!, снимает XOR-шифрование и мгновенно извлекает скрытые файлы.


🔥 Глоток свежего воздуха для молодежи и новый тренд

  1. Эстетика «Цифрового Подполья»
    Молодежь устала от тотальной прозрачности, корпоративного контроля и алгоритмов, которые анализируют каждый шаг. Формат .2ch возрождает романтику «старого интернета» и хакерскую культуру. Это создание приватных цифровых пространств прямо на виду у всех.
  2. Культурный код имиджборд (Анонимность 2.0)
    Для Рунета и двач-культуры это локальный мем, переросший в полезный инструмент. Обмен архивами, скрытыми внутри веб-капсул, превращается в мета-игру. Порог входа — наличие легковесной утилиты Abu, что формирует закрытое комьюнити «тех, кто в теме».
  3. Тренды в TikTok и Telegram
    Формат идеально подходит под современные тренды: «ARG» (игры альтернативной реальности), квесты, передача секретных паков с мемами, инди-музыкой, софтом или скрытыми посланиями прямо внутри безобидных видеороликов. Контент внутри контента.

🛠 Продуктовые фишки и UX

Portable-формат: Один .exe файл весом до 1 МБ, написанный на чистом С. Запускается мгновенно на любом ПК без установки библиотек.
Кастомный GUI: Интерфейс в стиле ретро-киберпанка или классического олдскульного софта, выделяющийся на фоне скучного плоского веб-дизайна.
Drag-and-Drop: Перетащил картинку, перетащил секретную папку, нажал одну кнопку — получил готовый .2ch файл для отправки на борду.


📈 Перспективы развития

Выпуск легковесного WebAssembly-парсера для раскодирования .2ch прямо в браузере через расширения.
Внедрение многоуровневого шифрования (пароли на базе криптографических ключей).

Вывод: .2ch — это не просто расширение файлов, это технологичный цифровой манифест. Он дает молодежи приватность, стиль и новый способ коммуникации в эпоху умных лент и тотальной модерации.


ПРОМПТ ДЛЯ ЕГО СОЗДАНИЯ

SYSTEM ROLE:
You are an expert Senior Systems & GUI Developer specializing in pure C, Win32 API, and low-level binary file manipulation. Your task is to architecture and implement a production-ready, portable Windows application named "Abu Archiver" (.exe) for the custom ".2ch" format.

CRITICAL IMPLEMENTATION RULES:

  1. Language: Pure C (C11 standard). No C++, no external heavy frameworks.
  2. Dependencies: Use only standard library headers and native Windows headers (<windows.h>, <commctrl.h>).
  3. Monolithic Compilation: The code must be structured logically into modular sections but contained within one or two files for trivial compilation via GCC (MinGW) or MSVC.
  4. Robustness: Every file I/O operations must have strictly checked error handles. Prevent memory leaks and buffer overflows.

================================================================================
MODULE 1: CORE DEFINITIONS & BINARY ARCHITECTURE
================================================================================
Define the structural layout of the ".2ch" format.

  • Format Specs: [Original Media Bytes (Image/Video)] + [Secure Inject Zone]
  • Secure Inject Zone Layout:
  1. Dynamic Offset Marker: 4 bytes calculated at runtime.
  2. Abu Payload Anchor: "ABU!" (4 bytes).
  3. Header Block:
  • uint32_t original_media_type (0=JPG, 1=PNG, 2=MP4, 3=MKV, 4=AVI)
  • uint32_t encryption_flags (Bit 0: XOR applied, Bit 1: AES/Password placeholder)
  • uint32_t nested_archive_type (0=ZIP, 1=RAR, 2=7Z, 3=UHA)
  • uint32_t payload_size (Size of the modified archive payload)
  1. Encrypted Archive Payload: (The actual bytes processed via cyclic XOR mask).

Implement the following macros and structural types:

  • define ABU_MARKER "ABU!"

  • define DEFAULT_XOR_KEY 0x2C

  • Create structs: AbuHeader, AppContext (to hold global GUI handles and states).

================================================================================
MODULE 2: CRYPTO & BINARY MANIPULATION ENGINE (IMAGE/VIDEO SUPPORT)
================================================================================
Implement the core file processing functions. The engine must scan and find safe append markers for PNG, JPEG, MP4, MKV, and AVI.

Functions to implement:

  1. BOOL DetectMediaType(const char filepath, uint32_t out_type);
  • Read magic bytes: JPEG (FF D8 FF), PNG (89 50 4E 47), MP4 (look for 'ftyp' atom at offset 4), MKV (1A 45 DF A3), AVI (RIFF....AVI ).
  1. BOOL Pack2ch(const char mediaPath, const char archivePath, const char outputPath, uint32_t archiveType, const char password);
  • Automatically detect media type.
  • Append original media bytes up to EOF into outputPath.
  • Inject "ABU!" anchor and populated AbuHeader.
  • Read the source archive (ZIP/RAR/7Z/UHA), apply a cyclic XOR cipher based on DEFAULT_XOR_KEY (and if a password is provided, modify the XOR sequence using a simple hash of the password as a TODO placeholder for full encryption).
  • Write processed archive bytes.
  1. BOOL Unpack2ch(const char customPath, const char targetExtractPath, char* outPasswordNeeded);
  • Scan customPath from the end or via streaming to find "ABU!".
  • Read AbuHeader. Validate integrity.
  • Extract the payload, reverse the XOR transformation, and save it as a native archive file matching its nested_archive_type (e.g., extracted.zip, extracted.7z) so the user gets a functional archive file back.

================================================================================
MODULE 3: ZOOMER-SIMPLIFIED UI ARCHITECTURE (WIN32 API)
================================================================================
Design a clean, minimal, non-boomer GUI layout using standard Windows controls but styled to look modern (dark/neon aesthetic or hyper-minimal flat styling via window background painting).

UI Specifications:

  • Window Size: Fixed 480x600 pixels. No maximize box.
  • Color Palette (Intercept WM_CTLCOLORSTATIC, WM_PAINT):
  • Background: Dark Charcoal Gray (RGB 24, 24, 27)
  • Accent/Buttons: Cyberpunk Teal (RGB 20, 184, 166) or Bright White
  • Text: Light Gray (RGB 228, 228, 231)
  • Layout Modules:
  1. Top Title Banner: Static control with custom large font: "ABU ARCHIVER // .2ch"
  2. Drag & Drop / Input Selection Zone:
  • A stylized grouping area supporting WM_DROPFILES.
  • Input fields or Status Text showing: [Media File: NOT SELECTED] and [Archive: NOT SELECTED].
  1. Action Config Zone:
  • Combo box for Target Archive Type (ZIP, RAR, 7ZIP, UHA).
  • Password Input Field (ES_PASSWORD) with placeholder text "Password (TODO/Optional)".
  1. Execution Button: One big centered button: "[ GO / PACK / UNPACK ]". It auto-detects mode: if a .2ch file is dropped, it switches to "UNPACK MODE". If an image/video + archive are dropped, it switches to "PACK MODE".

================================================================================
MODULE 4: WIN32 MESSAGE LOOP & INTERACTIONS
================================================================================
Write the standard Win32 boilerplate safely:

  • WinMain setup, RegisterClassEx, CreateWindowEx, and the primary message loop.
  • WndProc handler implementing:
  • WM_CREATE: Initialize common controls, fonts (Segoe UI or Consolas for a geek look), set up drag-and-drop acceptance (DragAcceptFiles(hwnd, TRUE)).
  • WM_DROPFILES: Intercept dropped files. Parse file extensions. If .2ch, set application state to UNPACK. If .jpg/.png/.mp4, assign to Media slot. If .zip/.rar/.7z/.uha, assign to Archive slot. Update UI text strings dynamically.
  • WM_COMMAND: Handle execution button click. Trigger Pack2ch or Unpack2ch inside a lightweight worker structure (or inline safely) and display a native MessageBox with success or failure notifications using clean, zoomer-friendly messaging (e.g., "Done! Archive injected successfully into media." or "Error: Not an Abu file, fam.").
  • WM_DESTROY: PostQuitMessage(0).

================================================================================
MODULE 5: FUTURE-PROOF TODO ARCHITECTURE
================================================================================
Embed precise code annotations and placeholder logic inside the generated code for the following features:

  1. // TODO: PASSWORD ARGUMENT AND FULL AES-256 ENCRYPTION LAYER -> Place inside the crypt engine where bytes are transformed.
  2. // TODO: ARCHIVE FORMAT CONVERSION NATIVE ENGINE (ZIP/RAR/UHA/7ZIP) -> Create a switch case stub inside the packer that logs which container format is being nested, preparing the architecture for native multi-format extraction wrappers.

Deliver the complete, compiling single C file code now. Do not skip any Win32 structures or use pseudocode in the core functions. Make sure to define window sizing and colors clearly.


Описательная часть

Идея совмещения картинок и архивов (стеганография) отлично подходит для такой задачи. По умолчанию WinRAR и 7-Zip ищут стандартные маркеры (сигнатуры) популярных архивов вроде PK.. для ZIP или Rar! для RAR. Если изменить эти маркеры или модифицировать структуру, стандартные программы выдадут ошибку «Архив поврежден», а ваш парсер легко прочитает данные.
Вот как технически реализовать формат .2ch, чтобы его читал только архиватор Abu.

1. Архитектура формата .2ch

Самый простой и надежный способ «обмануть» WinRAR — взять стандартный ZIP-архив, но зашифровать или изменить его заголовок.
Структура файла будет выглядеть так:

[ Изображение (PNG/JPG) ] [ Секретный маркер "ABU!" ] [ Модифицированный ZIP-архив ]

2. Как скрыть архив от 7-Zip и WinRAR

Есть три эффективных способа сделать архив «невидимым» для стандартных программ:

Инверсия байтов (XOR-маска): Вы берете байты готового ZIP-архива и применяете к ним операцию XOR с определенным ключом (например, 0x2C). Стандартные архиваторы увидят лишь «мусор» вместо заголовков. Архиватор Abu применит XOR обратно и прочитает файлы.
Смещение сигнатуры: Замените первые 4 байта ZIP-архива (50 4B 03 04 — это PK..) на свои уникальные байты (например, 41 42 55 21 — ABU!). 7-Zip сразу закроет файл с ошибкой, а ваш архиватор перед чтением вернет PK.. на место в памяти.

  • Кастомный сдвиг: WinRAR умеет сканировать файл вглубь в поисках сигнатуры ZIP. Если архив просто приклеен к картинке, он его найдет. Но если между картинкой и архивом вставить случайный массив байтов, длина которого записана в заголовке Abu, чужие парсеры сломаются.

3. Алгоритм работы архиватора Abu## Упаковка (Создание .2ch)

  1. Считываются байты исходного изображения (например, доска.png).
  2. Целевые файлы сжимаются в стандартный ZIP-архив в памяти.
  3. Байты этого ZIP-архива модифицируются (например, применяется XOR).
  4. В конец байт картинки записывается маркер-разделитель (например, ABU_START).
  5. Следом записываются модифицированные байты архива.
  6. Файл сохраняется с расширением .2ch.

Распаковка (Чтение в Abu)

  1. Программа открывает файл .2ch.
  2. Ищет в байтах маркер ABU_START. Everything до него — это обычная картинка (ее можно показать в браузере или ОС).
  3. Все байты после маркера Abu считывает в буфер.
  4. Применяет обратную модификацию (декодирует XOR или возвращает сигнатуру PK).
  5. Передает чистый ZIP-буфер в стандартную библиотеку распаковки (например, fflate в JS или zlib в Node.js) для извлечения файлов.

C видеофайлами это работает точно так же, как и с картинками. Вы можете упаковать архив в видео (.mp4, .mkv или .avi), и оно будет нормально воспроизводиться на компьютере или сайте, пока плеер не дойдет до конца файла и просто проигнорирует «лишние» данные.
Ниже приведены ответы на технические вопросы и базовый каркас для программы на языке C.


Особенности работы с видео

Большинство медиаформатов (как JPEG/PNG, так и MP4/AVI) читают файл от начала до специального маркера конца данных или ориентируются на размеры блоков, указанные в заголовке:

В картинках (JPEG): Плеер ищет маркер FF D9 (End of Image). Все, что записано после него, декодер игнорирует.
В видео (MP4): Плеер читает структуру метаданных (блоки moov и mdat). Как только плеер воспроизвел все кадры, указанные в индексе, он останавливается. Ваши скрытые байты в самом конце файла никак не помешают просмотру.


Архитектура архиватора «Abu» на C

Для реализации на C мы будем использовать метод XOR-маски. Он идеален, так как WinRAR и 7-Zip гарантированно не смогут распознать структуру архива (для них это будет случайный набор байт), а код на C для шифрования и дешифрования пишется буквально в три строчки.

Схема сборки файла .2ch:

[ Оригинальный медиафайл (JPG/MP4) ] + [ Уникальный маркер: "ABU!" ] + [ ZIP-архив, пропущенный через XOR ]

Код упаковщика (Консольный вариант для логики)

Этот код берет чистую картинку/видео, берет ZIP-архив, накладывает XOR на архив и склеивает их в один файл.

include <stdio.h>#include <stdlib.h>

define XOR_KEY 0x2C // Ключ шифрования (можно изменить)#define MARKER "ABU!"#define MARKER_LEN 4

void pack_file(const char media_path, const char zip_path, const char out_path) {
FILE f_media = fopen(media_path, "rb");
FILE f_zip = fopen(zip_path, "rb");
FILE f_out = fopen(out_path, "wb");

if (!f_media || !f_zip || !f_out) {
printf("Ошибка открытия файлов.\n");
return;
}

int ch;

// 1. Копируем исходную картинку или видео без изменений
while ((ch = fgetc(f_media)) != EOF) {
fputc(ch, f_out);
}

// 2. Записываем маркер-разделитель "ABU!"
fwrite(MARKER, 1, MARKER_LEN, f_out);

// 3. Читаем ZIP, шифруем через XOR и дописываем в конец
while ((ch = fgetc(f_zip)) != EOF) {
fputc(ch ^ XOR_KEY, f_out);
}

fclose(f_media);
fclose(f_zip);
fclose(f_out);
printf("Файл %s успешно создан!\n", out_path);
}
int main() {
// Пример использования: картинка/видео, архив, выходной файл
pack_file("input.jpg", "secret.zip", "output.2ch");
return 0;
}

Код распаковщика (Логика Abu для извлечения)

Программа ищет маркер ABU!, считывает всё, что идет после него, снимает XOR-маску и сохраняет обратно в рабочий .zip.

include <stdio.h>#include <stdlib.h>#include <string.h>

define XOR_KEY 0x2C#define MARKER "ABU!"#define MARKER_LEN 4

void unpack_file(const char custom_path, const char out_zip_path) {
FILE f_in = fopen(custom_path, "rb");
FILE f_zip = fopen(out_zip_path, "wb");

if (!f_in || !f_zip) {
printf("Ошибка открытия файлов.\n");
return;
}

// Ищем маркер в файле
char buffer[MARKER_LEN];
long marker_pos = -1;
int ch;

// Простой алгоритм поиска маркера "ABU!"
while ((ch = fgetc(f_in)) != EOF) {
// Сдвигаем буфер и проверяем совпадение
memmove(buffer, buffer + 1, MARKER_LEN - 1);
buffer[MARKER_LEN - 1] = (char)ch;

if (memcmp(buffer, MARKER, MARKER_LEN) == 0) {
marker_pos = ftell(f_in);
break;
}
}

if (marker_pos == -1) {
printf("Маркер архива Abu не найден. Это обычный медиафайл.\n");
fclose(f_in);
fclose(f_zip);
return;
}

// Читаем всё после маркера, расшифровываем XOR и пишем в zip
while ((ch = fgetc(f_in)) != EOF) {
fputc(ch ^ XOR_KEY, f_zip);
}

fclose(f_in);
fclose(f_zip);
printf("Архив распакован в %s. Теперь его можно открыть.\n", out_zip_path);
}
int main() {
unpack_file("output.2ch", "extracted.zip");
return 0;
}


Как превратить это в красивую Windows-программу

Чтобы сделать из этого полноценную утилиту с интерфейсом, ярлыком и портативным форматом:

  1. Библиотека для GUI: На чистом C графический интерфейс (окна, кнопки, перетаскивание файлов) проще всего сделать через встроенное Win32 API (функции CreateWindow, DialogBox) или подключить легкую библиотеку вроде Nuklear / Dear ImGui (компилируются прямо вместе с вашим кодом без тяжелых зависимостей).
  2. Иконка приложения: Чтобы у .exe был красивый ярлык, создается файл ресурсов .rc (например, resource.rc), в котором прописывается путь к вашей .ico картинке. Компилятор (например, GCC или MSVC) запечет иконку внутрь исполняемого файла.
  3. Портативность: Код на C компилируется в один независимый .exe файл. Ему не нужны установленные среды выполнения (как для .NET/C# или Java), поэтому программа будет запускаться мгновенно на любом компьютере.
Edit

Pub: 28 May 2026 11:27 UTC

Edit: 28 May 2026 11:31 UTC

Views: 11