Skip to content
View travitch's full-sized avatar

Organizations

@taffybar

Block or report travitch

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
travitch/README.md

I enjoy building secure and correct systems. I have built a number of static analysis and automated verification tools, with a recent focus on analysis of binaries.

Repositories

Data Structures

Data structures that may be generally useful

  • haggle [39 ⭐ πŸ“–]: An efficient graph library for Haskell
  • persistent-vector [27 ⭐ πŸ“–]: Persistent vectors for Haskell based on array mapped tries
  • robbed [4 ⭐]: A pure Haskell implementation of Reduced Ordered Binary Decision Diagrams (BDDs)

Program Analysis

  • ql-grep [5 ⭐]: A code search tool that implements CodeQL on the tree-sitter infrastructure
  • build-bom [46 ⭐]: Dynamically discover the commands used to create a piece of software
  • whole-program-llvm [698 ⭐]: A wrapper script to build whole-program LLVM bitcode files; note that I consider this to be obsoleted by build-bom, which takes a more robust approach to the same problem
  • itanium-abi [12 ⭐ πŸ“–]: An implementation of C++ name mangling for the Itanium ABI
  • what4-serialize [0 ⭐]: Serialization/deserialization for What4 expressions

Binary Analysis

  • crepitans [2 ⭐]: A tool for scriptable exploration of binaries
  • dismantle [25 ⭐]: A library of assemblers and disassemblers derived from LLVM TableGen data
  • portable-executable [2 ⭐]: Tools for working with the Windows Portable Executable (PE) file format
  • semmc [36 ⭐]: Stratified synthesis for learning machine code instruction semantics
  • macaw [208 ⭐]: Open source binary analysis tools.
  • macaw-loader [5 ⭐]: Uniform interface to load a binary executable and get Macaw Memory and a list of entry points.
  • renovate [47 ⭐]: A library for binary analysis and rewriting
  • language-sleigh [5 ⭐]: A parser for the Sleigh language, which is used to represent ISA semantics in Ghidra
  • mctrace [5 ⭐]: An implementation of DTrace for machine code

Debugging Tools

  • ddmin [3 ⭐]: An implementation of delta debugging (ddmin) in Haskell
  • surveyor [18 ⭐]: A symbolic debugger for C/C++ (via LLVM), machine code, and JVM programs
  • binary-walkr [2 ⭐]: A tool for examining ELF binaries

Solvers

Note that these are interesting and informative, but definitely not efficient enough to use in production

  • satisfaction [2 ⭐]: A DPLL SAT solver written in Haskell
  • datalog [102 ⭐]: A pure Haskell implementation of Datalog
  • ifscs [4 ⭐ πŸ“–]: An inductive form set constraint solver in Haskell
  • satir [1 ⭐]: An implementation of a SAT solver in Rust

Emacs Packages

Others

  • taffybar [697 ⭐ πŸ“–]: A gtk based status bar for tiling window managers such as XMonad; now maintained by Ivan Malison
  • travitch [1 ⭐]: The code for my Github profile page, which generates this page
  • blog [3 ⭐]: The code for my blog (ravit.ch)
  • dotfiles [0 ⭐]: A collection of dotfiles managed by Chezmoi

Pinned Loading

  1. whole-program-llvm whole-program-llvm Public

    A wrapper script to build whole-program LLVM bitcode files

    Python 699 127

  2. datalog datalog Public

    A pure Haskell implementation of Datalog

    Haskell 103 14

  3. haggle haggle Public

    An efficient graph library for Haskell

    Haskell 39 6

  4. persistent-vector persistent-vector Public

    Persistent vectors for Haskell based on array mapped tries

    Haskell 27 4

  5. build-bom build-bom Public

    Dynamically discover the commands used to create a piece of software

    Rust 46 8

  6. ql-grep ql-grep Public

    A code search tool that implements CodeQL on the tree-sitter infrastructure

    Rust 5