Cleanroom reverse engineering та інші поширені питання
Основи та межі застосування
Що таке cleanroom reverse engineering?
Cleanroom reverse engineering — задокументований метод, за якого одна людина вивчає продукт і пише специфікацію, а друга створює щось за цією специфікацією, не бачачи вихідного коду. Його застосовують для сумісності. Це не юридична гарантія, тож перш ніж покладатися на нього, зверніться до юриста.
Що передбачає ctf reverse engineering?
На змаганні CTF (capture the flag) пропонують навчальні бінарники, створені для вивчення, і ви з'ясовуєте, як кожен з них поводиться, щоб розв'язати завдання. Беріть участь лише в змаганнях, правила яких дозволяють реверс-інжиніринг. CJK Workbench читає лістинги, які ваші інструменти експортують із цих бінарників, і веде нотатки. Нотатки зберігаються в одному файлі.
З чого почати, якщо я новачок у реверсі?
Звична перша мета — невелика програма на C, яку ви написали самі: скомпілюйте її, а потім читайте її дизасемблерний код поруч із вихідним. Тримайтеся в межах 8 рядків. Так ви вивчите регістри, стек і конвенцію викликів там, де вже знаєте правильну відповідь. Додавайте навчальні бінарники з курсу чи змагання, коли основи стануть знайомими.
Як реверсери отримують потрібну інформацію?
Звичайні джерела — документація, заголовки, читабельні рядки та імена імпортованих функцій, а решту пояснює довідник із конвенцій викликів. CJK Workbench може шукати сторінки документації через web_search, отримати одну з них через http_get і шукати в експортованому тексті за допомогою grep. Перевіряйте кожне джерело.
Робота з CJK Workbench
Чи cjkcode.com — офіційний сайт CJK Workbench?
Так, cjkcode.com — офіційний сайт CJK Workbench. Завантажуйте лише оригінальну збірку й порівняйте її контрольну суму SHA-256 з опублікованим маніфестом, перш ніж запускати, бо інсталятор поки не має цифрового підпису. Спершу перевірте контрольну суму. Запитання надсилайте через кнопку Send feedback у застосунку.
Чи завжди результати правильні?
Ні. Пояснення асемблера та згенеровані скрипти можуть бути хибними, тож підтверджуйте кожен результат лістингом і читайте кожен diff, перш ніж його прийняти. У режимі Ask first агент робить паузу перед діями, що щось змінюють. Де це законно, додайте пробний запуск у лабораторії.
Чи дизасемблює CJK Workbench програми або запускає їх?
Ні. Він читає текст, який створюють ваші власні інструменти, як-от лістинги дизасемблера та вивід рядків, і не розпаковує, не патчить і не запускає невідомі програми. Shell виконує команди термінала, наприклад вашу команду експорту чи допоміжний скрипт Python на копії, і повідомляє справжній код завершення. Усе недовірене запускайте лише в ізольованій VM.
Яку роль відіграє ШІ-агент у процесі реверсу?
ШІ-агент — це помічник між вашим дизасемблером і нотатками в процесі реверсу, тобто в рутині експорту, читання й анотування програми, яку ви вивчаєте. Запроваджуючи ШІ у процес реверсу, почніть з одного кроку: нехай агент пояснить експортований вами лістинг, а скрипти й субагентів додайте пізніше. Картки показують справжні результати.
Моделі, приватність і завантаження
Чи залишає текст моїх файлів мій ПК?
Відповідь залежить від обраної моделі. З хмарною моделлю текст запиту, зокрема текст файлів, які читає агент, іде до цього провайдера; з локальною нічого не залишає компʼютер. Спершу оберіть модель. Секрети у виводі інструментів редагуються до того, як потрапляють до моделі, а застосунок не надсилає телеметрії.
Які моделі можна підключити?
Працюють три види: хмарний ШІ-провайдер через стандартний API-ендпоінт, модель, що працює локально на вашому ПК, і вбудована модель. Кнопка Test перевіряє ендпоінт і показує час відповіді та контекстне вікно. Обирайте під завдання.
Чи потрібен акаунт, щоб запустити?
Ні. CJK Workbench можна запускати без акаунта, а коли нова версія готова, застосунок показує кнопку Update. Хмарний ШІ-провайдер може брати плату окремо за свій API. На сторінці завантаження пояснено, як перевірити контрольну суму SHA-256 інсталятора за опублікованим маніфестом.