Coder Social home page Coder Social logo

Evan Sultanik, Ph.D.

Twitter Link website CC BY NC SA 4.0

Evan is a principal computer security researcher based in Philadelphia working at Trail of Bits. He has a couple dozen academic publications, but most of them are related to distributed systems and combinatorial optimization, not security. He is also an editor of and frequent contributor to the offensive computer security journal Proof of Concept or GTFO.

Evan’s woefully out-of-date résumé is a PDF that is also a ZIP as well as an Nintendo Entertainment System ROM! That’s right: Evan’s résumé PDF is a valid NES ROM that you can emulate! Check the footnotes on the first page. If you don't have an NES emulator handy, you can actually emuluate the PDF in your browser. Evan also has an even more woefully out-of-date academic curriculum vitæ.

Aside from when writing in a biographical format, Evan does not usually refer to himself in the third person.

The following are some of my selected projects.

Program Analysis 🔎

Automated program instrumentation and bug-finding. This section is for general program analysis tools. Tools related to to Blockchain technology and smart contracts are in their own section, below.

PolyTracker

co%E2%80%91creator maintainer GitHub GitHub Stars PyPI Downloads License

An LLVM-based universal taint and data-flow analysis instrumentation framework. Can track up to 232 input bytes.

Manticore

contributor GitHub GitHub Stars PyPI Downloads License

Symbolic execution engine for x86, ARM, and EVM.

Fickling

creator maintainer GitHub GitHub Stars PyPI Downloads License

Fickling is a decompiler, static analyzer, and bytecode rewriter for Python pickle object serializations.

Pickled Python objects are in fact bytecode that is interpreted by a stack-based virtual machine built into Python called the "Pickle Machine". Fickling can take pickled data streams and decompile them into human-readable Python code that, when executed, will deserialize to the original serialized object.

I do not prescribe any meaning to the “F” in Fickling; it could stand for “fickle,” … or something else. Divining its meaning is a personal journey in discretion and is left as an exercise to the reader.

Learn more about it in our blog post and DEF CON 2021 talk.

Funky Files 📄

A lot of my recent work has been on developing examples of funky files that exploit buggy file formats and parsers (see the footnotes on the first page of my résumé, for example), as well as tools to make file formats and parsers safer.

PolyFile

creator maintainer GitHub GitHub Stars PyPI Downloads License

A cleanroom, pure-Python implementation of libmagic that can identify files, is smart about polyglots (files that are multiple types at the same time), can output an interactive HTML-based hex viewer, and recursively enumerate the contents of a file (similar to binwalk).

A PDF Git Repository Polyglot

creator

I created a PDF that is a git repository that, when cloned, contains its LaTeX source code and a copy of itself. The PDF contains an article describing how I did it.

Utilities 🛠

I enjoy building generic command line utilities and libraries.

Graphtage

creator maintainer GitHub GitHub Stars PyPI Downloads License

Graphtage is a command-line utility and underlying library for semantically comparing and merging tree-like structures, such as JSON, XML, HTML, YAML, plist, and CSS files. Its name is a portmanteau of “graph” and “graftage”—the latter being the horticultural practice of joining two trees together such that they grow as one.

It-Depends

co%E2%80%91creator maintainer GitHub GitHub Stars PyPI Downloads License

It-Depends is a tool to automatically build a dependency graph and Software Bill of Materials (SBOM) for packages and arbitrary source code repositories. You can use it to enumerate all third party dependencies for a software package, map those dependencies to known security vulnerabilities, as well as compare the similarity between two packages based on their dependencies.

Notify When Done (nwd)

creator maintainer GitHub GitHub Stars PyPI Downloads License

Notify When Done (nwd) is a utility for triggering alerts when a process finishes. Kicking off a long-running compile? NWD can post a popup notification when it's done. Starting a job on a remote server? nwd can send you an E-mail when it’s done. Want to run a custom script once another finishes? nwd can facilitate that, too.

Biggest

creator maintainer GitHub GitHub Stars PyPI Downloads License

A utility for finding the largest directories and/or files in a given directory hierarchy. Biggest supports pretty printed and colorized output to the terminal.

