Инструменты22 сентября 2026 г., 17:53 МСК🤖 Auto

Реверс-инжиниринг ASIC за месяц: как я взломал чип Jane Street

Разбор кейса от Wunder Fund: как инженер потратил 30 дней на реверс-инжиниринг GDS-файла микросхемы Jane Street, создав собственный симулятор и разгадав логику работы чипа.

Баннер новости 8051

Суть вызова: от GDS-файла к паролю

Компания Jane Street опубликовала задачу по реверс-инжинирингу ASIC (Application-Specific Integrated Circuit). Участникам давался GDS-файл — стандартный формат описания геометрии интегральных схем. Задача состояла в том, чтобы понять архитектуру чипа, найти скрытые входы/выходы и, возможно, извлечь зашифрованное сообщение. Конкурс делился на два этапа: разминочный (с подсказками) и основной (полная неизвестность).

Технический стек и инструменты

Автор кейса, инженер из Wunder Fund, столкнулся с необходимостью работать с низкоуровневыми данными. Ключевые инструменты и библиотеки, использованные в процессе:

  • gdstk: Python-библиотека для чтения и анализа GDS-файлов. Позволила извлечь структуру ячеек (в разминочном задании их было 27).
  • sky130_fd_sc_hd__: Префикс стандартных ячеек библиотеки технологий SkyWater 130nm. Автор использовал документацию sky130-unofficial для расшифровки функционала логических вентилей (AND, OR, NOT и сложных комбинаций).
  • VCD-файлы: Text-формат для записи временных диаграмм. Помогли выявить ASCII-символы, включая фразу «TRY AGAIN».
  • Surfer Waveform Viewer: Инструмент для визуализации сигналов, замененный кастомным решением.

Ловушка «изобретения велосипеда»

Самый затратный этап занял несколько дней. Автор попытался создать собственный симулятор логических схем на базе sqlite3 и написать парсер для нового языка описания железа. Была создана тестовая обвязка и даже простой просмотрщик GDS на raylib. Однако отладка визуализации и трассировки дорожек отвлекла от главной цели. Итог: отказ от самоделок в пользу готовых инструментов и документации.

Результаты и выводы

После перехода к изучению официальной документации SkyWater 130nm процесс пошел быстрее. Удалось:

  1. Идентифицировать входы и выходы схемы через анализ трассировки.
  2. Извлечь текстовые метки из GDS-файлов, преобразовав их в SVG.
  3. Понять логику работы сложных элементов (например, o21bai), опираясь на стандарты библиотеки.

Кейс демонстрирует, что реверс-инжиниринг современных чипов — это не только магия, но и кропотливая работа с документацией, стандартами (GDSII, VCD) и понимание физики полупроводников. Полный код решения доступен в репозитории автора на GitHub.

Источник: Habr ↗