<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>static-analysis on The Trail of Bits Blog</title><link>https://miscreants.github.io/blog.trailofbits.com/categories/static-analysis/</link><description>Recent content in static-analysis on The Trail of Bits Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 11 Dec 2025 00:00:00 -0500</lastBuildDate><atom:link href="https://miscreants.github.io/blog.trailofbits.com/categories/static-analysis/index.xml" rel="self" type="application/rss+xml"/><item><title>Introducing mrva, a terminal-first approach to CodeQL multi-repo variant analysis</title><link>https://miscreants.github.io/blog.trailofbits.com/2025/12/11/introducing-mrva-a-terminal-first-approach-to-codeql-multi-repo-variant-analysis/</link><pubDate>Thu, 11 Dec 2025 07:00:00 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2025/12/11/introducing-mrva-a-terminal-first-approach-to-codeql-multi-repo-variant-analysis/</guid><description>Our new tool mrva is a terminal-first tool for running CodeQL multi-repository variant analysis locally,allowing users to download pre-built databases, analyze them with custom queries, and view results directly in the terminal.</description></item><item><title>Taming 2,500 compiler warnings with CodeQL, an OpenVPN2 case study</title><link>https://miscreants.github.io/blog.trailofbits.com/2025/09/25/taming-2500-compiler-warnings-with-codeql-an-openvpn2-case-study/</link><pubDate>Thu, 25 Sep 2025 07:00:00 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2025/09/25/taming-2500-compiler-warnings-with-codeql-an-openvpn2-case-study/</guid><description>We created a CodeQL query that reduced 2,500+ compiler warnings about implicit conversions in OpenVPN2 to just 20 high-priority cases, demonstrating how to effectively identify potentially dangerous type conversions in C code.</description></item><item><title>Fickling’s new AI/ML pickle file scanner</title><link>https://miscreants.github.io/blog.trailofbits.com/2025/09/16/ficklings-new-ai/ml-pickle-file-scanner/</link><pubDate>Tue, 16 Sep 2025 07:00:00 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2025/09/16/ficklings-new-ai/ml-pickle-file-scanner/</guid><description>We&amp;rsquo;ve added a pickle file scanner to Fickling that uses an allowlist approach to protect AI/ML environments from malicious pickle files that could compromise models or infrastructure.</description></item><item><title>Streamline your static analysis triage with SARIF Explorer</title><link>https://miscreants.github.io/blog.trailofbits.com/2024/03/20/streamline-the-static-analysis-triage-process-with-sarif-explorer/</link><pubDate>Wed, 20 Mar 2024 09:30:45 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2024/03/20/streamline-the-static-analysis-triage-process-with-sarif-explorer/</guid><description>Today, we’re releasing SARIF Explorer, the VSCode extension that we developed to streamline how we triage static analysis results. We make heavy use of static analysis tools during our audits, but the process of triaging them was always a pain. We designed SARIF Explorer to provide an intuitive UI inside VSCode, with […]</description></item><item><title>Relishing new Fickling features for securing ML systems</title><link>https://miscreants.github.io/blog.trailofbits.com/2024/03/04/relishing-new-fickling-features-for-securing-ml-systems/</link><pubDate>Mon, 04 Mar 2024 09:00:44 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2024/03/04/relishing-new-fickling-features-for-securing-ml-systems/</guid><description>We’ve added new features to Fickling to offer enhanced threat detection and analysis across a broad spectrum of machine learning (ML) workflows. Fickling is a decompiler, static analyzer, and bytecode rewriter for the Python pickle module that can help you detect, analyze, or create malicious pickle files. While the ML community […]</description></item><item><title>Circomspect has been integrated into the Sindri CLI</title><link>https://miscreants.github.io/blog.trailofbits.com/2024/02/26/circomspect-has-been-integrated-into-the-sindri-cli/</link><pubDate>Mon, 26 Feb 2024 09:00:02 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2024/02/26/circomspect-has-been-integrated-into-the-sindri-cli/</guid><description>Our tool Circomspect is now integrated into the Sindri command-line interface (CLI)! We designed Circomspect to help developers build Circom circuits more securely, particularly given the limited tooling support available for this novel programming framework. Integrating this tool into a development environment like that provided by Sindri is a significant step toward […]</description></item><item><title>Say hello to the next chapter of the Testing Handbook!</title><link>https://miscreants.github.io/blog.trailofbits.com/2023/12/11/say-hello-to-the-next-chapter-of-the-testing-handbook/</link><pubDate>Mon, 11 Dec 2023 08:30:16 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2023/12/11/say-hello-to-the-next-chapter-of-the-testing-handbook/</guid><description>Today we are announcing the latest addition to the Trail of Bits Testing Handbook: a brand new chapter on CodeQL! CodeQL is a powerful and versatile static analysis tool, and at Trail of Bits, we regularly use CodeQL on client engagements to find common vulnerabilities and to perform variant analysis for already […]</description></item><item><title>Security flaws in an SSO plugin for Caddy</title><link>https://miscreants.github.io/blog.trailofbits.com/2023/09/18/security-flaws-in-an-sso-plugin-for-caddy/</link><pubDate>Mon, 18 Sep 2023 08:00:42 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2023/09/18/security-flaws-in-an-sso-plugin-for-caddy/</guid><description>We identified 10 security vulnerabilities within the caddy-security plugin for the Caddy web server that could enable a variety of high-severity attacks in web applications, including client-side code execution, OAuth replay attacks, and unauthorized access to resources. During our evaluation, Caddy was deployed as a reverse proxy […]</description></item><item><title>Holy Macroni! A recipe for progressive language enhancement</title><link>https://miscreants.github.io/blog.trailofbits.com/2023/09/11/holy-macroni-a-recipe-for-progressive-language-enhancement/</link><pubDate>Mon, 11 Sep 2023 08:00:12 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2023/09/11/holy-macroni-a-recipe-for-progressive-language-enhancement/</guid><description>Despite its use for refactoring and static analysis tooling, Clang has a massive shortcoming: the Clang AST does not provide provenance information about which CPP macro expansions a given AST node is expanded from; nor does it lower macro expansions down to LLVM Intermediate Representation (IR) code. This makes the construction of […]</description></item><item><title>Working on blockchains as a Trail of Bits intern</title><link>https://miscreants.github.io/blog.trailofbits.com/2022/10/05/trail-of-bits-internship-blockchain-tealer/</link><pubDate>Wed, 05 Oct 2022 09:00:42 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2022/10/05/trail-of-bits-internship-blockchain-tealer/</guid><description>Earlier this year, I successfully completed my internship at Trail of Bits and secured a full-time position as a Blockchain Security Analyst. This post is not intended to be a technical description of the work I did during my internship. Rather, it is intended to describe my general experience as a […]</description></item><item><title>Secure your machine learning with Semgrep</title><link>https://miscreants.github.io/blog.trailofbits.com/2022/10/03/semgrep-maching-learning-static-analysis/</link><pubDate>Mon, 03 Oct 2022 09:00:53 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2022/10/03/semgrep-maching-learning-static-analysis/</guid><description>tl;dr: Our publicly available Semgrep ruleset now has 11 rules dedicated to the misuse of machine learning libraries. Try it out now! Picture this: You’ve spent months curating images, trying out different architectures, downloading pretrained models, messing with Kubernetes, and you’re finally ready to ship your sparkling new machine learning (ML) product. […]</description></item><item><title>Magnifier: An Experiment with Interactive Decompilation</title><link>https://miscreants.github.io/blog.trailofbits.com/2022/08/25/magnifier-an-experiment-with-interactive-decompilation/</link><pubDate>Thu, 25 Aug 2022 09:00:30 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2022/08/25/magnifier-an-experiment-with-interactive-decompilation/</guid><description>Today, we are releasing Magnifier, an experimental reverse engineering user interface I developed during my internship. Magnifier asks, “What if, as an alternative to taking handwritten notes, reverse engineering researchers could interactively reshape a decompiled program to reflect what they would normally record?” With Magnifier, the decompiled C code isn’t the end—it’s […]</description></item><item><title>Using mutants to improve Slither</title><link>https://miscreants.github.io/blog.trailofbits.com/2022/08/17/using-mutants-to-improve-slither/</link><pubDate>Wed, 17 Aug 2022 09:00:12 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2022/08/17/using-mutants-to-improve-slither/</guid><description>Improving static analysis tools can be hard; once you’ve implemented a good tool based on a useful representation of a program and added a large number of rules to detect problems, how do you further enhance the tool’s bug-finding power? One (necessary) approach to coming up with new rules […]</description></item><item><title>Shedding smart contract storage with Slither</title><link>https://miscreants.github.io/blog.trailofbits.com/2022/07/28/shedding-smart-contract-storage-with-slither/</link><pubDate>Thu, 28 Jul 2022 09:00:07 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2022/07/28/shedding-smart-contract-storage-with-slither/</guid><description>You think you’ve found a critical bug in a Solidity smart contract that, if exploited, could drain a widely used cryptocurrency exchange’s funds. To confirm that it’s really a bug, you need to figure out the value at an obscure storage slot that has no getter method. Adrenaline courses […]</description></item><item><title>Interactive decompilation with rellic-xref</title><link>https://miscreants.github.io/blog.trailofbits.com/2022/05/17/interactive-decompilation-with-rellic-xref/</link><pubDate>Tue, 17 May 2022 07:00:09 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2022/05/17/interactive-decompilation-with-rellic-xref/</guid><description>Rellic is a framework for analyzing and decompiling LLVM modules into C code, implementing the concepts described in the original paper presenting the Dream decompiler and its successor, Dream++. It recently made an appearance on this blog when I presented rellic-headergen, a tool for extracting debug metadata from LLVM modules and turning […]</description></item><item><title>Amarna: Static analysis for Cairo programs</title><link>https://miscreants.github.io/blog.trailofbits.com/2022/04/20/amarna-static-analysis-for-cairo-programs/</link><pubDate>Wed, 20 Apr 2022 07:00:04 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2022/04/20/amarna-static-analysis-for-cairo-programs/</guid><description>We are open-sourcing Amarna, our new static analyzer and linter for the Cairo programming language. Cairo is a programming language powering several trading exchanges with millions of dollars in assets (such as dYdX, driven by StarkWare) and is the programming language for StarkNet contracts. But, not unlike other languages, it has its […]</description></item><item><title>Towards Practical Security Optimizations for Binaries</title><link>https://miscreants.github.io/blog.trailofbits.com/2022/03/25/towards-practical-security-optimizations-for-binaries/</link><pubDate>Fri, 25 Mar 2022 08:58:54 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2022/03/25/towards-practical-security-optimizations-for-binaries/</guid><description>To be thus is nothing, but to be safely thus. (Macbeth: 3.1) It’s not enough that compilers generate efficient code, they must also generate safe code. Despite the extensive testing and correctness certification that goes into developing compilers and their optimization passes, they may inadvertently introduce information leaks […]</description></item><item><title>C your data structures with rellic-headergen</title><link>https://miscreants.github.io/blog.trailofbits.com/2022/01/19/c-your-data-structures-with-rellic-headergen/</link><pubDate>Wed, 19 Jan 2022 07:00:12 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2022/01/19/c-your-data-structures-with-rellic-headergen/</guid><description>Have you ever wondered how a compiler sees your data structures? Compiler Explorer may help you understand the relation between the source code and machine code, but it doesn’t provide as much support when it comes to the layout of your data. You might have heard about padding, alignment, and “plain old […]</description></item><item><title>Toward a Best-of-Both-Worlds Binary Disassembler</title><link>https://miscreants.github.io/blog.trailofbits.com/2022/01/05/toward-a-best-of-both-worlds-binary-disassembler/</link><pubDate>Wed, 05 Jan 2022 07:00:51 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2022/01/05/toward-a-best-of-both-worlds-binary-disassembler/</guid><description>This past winter, I was fortunate to have the opportunity to work for Trail of Bits as a graduate student intern under the supervision of Peter Goodman and Artem Dinaburg. During my internship, I developed Dr. Disassembler, a Datalog-driven framework for transparent and mutable binary disassembly. Though this project is ongoing, this […]</description></item><item><title>Detecting Iterator Invalidation with CodeQL</title><link>https://miscreants.github.io/blog.trailofbits.com/2020/10/09/detecting-iterator-invalidation-with-codeql/</link><pubDate>Fri, 09 Oct 2020 08:30:22 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2020/10/09/detecting-iterator-invalidation-with-codeql/</guid><description>Iterator invalidation is a common and subtle class of C++ bugs that often leads to exploitable vulnerabilities. During my Trail of Bits internship this summer, I developed Itergator, a set of CodeQL classes and queries for analyzing and discovering iterator invalidation. Results are easily interpretable by an auditor, […]</description></item><item><title>Security assessment techniques for Go projects</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/11/07/attacking-go-vr-ttps/</link><pubDate>Thu, 07 Nov 2019 07:00:06 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/11/07/attacking-go-vr-ttps/</guid><description>The Trail of Bits Assurance practice has received an influx of Go projects, following the success of our Kubernetes assessment this summer. As a result, we’ve been adapting for Go projects some of the security assessment techniques and tactics we’ve used with other compiled languages. We started by understanding the design of the language, identifying […]</description></item><item><title>Watch Your Language: Our First Vyper Audit</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/10/24/watch-your-language-our-first-vyper-audit/</link><pubDate>Thu, 24 Oct 2019 07:00:04 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/10/24/watch-your-language-our-first-vyper-audit/</guid><description>A lot of companies are working on Ethereum smart contracts, yet writing secure contracts remains a difficult task. You still have to avoid common pitfalls, compiler issues, and constantly check your code for recently discovered risks. A recurrent source of vulnerabilities comes from the early state of the programming languages available. Most developers are using […]</description></item><item><title>Reverse Taint Analysis Using Binary Ninja</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/08/29/reverse-taint-analysis-using-binary-ninja/</link><pubDate>Thu, 29 Aug 2019 06:50:20 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/08/29/reverse-taint-analysis-using-binary-ninja/</guid><description>We open-sourced a set of static analysis tools, KRFAnalysis, that analyze and triage output from our system call (syscall) fault injection tool KRF. Now you can easily figure out where and why, KRF crashes your programs. During my summer internship at Trail of Bits, I worked on KRF, […]</description></item><item><title>Avoiding Smart Contract “Gridlock” with Slither</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/07/03/avoiding-smart-contract-gridlock-with-slither/</link><pubDate>Wed, 03 Jul 2019 14:42:53 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/07/03/avoiding-smart-contract-gridlock-with-slither/</guid><description>A denial-of-service (DoS) vulnerability, dubbed ‘Gridlock,’ was publicly reported on July 1st in one of Edgeware’s smart contracts deployed on Ethereum. As much as $900 million worth of Ether may have been processed by this contract. Edgeware has since acknowledged and fixed the “fatal bug.” When we heard about Gridlock, we ran Slither on the […]</description></item><item><title>Use constexpr for faster, smaller, and safer code</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/06/27/use-constexpr-for-faster-smaller-and-safer-code/</link><pubDate>Thu, 27 Jun 2019 06:50:06 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/06/27/use-constexpr-for-faster-smaller-and-safer-code/</guid><description>With the release of C++14, the standards committee strengthened one of the coolest modern features of C++: constexpr. Now, C++ developers can write constant expressions and force their evaluation at compile-time, rather than at every invocation by users. This results in faster execution, smaller executables and, surprisingly, safer code. Undefined behavior has been the source […]</description></item><item><title>Creating an LLVM Sanitizer from Hopes and Dreams</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/06/25/creating-an-llvm-sanitizer-from-hopes-and-dreams/</link><pubDate>Tue, 25 Jun 2019 06:50:21 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/06/25/creating-an-llvm-sanitizer-from-hopes-and-dreams/</guid><description>Each year, Trail of Bits runs a month-long winter internship aka “winternship” program. This year we were happy to host 4 winterns who contributed to 3 projects. This project comes from Carson Harmon, a new graduate from Purdue interested in compilers and systems engineering, and a new full-time member of our research practice. I set […]</description></item><item><title>Trail of Bits @ ICSE 2019 – Recap</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/06/19/trail-of-bits-icse-2019-recap/</link><pubDate>Wed, 19 Jun 2019 10:35:13 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/06/19/trail-of-bits-icse-2019-recap/</guid><description>Three weeks ago, we presented our work on Slither at WETSEB, an ICSE workshop. ICSE is a top-tier academic conference, focused on software engineering. This edition of the event went very well. The organizers do their best to attract and engage industrials to the discussions. The conference had many talks in parallel. We wish we […]</description></item><item><title>Announcing Automated Reverse Engineering Trainings</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/05/30/announcing-automated-reverse-engineering-trainings/</link><pubDate>Thu, 30 May 2019 07:00:28 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/05/30/announcing-automated-reverse-engineering-trainings/</guid><description>Consider our modular trainings. They can be organized to suit your company’s needs. You choose the number of skills and days to spend honing them.</description></item><item><title>Slither: The Leading Static Analyzer for Smart Contracts</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/05/27/slither-the-leading-static-analyzer-for-smart-contracts/</link><pubDate>Mon, 27 May 2019 06:30:58 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/05/27/slither-the-leading-static-analyzer-for-smart-contracts/</guid><description>We have published an academic paper on Slither, our static analysis framework for smart contracts, in the International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB), colocated with ICSE. Our paper shows that Slither’s bug detection outperforms other static analysis tools for finding issues in smart contracts in terms of speed, robustness, and […]</description></item><item><title>Slither – a Solidity static analysis framework</title><link>https://miscreants.github.io/blog.trailofbits.com/2018/10/19/slither-a-solidity-static-analysis-framework/</link><pubDate>Fri, 19 Oct 2018 06:50:09 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2018/10/19/slither-a-solidity-static-analysis-framework/</guid><description>Slither is the first open-source static analysis framework for Solidity. Slither is fast and precise; it can find real vulnerabilities in a few seconds without user intervention. It is highly customizable and provides a set of APIs to inspect and analyze Solidity code easily. We use it in all of our security reviews. Now you […]</description></item><item><title>Vulnerability Modeling with Binary Ninja</title><link>https://miscreants.github.io/blog.trailofbits.com/2018/04/04/vulnerability-modeling-with-binary-ninja/</link><pubDate>Wed, 04 Apr 2018 06:50:35 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2018/04/04/vulnerability-modeling-with-binary-ninja/</guid><description>Plenty of static analyzers can perform vulnerability discovery on source code, but what if you only have the binary? How can we model a vulnerability and then check a binary to see if it is vulnerable? The short answer: use Binary Ninja’s MLIL and SSA form. Together, they make it easy to build and solve a system of equations with a theorem prover that takes binaries and turns them, alchemy-like, into vulnerabilities!</description></item><item><title>Use our suite of Ethereum security tools</title><link>https://miscreants.github.io/blog.trailofbits.com/2018/03/23/use-our-suite-of-ethereum-security-tools/</link><pubDate>Fri, 23 Mar 2018 00:28:08 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2018/03/23/use-our-suite-of-ethereum-security-tools/</guid><description>Two years ago, when we began taking on blockchain security engagements, there were no tools engineered for the work. No static analyzers, fuzzers, or reverse engineering tools for Ethereum. So, we invested significant time and expertise to create what we needed, adapt what we already had, and refine the work continuously over dozens of audits. […]</description></item><item><title>An extra bit of analysis for Clemency</title><link>https://miscreants.github.io/blog.trailofbits.com/2017/07/30/an-extra-bit-of-analysis-for-clemency/</link><pubDate>Sun, 30 Jul 2017 18:41:30 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2017/07/30/an-extra-bit-of-analysis-for-clemency/</guid><description>This year’s DEF CON CTF used a unique hardware architecture, cLEMENCy, and only released a specification and reference tooling for it 24 hours before the final event began. cLEMENCy was purposefully designed to break existing tools and make writing new ones harder. This presented a formidable challenge given the timeboxed competition occurs over a single […]</description></item><item><title>Devirtualizing C++ with Binary Ninja</title><link>https://miscreants.github.io/blog.trailofbits.com/2017/02/13/devirtualizing-c-with-binary-ninja/</link><pubDate>Mon, 13 Feb 2017 06:50:32 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2017/02/13/devirtualizing-c-with-binary-ninja/</guid><description>In my first blog post, I introduced the general structure of Binary Ninja’s Low Level IL (LLIL), as well as how to traverse and manipulate it with the Python API. Now, we’ll do something a little more interesting. Reverse engineering binaries compiled from object-oriented languages can be challenging, particularly when it comes to virtual functions. […]</description></item><item><title>Breaking Down Binary Ninja’s Low Level IL</title><link>https://miscreants.github.io/blog.trailofbits.com/2017/01/31/breaking-down-binary-ninjas-low-level-il/</link><pubDate>Tue, 31 Jan 2017 06:50:09 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2017/01/31/breaking-down-binary-ninjas-low-level-il/</guid><description>Hi, I’m Josh. I recently joined the team at Trail of Bits, and I’ve been an evangelist and plugin writer for the Binary Ninja reversing platform for a while now. I’ve developed plugins that make reversing easier and extended Binary Ninja’s architecture support to assist in playing the microcorruption CTF. One of my favorite features of […]</description></item><item><title>Automated Code Audit’s First Customer</title><link>https://miscreants.github.io/blog.trailofbits.com/2016/10/04/first-ever-automated-code-audit/</link><pubDate>Tue, 04 Oct 2016 07:50:46 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2016/10/04/first-ever-automated-code-audit/</guid><description>Last month our Cyber Reasoning System (CRS) -developed for DARPA’s Cyber Grand Challenge– audited a much larger amount of code in less time, in greater detail, and at a lower cost than a human could. Our CRS audited zlib for the Mozilla Secure Open Source (SOS) Fund. To our knowledge, this is the first instance […]</description></item><item><title>2000 cuts with Binary Ninja</title><link>https://miscreants.github.io/blog.trailofbits.com/2016/06/03/2000-cuts-with-binary-ninja/</link><pubDate>Fri, 03 Jun 2016 12:14:34 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2016/06/03/2000-cuts-with-binary-ninja/</guid><description>Using Vector35&amp;rsquo;s Binary Ninja, a promising new interactive static analysis and reverse engineering platform, I wrote a script that generated &amp;ldquo;exploits&amp;rdquo; for 2,000 unique binaries in this year&amp;rsquo;s DEFCON CTF qualifying round. If you&amp;rsquo;re wondering how to remain competitive in a post-DARPA DEFCON CTF, I highly recommend you take a look at Binary Ninja.</description></item><item><title>The Problem with Dynamic Program Analysis</title><link>https://miscreants.github.io/blog.trailofbits.com/2016/03/09/the-problem-with-dynamic-program-analysis/</link><pubDate>Wed, 09 Mar 2016 13:53:34 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2016/03/09/the-problem-with-dynamic-program-analysis/</guid><description>Developers have access to tools like AddressSanitizer and Valgrind that will tell them when the code that they’re running accesses uninitialized memory, leaks memory, or uses memory after it’s been freed. Despite the availability of these excellent tools, memory bugs still persist, still get shipped to users, and still get exploited in the wild. Most […]</description></item><item><title>Using Static Analysis and Clang To Find Heartbleed</title><link>https://miscreants.github.io/blog.trailofbits.com/2014/04/27/using-static-analysis-and-clang-to-find-heartbleed/</link><pubDate>Sun, 27 Apr 2014 12:25:50 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2014/04/27/using-static-analysis-and-clang-to-find-heartbleed/</guid><description>Background Friday night I sat down with a glass of Macallan 15 and decided to write a static checker that would find the Heartbleed bug. I decided that I would write it as an out-of-tree clang analyzer plugin and evaluate it on a few very small functions that had the spirit of the Heartbleed bug […]</description></item><item><title>Semantic Analysis of Native Programs with CodeReason</title><link>https://miscreants.github.io/blog.trailofbits.com/2014/02/23/semantic-analysis-of-native-programs-introducing-codereason/</link><pubDate>Sun, 23 Feb 2014 22:59:13 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2014/02/23/semantic-analysis-of-native-programs-introducing-codereason/</guid><description>Have you ever wanted to make a query into a native mode program asking about program locations that write a specific value to a register? Have you ever wanted to automatically deobfuscate obfuscated strings? Reverse engineering a native program involves understanding its semantics at a low level until a high level picture of functionality emerges. […]</description></item></channel></rss>