Skip to content
cccskills

Browse skills

83 skills (repositories by trailofbits) · sorted by popularity

Diagnose Claude in Chrome connection failures on macOS by checking native messaging hosts, the processes linking Chrome to Claude, and their settings. It guides fixes for competing configurations, stale wrappers, and session conflicts, including restart steps.

  • Investigate a browser extension connection error
  • Restore browser integration after a Claude Code update
  • Switch browser automation between Claude Code and Cowork
trailofbits/skills7.6KUpdated Oct 16, 2026

Turn a Mermaid sequence diagram of a cryptographic protocol into a ProVerif model, a file for formal security checks. It includes queries for secrecy, authentication, replay resistance, and forward secrecy where applicable.

  • Converting a cryptographic protocol diagram into a .pv file
  • Preparing session key secrecy checks
  • Modeling authentication and replay resistance
trailofbits/skills7.6KUpdated Oct 16, 2026

vector-forge

FreeSummary

Generates cryptographic test vectors, inputs with expected outcomes, by deliberately changing implementation code and finding changes existing tests miss. Verifies new vectors across independent implementations and compares detection rates before and after adding them.

  • Finding coverage gaps in cryptographic test vectors
  • Creating invalid inputs that exercise validation checks
  • Building test vectors shared across independent implementations
trailofbits/skills7.6KUpdated Oct 16, 2026

Turn Trail of Bits Testing Handbook content into Claude Code skills for security testing. Creates or refreshes SKILL.md files using templates for tools, fuzzers, techniques, and subject areas, then validates structure and links between skills.

  • Generate security testing skills from handbook sections
  • Refresh a skill after handbook updates
  • Create multiple skills from handbook content
trailofbits/skills7.6KUpdated Oct 16, 2026

Turn cryptographic code or specifications into sequence diagrams showing who sends each message, which cryptographic operations occur, and where failures stop the exchange. Outputs include Mermaid source, a plain text diagram, and a protocol summary.

  • Visualizing handshake and key exchange steps
  • Extracting message flows from RFCs and papers
  • Diagramming ProVerif or Tamarin models
trailofbits/skills7.6KUpdated Oct 16, 2026

graph-evolution

FreeSummary

Compare code structure across two commits, tags, or directories to identify security-relevant changes. Produces a report on new attack paths, privilege boundaries, complexity, and how widely a change could affect other functions.

  • Compare code structure before a release
  • Investigate new attack paths after code changes
  • Track untrusted data flows across a refactor
trailofbits/skills7.6KUpdated Oct 16, 2026

atheris

FreeSummary

Set up Atheris to test Python code and C extensions with automatically varied inputs. It guides test harness creation, coverage tracking to explore more code, and AddressSanitizer setup for finding memory errors.

  • Fuzzing a Python package or parser
  • Investigating memory corruption in Python C extensions
  • Turning raw bytes into typed test arguments
trailofbits/skills7.6KUpdated Oct 16, 2026

aflpp

FreeSummary

Sets up AFL++ to test C/C++ programs with varied generated inputs, a technique called fuzzing. Covers running tests across CPU cores, monitoring progress, reducing input collections, and reproducing crashes for investigation.

  • Running C/C++ fuzzing across multiple CPU cores
  • Exploring further after libFuzzer progress stalls
  • Monitoring fuzzing progress and stability
trailofbits/skills7.6KUpdated Oct 16, 2026

Identify checks and changing global state that block fuzzing, then adjust them in fuzzing builds. The skill covers targeted validation bypasses, repeatable behavior, coverage comparisons, and checks for false crash reports introduced by patches.

  • Getting past checksum or hash checks during fuzzing
  • Making time-seeded random behavior repeatable
  • Comparing code coverage before and after a patch
trailofbits/skills7.6KUpdated Oct 16, 2026

libfuzzer

FreeSummary

Set up libFuzzer to test C/C++ code with varied inputs guided by which code paths run. Build test harnesses, manage sample inputs and dictionaries, enable error detectors, and reproduce crashes or investigate stalled coverage.

  • Starting fuzz testing for a C/C++ library
  • Writing or debugging an LLVMFuzzerTestOneInput harness
  • Investigating runs that find no crashes or new code paths
trailofbits/skills7.6KUpdated Oct 16, 2026

Connect static analysis results and human audit notes to a Trailmark code graph. Group findings by severity and compare them with input flow, impact, and privilege boundaries to prioritize investigation and understand findings in their code context.

  • Connecting Semgrep or CodeQL results to code structure
  • Combining human audit notes with automated findings
  • Prioritizing findings using input flow and impact
trailofbits/skills7.6KUpdated Oct 16, 2026

cargo-fuzz

FreeSummary

Helps set up and run cargo-fuzz for Rust projects using Cargo. Guides fuzz testing, which tries varied inputs, from writing test harnesses to detecting memory errors, reproducing crashes, and checking which code was exercised.

  • Adding fuzz tests to a Rust crate
  • Generating structured test inputs
  • Testing unsafe blocks or foreign-function calls
