Реверс-инжиниринг по методу clean room и другие частые вопросы
Основы и область применения
Что такое реверс-инжиниринг по методу clean room?
Это документированный метод, при котором один человек изучает продукт и пишет спецификацию, а второй строит по этой спецификации, не видя исходного кода. Его применяют ради совместимости. Это не юридическая гарантия, поэтому спросите юриста, прежде чем на него полагаться.
Что такое реверсинг в CTF?
Соревнование 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 дизассемблирует или запускает программы?
Нет. Он читает текст, который создают ваши собственные инструменты, например листинги дизассемблирования и вывод strings, и не распаковывает, не патчит и не запускает неизвестные программы. Shell запускает команды терминала, например вашу собственную команду экспорта или вспомогательный скрипт на Python на копии, и сообщает настоящий код возврата. Всё недоверенное запускайте только в изолированной ВМ.
Где ИИ-агент вписывается в процесс реверсинга?
ИИ-агент — это помощник между вашим дизассемблером и вашими заметками в процессе реверсинга, то есть в рутине экспорта, чтения и аннотирования изучаемой программы. Внедряя ИИ в этот процесс, начните с одного шага: пусть агент объяснит экспортированный листинг, а скрипты и субагентов добавьте позже. Карточки показывают настоящие результаты.
Модели, конфиденциальность и загрузка
Покидает ли текст моих файлов компьютер?
Ответ зависит от выбранной модели. С облачной моделью текст промпта, включая текст файла, который читает агент, уходит этому провайдеру; с локальной моделью ничто не покидает компьютер. Сначала выберите модель. Секреты в выводе инструментов скрываются, прежде чем попасть к модели, а приложение не отправляет телеметрию.
Какие модели можно подключить?
Работают три вида: облачный провайдер ИИ через стандартный endpoint API, модель, запущенная локально на вашем ПК, и встроенная модель. Кнопка Test проверяет endpoint и показывает время отклика и окно контекста. Выбирайте под задачу.
Нужен ли аккаунт для работы?
Нет. CJK Workbench можно запускать без аккаунта, а приложение показывает кнопку Update, когда готова новая версия. Облачный провайдер ИИ может отдельно брать плату за свой API. Страница загрузки объясняет, как сравнить контрольную сумму SHA-256 установщика с опубликованным манифестом.