Trim My View: An LLM-Based Code Query System for Module Retrieval in Robotic Firmware
Sima Arasteh, Pegah Jandaghi, Nicolaas Weideman, Dennis Perepech, Mukund Raghothaman, Christophe Hauser, Luis Garcia
TL;DR
This work addresses the difficulty of understanding stripped binary firmware by combining binary modularization, decompilation, and LLM-based function summarization into ChatCPS, a code query system for module retrieval in robotic firmware. The approach uses an ARM-adapted BCD decomposition to form modules, a two-pass summarization strategy with three open-source LLMs, and a category-retrieval step aided by tailored prompts, achieving a best average module-categorization F1 score of $0.68$ on ArduPilot across 467 modules. Key contributions include the ARM-focused modification of BCD, empirical evaluation of three open-source LLMs for function summarization and module retrieval, and ground-truth establishment for CPS-relevant categories (data transfer, navigation, control, safety checks, and other). The results demonstrate that CodeStral consistently outperforms peers in module retrieval while enabling efficient, open-source-based analysis, with practical implications for rapid firmware comprehension and targeted reverse-engineering workflows in robotics.
Abstract
The software compilation process has a tendency to obscure the original design of the system and makes it difficult both to identify individual components and discern their purpose simply by examining the resulting binary code. Although decompilation techniques attempt to recover higher-level source code from the machine code in question, they are not fully able to restore the semantics of the original functions. Furthermore, binaries are often stripped of metadata, and this makes it challenging to reverse engineer complex binary software. In this paper we show how a combination of binary decomposition techniques, decompilation passes, and LLM-powered function summarization can be used to build an economical engine to identify modules in stripped binaries and associate them with high-level natural language descriptions. We instantiated this technique with three underlying open-source LLMs -- CodeQwen, DeepSeek-Coder and CodeStral -- and measured its effectiveness in identifying modules in robotics firmware. This experimental evaluation involved 467 modules from four devices from the ArduPilot software suite, and showed that CodeStral, the best-performing backend LLM, achieves an average F1-score of 0.68 with an online running time of just a handful of seconds.
