and Other Diversions

AI Gameplaying


Implemented for fun and practice as part of kata 20.

Rigid Body Physics Engine and Rope Swinging Game



Lenticrypt is a novel cryptosystem that provides true plausible deniability. It allows a single ciphertext to decrypt to multiple different plaintexts depending on the key that is used to decrypt it. Moreover, there is a theoretical guarantee that with nearly 100% probability there always exists at least one work in the public domain that some key will decrypt to, even if you don't know what that key is. You can read about its origins in this blog post.


Magiic stands for Magiic Allows for GPG Indexing of IMAP on the Command-line. It is a simple ncurses-based command-line application for securely and efficiently performing full-text search over encrypted email. You can read more about it, along with a download link, on the Digital Operatives blog.

Data Science

Philadelphia Zoning Analysis

This repository contains software and some partial analysis results of the Philadelphia zoning code. See this blog post for more information.



A utility to identify and map the semantic structure of files, including polyglots, chimeras, and schizophrenic files.

NES Résumé Polyglot Game

Evan’s résumé PDF is also a Nintendo Entertainment System game that you can emulate. You can even emulate it directly in your web browser!

After 6 months and over 5k new lines of 6502 assembly, the Kaizo-style platforming section of the NES game in my résumé is finally done! Yes, among other things, the PDF of my résumé is also an NES ROM. You can download it here for your emulating pleasure:
Evan Sultanik

This Git Repository is a PDF

A PDF that can be git cloned, producing a repository containing the LATEX source of the PDF, all of the scripts necessary to rebuild the polyglot, and a copy of itself. See PoC||GTFO Issue 0x15.

Program Analysis


PolyTracker is a tool for the Automated Lexical Annotation and Navigation of Parsers, a backronym devised solely for the purpose of referring to it as The ALAN Parsers Project. It is a an LLVM pass that instruments the programs it compiles to track which bytes of an input file are operated on by which functions. It outputs a JSON file containing the function-to-input-bytes mapping..

Manticore Symbolic Execution Engine

I am a frequent contributor to the Manticore symbolic execution engine.

Smart Contracts


A script to quickly switch between Solidity compiler versions.

It is becoming increasingly hard to run older versions of solc, particularly on macOS since there are no official binary releases. Versions prior to 0.5.0 no longer compile on macOS and are not maintained. This is a problem because older Ethereum contracts no longer compile on modern versions of Solidity. solc-select is a utility that allows one to run any legacy version of Solidity simply by setting an environment variable.


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.


LaTeX Coffee Stains

This package provides an essential feature to LATEX that has been missing for too long. It adds a coffee stain to your documents. A lot of time can be saved by printing stains directly on the page rather than adding it manually.



A command line utility for semantically comparing tree-like files, such as JSON, YAML, XML, HTML, and TOML.

Visie is a Simple Initialism Enumerator

Notify When Done (NWD)

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.


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.

Ascid is the Self-referential Cycle IDentifier

It is capable of quickly (in linear time) detecting the maximum length repeated substrings in text files.

This is often useful, e.g., when debugging a program that loops infinitely, vi&., ascid can determine the point at which the log output loops back on itself.