スキル binary-analysis-patterns
🔍

binary-analysis-patterns

安全

Анализ двоичных паттернов кода

Понимание скомпилированных исполняемых файлов без исходного кода. Этот навык предоставляет паттерны языка ассемблера, распознавание потока управления и рекомендации по декompиляции для задач реверс-инжиниринга.

対応: Claude Codex Code(CC)
🥉 72 ブロンズ
1

スキルZIPをダウンロード

2

Claudeでアップロード

設定 → 機能 → スキル → スキルをアップロードへ移動

3

オンにして利用開始

テストする

「binary-analysis-patterns」を使用しています。 Что делает этот паттерн ассемблера? ```asm lea eax, [rax + rax*4] add eax, eax ```

期待される結果:

Этот паттерн умножает значение на 10. Инструкция LEA вычисляет rax * 5 (rax + rax*4), затем ADD удваивает это, получая rax * 10. Компиляторы используют эту оптимизацию сдвига и сложения вместо более медленной инструкции MUL для умножения на константу.

「binary-analysis-patterns」を使用しています。 Как определить оператор switch в дизассемблере?

期待される結果:

Ищите два паттерна: (1) Таблицы переходов — регистр используется как индекс в массиве адресов (jmp [table + reg*8]), или (2) Последовательные сравнения — несколько цепочек cmp/je, сравнивающих одну и ту же переменную с разными константами. Паттерн с таблицей переходов более распространён для больших операторов switch со множеством случаев.

「binary-analysis-patterns」を使用しています。 В чём разница между этими двумя паттернами? Паттерн A: mov eax, [rdi] Паттерн B: movzx eax, byte [rdi]

期待される結果:

Паттерн A читает 4-байтное целое число (dword) из памяти, что предполагает тип int или uint32. Паттерн B читает один байт и расширяет его с нулём до 32 бит, что предполагает тип unsigned char или uint8. Вариант с movzx обычно используется при работе с булевыми флагами, символами ASCII или небольшими беззнаковыми значениями, которые нужно продвинуть в регистры большего размера для операций.

セキュリティ監査

安全
v1 • 2/25/2026

All 47 static analysis findings are false positives. The detected patterns are Markdown code fence delimiters and assembly code examples in documentation. No executable code, external commands, or security risks present. This is purely educational content about binary analysis patterns.

1
スキャンされたファイル
453
解析された行数
0
検出結果
1
総監査数
セキュリティ問題は見つかりませんでした
監査者: claude

品質スコア

38
アーキテクチャ
100
保守性
87
コンテンツ
32
コミュニティ
100
セキュリティ
100
仕様準拠

作れるもの

Реверс-инжиниринг вредоносного ПО

Исследователи безопасности используют паттерны ассемблера для понимания поведения вредоносного ПО, идентификации вредоносных функций и восстановления логики программы без доступа к исходному коду.

Поддержка устаревшего кода

Разработчики, поддерживающие устаревшие системы без документации, используют паттерны дизассемблирования для понимания скомпилированных бинарных файлов, исправления ошибок и добавления функций в старые приложения.

Решение задач CTF

Участники Capture The Flag анализируют бинарные исполняемые файлы для поиска скрытых флагов, понимания потока программы и эксплуатации уязвимостей с использованием распознавания паттернов ассемблера.

これらのプロンプトを試す

Идентификация паттерна ассемблера
Объясните, что представляет собой этот паттерн кода ассемблера в высокоуровневом коде:

```asm
xor ecx, ecx
loop_start:
cmp ecx, [n]
jge loop_end
; ... body ...
inc ecx
jmp loop_start
loop_end:
```

Какую программную конструкцию реализует этот паттерн?
Анализ структуры функции
Я дизассемблировал эту функцию. Помогите понять:
1. Какова сигнатура функции (параметры и тип возвращаемого значения)?
2. Какое соглашение о вызовах используется (System V или Microsoft x64)?
3. Какова общая логика этой функции?