trailofbits/skills7.6KUpdated Oct 16, 2026

zeroize-audit

FreeSummary

Audit C/C++ and Rust code for secrets left in memory. It checks missing or incomplete wipes, examines compiler output for removed cleanup operations, and produces reports with evidence and suggested fixes.

  • Auditing cryptographic key cleanup
  • Checking password and token memory wipes
  • Investigating cleanup removed by compiler optimization
trailofbits/skills7.6KUpdated Oct 16, 2026

diagramming-code

FreeSummary

Create Mermaid diagrams from code relationships parsed by Trailmark. Visualize function calls, class inheritance, module dependencies, class members, complexity hotspots, and paths from inputs to sensitive functions, with adjustable focus, depth, and layout.

  • Mapping function calls around a selected function
  • Visualizing class inheritance and members
  • Drawing module dependency maps
trailofbits/skills7.6KUpdated Oct 16, 2026

wycheproof

FreeSummary

Checks cryptographic code against known attacks and edge cases using Project Wycheproof test vectors, predefined inputs and expected results. Helps load cases, interpret failures, compare implementations, and integrate checks into automated testing.

  • Testing cryptographic code against known attacks
  • Comparing results across cryptographic libraries
  • Investigating rejected or incorrectly accepted signatures
trailofbits/skills7.6KUpdated Oct 16, 2026

Test cryptographic code for timing side channels, where execution time can reveal secrets. Use dudect to detect statistical differences and Timecop with Valgrind to trace secret-dependent operations, then interpret results and retest changes.

  • Checking cryptographic functions for secret-dependent timing
  • Measuring timing differences in compiled binaries
  • Tracing the cause of a suspected timing leak
trailofbits/skills7.6KUpdated Oct 16, 2026

Analyze code structure with Trailmark to identify complex functions, trace input flow, assess impact across connected code, and locate privilege boundaries. The resulting JSON provides detailed evidence for deciding where to focus a code audit.

  • Prioritizing code audit targets
  • Tracing input flow and assessing impact
  • Inspecting unresolved calls and type references
trailofbits/skills7.6KUpdated Oct 16, 2026

genotoxic

FreeSummary

Evaluate how well existing tests catch code changes, then combine the results with function relationships. Get a report separating harmless findings, missing unit tests, and targets for fuzzing, which tests many generated inputs.

  • Triage code changes that existing tests failed to catch
  • Prioritize missing unit tests
  • Find functions suited to fuzzing
trailofbits/skills7.6KUpdated Oct 16, 2026

Create dictionaries of keywords and identifying byte sequences for fuzzing, or testing with generated inputs. Extract useful entries from code, binaries, or specifications, then configure fuzzers to explore parsing paths beyond initial input validation.

  • Build a dictionary for JSON or XML parser fuzzing
  • Add protocol keywords to generated test inputs
  • Test image parsers with file signatures and chunk names
trailofbits/skills7.6KUpdated Oct 16, 2026

Measure which code fuzzing reaches as it tries many generated inputs. Use coverage reports to find unreachable areas, compare progress, and guide improvements to test harnesses, starting inputs, or dictionaries of useful input values.

  • Establish initial coverage for a fuzzing run
  • Investigate why fuzzing stops reaching new code
  • Compare coverage before and after harness changes
trailofbits/skills7.6KUpdated Oct 16, 2026

variant-analysis

FreeSummary

Find other occurrences of a known bug across a codebase by tracing its root cause. Gradually broaden search patterns, assess matching candidates, assign severity, and document findings with rules to help prevent recurrence.

  • Finding similar issues after discovering a vulnerability
  • Building CodeQL or Semgrep queries from a known bug
  • Checking whether similar code shares the same root cause
trailofbits/skills7.6KUpdated Oct 16, 2026

harness-writing

FreeSummary

Builds and improves C/C++ and Rust fuzzing harnesses, the entry points that feed generated test data into code. Helps structure inputs, reach more code paths, and address crashes caused by inconsistent test behavior.

  • Writing a first fuzzing harness
  • Building structured inputs for an API
  • Investigating crashes that cannot be reproduced
trailofbits/skills7.6KUpdated Oct 16, 2026

libafl

FreeSummary

Build a custom fuzzer, a tool that tests code with many generated inputs, using LibAFL in Rust. Combine input mutation, execution feedback, scheduling, and target execution components when standard fuzzers offer insufficient control.

  • Build a fuzzer for a nonstandard target or architecture
  • Implement custom input mutation and feedback strategies
  • Prototype a new fuzzing research technique
trailofbits/skills7.6KUpdated Oct 16, 2026

Select relevant code using Trailmark's map of function relationships, then delegate explanation, review, or edit proposals to a smaller model. Limit the supplied source, check cited evidence, and verify proposed changes before applying them.

  • Asking a small model to explain a function
  • Tracing callers and paths from entrypoints
  • Requesting edit proposals for a specific line range
trailofbits/skills7.6KUpdated Oct 16, 2026