Skip to main content

RVX - A Tool for Concolic Testing of Embedded Binaries Targeting RISC-V Platforms

  • Conference paper
  • First Online:
Automated Technology for Verification and Analysis (ATVA 2020)

Abstract

We present RVX, a tool for concolic testing of embedded binaries targeting RISC-V platforms with peripherals. RVX integrates the Concolic Testing Engine (CTE) with an Instruction Set Simulator (ISS) supporting the RISC-V RV32IMC Instruction Set Architecture (ISA). Further, RVX provides a designated CTE-interface for additional extensions. It is an extensible command layer that provides support for verification functions and enables integration of peripherals into the concolic simulation. The experiments demonstrate the applicability and efficiency of RVX in analyzing real-world embedded applications. In addition, we found a new serious bug in the RISC-V port of the newlib C library.

This work was supported in part by the German Federal Ministry of Education and Research (BMBF) within the project Scale4Edge under contract no. 16ME0127 and within the project VerSys under contract no. 01IW19001 and within the project SATiSFy under contract no. 16KIS0821K, and by the German Research Foundation (DFG) as part of the Collaborative Research Center (Sonderforschungsbereich) 1320 EASE – Everyday Activity Science and Engineering, University of Bremen (http://www.ease-crc.org/) in subproject P04.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Find the RISC-V ISA specification documents at https://riscv.org/specifications/.

  2. 2.

    Visit http://systemc-verification.org/risc-v for the most recent updates on our RISC-V related approaches.

  3. 3.

    Essentially, this will copy code and data from the text and data sections, respectively, as well as zero initialize memory according to the bss section, as specified in the ELF program headers.

  4. 4.

    https://github.com/riscv/riscv-newlib/blob/master/newlib/libc/machine/riscv/memcpy.c.

References

  1. Cadar, C., Dunbar, D., Engler, D.R.: KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs. In: OSDI, pp. 209–224 (2008)

    Google Scholar 

  2. Cha, S.K., Avgerinos, T., Rebert, A., Brumley, D.: Unleashing mayhem on binary code. In: IEEE S & P, pp. 380–394 (2012)

    Google Scholar 

  3. Chipounov, V., Kuznetsov, V., Candea, G.: S2E: a platform for in-vivo multi-path analysis of software systems. In: ASPLOS, pp. 265–278 (2011)

    Google Scholar 

  4. Ganesh, V., Dill, D.L.: A decision procedure for bit-vectors and arrays. In: CAV, pp. 519–531 (2007)

    Google Scholar 

  5. Godefroid, P., Levin, M.Y., Molnar, D.A.: Automated whitebox fuzz testing. In: NDSS (2008)

    Google Scholar 

  6. Herdt, V., Große, D., Le, H.M., Drechsler, R.: Extensible and configurable RISC-V based virtual prototype. In: Forum on Specification and Design Languages, pp. 5–16 (2018)

    Google Scholar 

  7. Herdt, V., Große, D., Le, H.M., Drechsler, R.: Early concolic testing of embedded binaries with virtual prototypes: a RISC-V case study. In: DAC, pp. 188:1–188:6 (2019)

    Google Scholar 

  8. IEEE Std. 1666: IEEE Standard SystemC Language Reference Manual (2011)

    Google Scholar 

  9. Shoshitaishvili, Y., et al.: SOK: (state of) the art of war: offensive techniques in binary analysis. In: IEEE S & P, pp. 138–157 (2016)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Vladimir Herdt .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Herdt, V., Große, D., Drechsler, R. (2020). RVX - A Tool for Concolic Testing of Embedded Binaries Targeting RISC-V Platforms. In: Hung, D.V., Sokolsky, O. (eds) Automated Technology for Verification and Analysis. ATVA 2020. Lecture Notes in Computer Science(), vol 12302. Springer, Cham. https://doi.org/10.1007/978-3-030-59152-6_31

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-59152-6_31

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-59151-9

  • Online ISBN: 978-3-030-59152-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics