В блоге Binary Ninja вышла отличная статья с детальным реверсом Linux-бинарника, напичканного различными техниками усложнения анализа. Этот файл — своеобразный «финальный босс» из книги Programming Linux Anti-Reversing Techniques (автор Jacob Baines), представляющий собой защищенный паролем bind shell.
Автор статьи наглядно показывает, как возможности Binary Ninja помогают распутывать классические и современные трюки, которые часто встречаются в реальной малвари и на CTF-соревнованиях.
Чему можно научиться из разбора:
• Работа с искаженными ELF-заголовками: как бинарник обманывает парсеры, подменяя флаги порядка байтов (endianness), и как новые билды Binary Ninja справляются с этим автоматически.
• Обход фейковых функций: выявление и удаление ложных init -функций, которые ломают дизассемблер.
• Манипуляции с сегментами и секциями: как восстановить правильные границы сегментов памяти, чтобы вернуть читаемость кода, и понимание эвристик анализатора.
• Снятие обфускации и криптографии: поиск и анализ циклов расшифровки (XOR и RC4), а также работа с запакованными участками памяти.
Автор статьи наглядно показывает, как возможности Binary Ninja помогают распутывать классические и современные трюки, которые часто встречаются в реальной малвари и на CTF-соревнованиях.
Чему можно научиться из разбора:
• Работа с искаженными ELF-заголовками: как бинарник обманывает парсеры, подменяя флаги порядка байтов (endianness), и как новые билды Binary Ninja справляются с этим автоматически.
• Обход фейковых функций: выявление и удаление ложных init -функций, которые ломают дизассемблер.
• Манипуляции с сегментами и секциями: как восстановить правильные границы сегментов памяти, чтобы вернуть читаемость кода, и понимание эвристик анализатора.
• Снятие обфускации и криптографии: поиск и анализ циклов расшифровки (XOR и RC4), а также работа с запакованными участками памяти.