Skip to main navigation Skip to search Skip to main content

Concolic Execution Optimized for Go Binaries using Ghidra’s P-Code

  • Telecom Paris
  • Ledger Donjon
  • Ledger Donjon

Research output: Chapter in Book/Report/Conference proceedingChapterpeer-review

Abstract

The widespread adoption of the Go programming language in infrastructure backends and blockchain projects has heightened the need for improved security measures. Established techniques such as unit testing, static analysis, and program fuzzing provide foundational protection mechanisms. Although symbolic execution tools have made significant contributions, opportunities remain to address the complexities of Go’s runtime and concurrency model. In this work, we present Zorya, a novel methodology leveraging concrete and symbolic (concolic) execution to evaluate Go programs comprehensively. By systematically exploring execution paths to uncover vulnerabilities beyond conventional testing, symbolic execution offers distinct advantages, and coupling it with concrete execution mitigates the path explosion problem. Our solution employs Ghidra’s P-Code as an intermediate representation (IR). This implementation detects runtime panics in the TinyGo compiler and supports both generic and custom invariants. Furthermore, P-Code’s generic IR nature enables analysis of programs written in other languages such as C. Future enhancements may include intelligent classification of concolic execution logs to identify vulnerability patterns.

Original languageEnglish
Title of host publicationStudies in Computational Intelligence
PublisherSpringer Science and Business Media Deutschland GmbH
Pages161-176
Number of pages16
DOIs
Publication statusPublished - 1 Jan 2026

Publication series

NameStudies in Computational Intelligence
Volume1239
ISSN (Print)1860-949X
ISSN (Electronic)1860-9503

Keywords

  • Concolic execution
  • Go
  • Invariant testing
  • P-Code
  • Vulnerabilities detection

Fingerprint

Dive into the research topics of 'Concolic Execution Optimized for Go Binaries using Ghidra’s P-Code'. Together they form a unique fingerprint.

Cite this