Cryptography 🔐

Despite dabbling in cryptography, I am not a cryptographer. Do not use this code to secure your secrets.

Lenticrypt

creator maintainer GitHub GitHub Stars PyPI Downloads License

A proof-of-concept cryptosystem that provides provable plausibly deniable encryption. Lenticrypt can generate a single ciphertext file such that different plaintexts are generated depending on which key is used for decryption.

Blockchain ⛓

“Crypto” 👏 Means 👏 Cryp 👏 to 👏 gra 👏 phy!

I no longer own any cryptocurrency. I know too much about how the sausage is made.

The most ethical way I can contribute to that ecosystem is to build tools that at least make it safer for those who are willing to transact with it. The following are those tools.

Etheno

creator maintainer GitHub GitHub Stars PyPI Downloads License

Etheno is the Ethereum testing Swiss Army knife. It’s a JSON RPC multiplexer, analysis tool wrapper, and test integration tool. It eliminates the complexity of setting up analysis tools like Manticore and Echidna on large, multi-contract projects. In particular, custom Manticore analysis scripts require less code, are simpler to write, and integrate with Truffle.

solc-select

creator GitHub GitHub Stars PyPI Downloads License

I am the creator of the original version of solc-select: A tool to quickly switch between Solidity compiler versions.

Slither

contributor GitHub GitHub Stars PyPI Downloads License

I am a contributor to Slither, a Solidity static analysis framework. It runs a suite of vulnerability detectors, prints visual information about contract details, and provides an API to easily write custom analyses. Slither enables developers to find vulnerabilities, enhance their code comprehension, and quickly prototype custom analyses.

Ethereum Security Toolbox

creator maintainer GitHub GitHub Stars License Docker Pulls

This is a Docker container I built that is preconfigured and automatically updated with the latest Ethereum security tooling.

Echidna

contributor GitHub GitHub Stars License

I am a contributor to Echidna, a fuzzer/property-based tester of Ethereum smarts contracts. It uses sophisticated grammar-based fuzzing campaigns based on a contract ABI to falsify user-defined predicates or Solidity assertions.

Evan Sultanik's Projects

2048-clai icon 2048-clai

A high performance C++ clone of the popular game 2048, with an ncurses interface and AI gameplaying.

ascid icon ascid

ascid is the self-referential cycle identifier

biggest icon biggest

A simple utility for finding the largest files in a directory.

bin2png icon bin2png

A simple cross-platform script for encoding any binary file into a lossless PNG.

cc65 icon cc65

cc65 - a freeware C compiler for 6502 based systems —

coffee-stains icon coffee-stains

A LaTeX package for adding coffee stains to your documents.

ecdsa-private-key-recovery icon ecdsa-private-key-recovery

A simple library to recover the private key of ECDSA and DSA signatures sharing the same nonce k and therefore having identical signature parameter r

ethereumjs-tx icon ethereumjs-tx

A simple module for creating, manipulating and signing ethereum transactions

git icon git

Git Source Code Mirror - This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements.

go-cose icon go-cose

go library for CBOR Object Signing and Encryption (COSE)

klondike icon klondike

An implementation of the Klondike patience/solitaire card game variant with AI.

lenticrypt icon lenticrypt

A simple cryptosystem that provides provable plausibly deniable encryption.

mtwister icon mtwister

A pure C implementation of the Mersenne twister is a pseudo-random number generation algorithm.

nwd icon nwd

Notify When Done: a utility for triggering alerts when a process finishes

othello icon othello

An Othello game engine intended for teaching AI algorithms.

pdfgitpolyglot icon pdfgitpolyglot

In which a PDF is a Git Repository Containing its own LaTeX Source and a Copy of Itself

physics icon physics

An experimental Java-based rigid body physics engine with an example rope swinging game.

pyemail2sms icon pyemail2sms

A simple native Python SMS gateway library using SMS, with support for most major international carriers.

visie icon visie

Visie is a Simple Initialism Enumerator. It helps you name things with acronyms.

zoningmaps icon zoningmaps

Code to merge and analyze zoning district maps.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.