<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Evan Sultanik on The Trail of Bits Blog</title><link>https://miscreants.github.io/blog.trailofbits.com/authors/evan-sultanik/</link><description>Recent content in Evan Sultanik on The Trail of Bits Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 19 Dec 2025 00:00:00 -0500</lastBuildDate><atom:link href="https://miscreants.github.io/blog.trailofbits.com/authors/evan-sultanik/index.xml" rel="self" type="application/rss+xml"/><item><title>Can chatbots craft correct code?</title><link>https://miscreants.github.io/blog.trailofbits.com/2025/12/19/can-chatbots-craft-correct-code/</link><pubDate>Fri, 19 Dec 2025 07:00:00 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2025/12/19/can-chatbots-craft-correct-code/</guid><description>LLMs fundamentally differ from compilers because they lack determinism and semantic guarantees, making them useful coding assistants but unreliable for autonomous code generation without human review and formal verification.</description></item><item><title>Speedrunning the New York Subway</title><link>https://miscreants.github.io/blog.trailofbits.com/2025/08/25/speedrunning-the-new-york-subway/</link><pubDate>Mon, 25 Aug 2025 07:00:00 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2025/08/25/speedrunning-the-new-york-subway/</guid><description>We optimized the route for visiting every NYC subway station using algorithms from combinatorial optimization, creating a 20-hour tour that beats the existing world record by 45 minutes.</description></item><item><title>Detecting code copying at scale with Vendetect</title><link>https://miscreants.github.io/blog.trailofbits.com/2025/07/21/detecting-code-copying-at-scale-with-vendetect/</link><pubDate>Mon, 21 Jul 2025 07:00:00 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2025/07/21/detecting-code-copying-at-scale-with-vendetect/</guid><description>Vendetect is our new open-source tool for detecting copied and vendored code between repositories. It uses semantic fingerprinting to identify similar code even when variable names change or comments disappear. More importantly, unlike academic plagiarism detectors, it understands version control history, helping you trace vendored code back to its exact source commit.</description></item><item><title>Investigate your dependencies with Deptective</title><link>https://miscreants.github.io/blog.trailofbits.com/2025/07/08/investigate-your-dependencies-with-deptective/</link><pubDate>Tue, 08 Jul 2025 07:00:00 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2025/07/08/investigate-your-dependencies-with-deptective/</guid><description>Deptective, our new open-source tool, automatically finds the packages needed to install software dependencies. It does so not based on the software&amp;rsquo;s self-reported requirements, but by observing what the software needs at runtime.</description></item><item><title>Preventing account takeover on centralized cryptocurrency exchanges in 2025</title><link>https://miscreants.github.io/blog.trailofbits.com/2025/02/05/preventing-account-takeover-on-centralized-cryptocurrency-exchanges-in-2025/</link><pubDate>Wed, 05 Feb 2025 09:00:37 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2025/02/05/preventing-account-takeover-on-centralized-cryptocurrency-exchanges-in-2025/</guid><description>This blog post highlights key points from our new white paper Preventing Account Takeovers on Centralized Cryptocurrency Exchanges, which documents ATO-related attack vectors and defenses tailored to CEXes. Imagine trying to log in to your centralized cryptocurrency exchange (CEX) account and your password and username just… don’t work. You […]</description></item><item><title>libmagic: The Blathering</title><link>https://miscreants.github.io/blog.trailofbits.com/2022/07/01/libmagic-the-blathering/</link><pubDate>Fri, 01 Jul 2022 07:00:27 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2022/07/01/libmagic-the-blathering/</guid><description>A couple of years ago we released PolyFile: a utility to identify and map the semantic structure of files, including polyglots, chimeras, and schizophrenic files. It’s a bit like file, binwalk, and Kaitai Struct all rolled into one. PolyFile initially used the TRiD definition database for file identification. However, […]</description></item><item><title>Are blockchains decentralized?</title><link>https://miscreants.github.io/blog.trailofbits.com/2022/06/21/are-blockchains-decentralized/</link><pubDate>Tue, 21 Jun 2022 05:00:39 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2022/06/21/are-blockchains-decentralized/</guid><description>A new Trail of Bits research report examines unintended centralities in distributed ledgers Blockchains can help push the boundaries of current technology in useful ways. However, to make good risk decisions involving exciting and innovative technologies, people need demonstrable facts that are arrived at through reproducible methods and open data. We believe the risks inherent […]</description></item><item><title>What does your code use, and is it vulnerable? It-depends!</title><link>https://miscreants.github.io/blog.trailofbits.com/2021/12/16/it-depends/</link><pubDate>Thu, 16 Dec 2021 08:00:14 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2021/12/16/it-depends/</guid><description>You just cloned a fresh source code repository and want to get a quick sense of its dependencies. Our tool, it-depends, can get you there. We are proud to announce the release of it-depends, an open-source tool for automatic enumeration of dependencies. You simply point it to a source code repository, and it will build […]</description></item><item><title>Never a dill moment: Exploiting machine learning pickle files</title><link>https://miscreants.github.io/blog.trailofbits.com/2021/03/15/never-a-dill-moment-exploiting-machine-learning-pickle-files/</link><pubDate>Mon, 15 Mar 2021 11:06:18 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2021/03/15/never-a-dill-moment-exploiting-machine-learning-pickle-files/</guid><description>Many machine learning (ML) models are Python pickle files under the hood, and it makes sense. The use of pickling conserves memory, enables start-and-stop model training, and makes trained models portable (and, thereby, shareable). Pickling is easy to implement, is built into Python without requiring additional dependencies, and supports serialization of custom […]</description></item><item><title>PDF is Broken: a justCTF Challenge</title><link>https://miscreants.github.io/blog.trailofbits.com/2021/02/02/pdf-is-broken-a-justctf-challenge/</link><pubDate>Tue, 02 Feb 2021 07:50:28 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2021/02/02/pdf-is-broken-a-justctf-challenge/</guid><description>Trail of Bits sponsored the recent justCTF competition, and our engineers helped craft several of the challenges, including D0cker, Go-fs, Pinata, Oracles, and 25519. In this post we’re going to cover another of our challenges, titled PDF is broken, and so is this file. It demonstrates some of the PDF file format’s idiosyncrasies in a […]</description></item><item><title>Graphtage: A New Semantic Diffing Tool</title><link>https://miscreants.github.io/blog.trailofbits.com/2020/08/28/graphtage/</link><pubDate>Fri, 28 Aug 2020 07:00:27 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2020/08/28/graphtage/</guid><description>Graphtage is a command line utility and underlying library for semantically comparing and merging tree-like structures such as JSON, JSON5, XML, HTML, YAML, and TOML files. Its name is a portmanteau of “graph” and “graftage” (i.e., the horticultural practice of joining two trees together so they grow as one). Read on for what Graphtage does differently and better, why we developed it, how it works, and directions for using it as a library.</description></item><item><title>Two New Tools that Tame the Treachery of Files</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/11/01/two-new-tools-that-tame-the-treachery-of-files/</link><pubDate>Fri, 01 Nov 2019 07:00:18 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/11/01/two-new-tools-that-tame-the-treachery-of-files/</guid><description>Parsing is hard, even when a file format is well specified. But when the specification is ambiguous, it leads to unintended and strange parser and interpreter behaviors that make file formats susceptible to security vulnerabilities. What if we could automatically generate a “safe” subset of any file format, along with an associated, verified parser? That’s […]</description></item><item><title>Empire Hacking: Ethereum Edition 2</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/01/18/empire-hacking-ethereum-edition-2/</link><pubDate>Fri, 18 Jan 2019 07:50:58 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/01/18/empire-hacking-ethereum-edition-2/</guid><description>On December 12, over 150 attendees joined a special, half-day Empire Hacking to learn about pitfalls in smart contract security and how to avoid them. Thank you to everyone who came, to our superb speakers, and to BuzzFeed for hosting this meetup at their office. Watch the presentations again It’s hard to find such rich […]</description></item></channel></rss>