[вставьте код ассемблера здесь]
Восстановление структур данных
Этот код ассемблера обращается к сложной структуре данных. Помогите определить:
1. Какой это тип структуры данных (struct, массив, связный список)?
2. Каковы смещения полей и их вероятные типы?
3. Что представляет эта структура в исходном коде?

```asm
mov rdi, [struct_ptr]
mov eax, [rdi]
movzx eax, byte [rdi+4]
mov rax, [rdi+8]
```
Скриптинг анализа в Ghidra
Мне нужен скрипт на Python для Ghidra, чтобы:
1. Найти все функции, вызывающие 'strcpy'
2. Идентифицировать потенциальные уязвимости буфера
3. Создать тип структуры для обнаруженной мной раскладки данных

Предоставьте скрипт с объяснениями того, что делает каждая часть.

ベストプラクティス

  • Начните с анализа строк для идентификации интересных функций — строки, на которые есть ссылки в коде, часто раскрывают назначение окружающей логики
  • Отслеживайте поток данных назад от интересных вызовов API или библиотечных функций, чтобы понять, как данные подготавливаются и проверяются
  • Активно используйте перекрёстные ссылки (xrefs) — понимание того, кто вызывает функцию и к чему она обращается, раскрывает контекст и назначение
  • Документируйте свои находки с комментариями и переименованными символами немедленно — анализ бинарных файлов итеративен, и вы забудете контекст

回避

  • Предположение, что вывод декомпилятора корректен — декомпиляция может создавать вводящий в заблуждение код из-за оптимизаций, нераспознанных типов или непрямых вызовов
  • Анализ оптимизированных сборок без понимания оптимизаций компилятора — оптимизация хвостового вызова (jmp вместо call+ret) и встраивание могут скрыть границы функций
  • Фокусировка только на «интересных» функциях — авторы вредоносного ПО часто скрывают логику в скучно выглядящих утилитарных функциях или используют техники обфускации
  • Игнорирование специфичных для архитектуры соглашений о вызовах — неправильная идентификация передачи параметров приводит к совершенно неверным сигнатурам функций

よくある質問

Может ли этот навык анализировать реальные бинарные файлы для меня?
Нет, этот навык предоставляет справочные паттерны и рекомендации для понимания кода ассемблера и техник анализа бинарных файлов. Вам нужно использовать такие инструменты, как Ghidra, IDA Pro или objdump, для выполнения фактического дизассемблирования и анализа.
Какие архитектуры охватываются паттернами?
Навык в первую очередь охватывает x86-64 (как System V AMD64 для Linux/macOS, так и Microsoft x64 для Windows), ARM64 (AArch64) и ARM32 соглашения о вызовах и паттерны инструкций.
Как выбрать между соглашениями о вызовах System V и Microsoft x64?
Проверьте целевую платформу бинарного файла. Бинарные файлы Linux и macOS используют System V (аргументы в RDI, RSI, RDX, RCX, R8, R9). Бинарные файлы Windows используют Microsoft x64 (аргументы в RCX, RDX, R8, R9 с 32-байтным пространством теней).
Почему декомпилированный код выглядит странно или явно неправильно?
Декомпиляторы делают предположения на основе типов и паттернов. Если декомпилятору не хватает информации о типах или он сталкивается с оптимизациями компилятора, вывод может вводить в заблуждение. Используйте вид ассемблера для проверки и исправления предположений декомпилятора.
Какие инструменты лучше всего работают с этими паттернами?
Ghidra (бесплатный, мощный декомпилятор), IDA Pro (отраслевой стандарт, дорогой), Binary Ninja (современный, хорошая автоматизация) и radare2 (ориентирован на командную строку). Этот навык включает конкретные советы для Ghidra и IDA Pro.
Могу ли я использовать эти паттерны для анализа вредоносного ПО?
Да, эти паттерны обычно используются в анализе вредоносного ПО и исследованиях безопасности. Паттерны для идентификации вызовов функций, структур данных и потока управления применимы к любой задаче анализа бинарных файлов, включая анализ вредоносного кода в контролируемых средах.

開発者の詳細

ファイル構成

📄 SKILL.md