Skip to main content
Log in

Design and implementation of user-level dynamic binary instrumentation on ARM architecture

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

We have developed a user-level dynamic binary instrumentation (DBI) tool on ARM architecture to enable applying various analysis techniques such as performance evaluation, profiling, and bug detection. Most of existing DBI tools are based on the x86 architecture. As demands for the similar approaches mainly performed in x86 are getting higher in an embedded device domain as well, DBI environment is strongly required for embedded devices especially ARM architecture which has a majority of market share in embedded systems. Only a few tools are currently available to ARM but they are very limited to a specific purpose. Therefore, we designed and implemented a general-purpose DBI tool on ARM to execute an arbitrary code between instructions of a target process. Our tool supports native execution environment which is required for security analysis. We have conducted some experiments with common UNIX utilities and an Android application to validate our tool by tracing and saving context information of every instruction of a desired thread. As a result, we have confirmed that it works as expected without affecting the original context of the target process.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1

Similar content being viewed by others

References

  1. Lee D, Kim I, Kim J, Jun HK, Kim WT, Lee S, Eom YI (2013) Light-weight kernel instrumentation framework using dynamic binary translation. J Supercomput 66(3):1613–1628

    Article  Google Scholar 

  2. Henderson A, Prakash A, Yan L, Hu X, Wang X, Zhou R, Yin H (2014) Make it work, make it right, make it fast: building a platform-neutral whole-system dynamic binary analysis platform. In: Proceedings of the 2014 International Symposium on Software Testing and Analysis, pp 248–258

  3. Nicholas N (2004) Dynamic binary analysis and instrumentation. Dissertation, University of Cambridge

  4. Zaddach J, Bruno L, Francillon A, Balzarotti D (2014) Avatar: a framework to support dynamic security analysis of embedded systems firmwares. In: Proceedings of the 21st Symposium on Network and Distributed System Security

  5. Enck W, Gilbert P, Han S, Tendulkar V, Chun B, Cox L, Jung J, Mcdaniel P, Sheth A (2014) TaintDroid: an information-flow tracking system for realtime privacy monitoring on smartphones. ACM Trans Comput Syst 32(2):5

    Article  Google Scholar 

  6. Luk CK, Cohn R, Muth R, Patil H, Klauser A, Lowney G, Wallace S, Reddi VJ, Hazelwood K (2005) Pin: building customized program analysis tools with dynamic instrumentation. In: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, vol 40, pp 190–200

  7. Uh GR, Cohn R, Yadavalli B, Peri R, Ayyagari R (2006) Analyzing dynamic binary instrumentation overhead. In: WIBA Workshop at ASPLOS

  8. Li L, Wang C (2013) Dynamic analysis and debugging of binary code for security applications. In: Proceedings of the 4th International Conference on Runtime Verification, Springer, Berlin

  9. DullienT, Porst S (2009) REIL: a platform-independent intermediate representation of disassembled code for static code analysis. In: CanSecWest

  10. Mihajlovi B, Zilic Z, Gross WJ (2014) Dynamically instrumenting the QEMU emulator for linux process trace generation with the GDB debugger. ACM Trans Embed Comput Syst 13(5s), article no. 167

  11. Liu C, Chen J, Yang W, Hsu W (2014) Dynamically translating binary code for multi-threaded programs using shared code cache. J Electron Sci Technol 04:434–438

    Google Scholar 

  12. Hong D, Wu J, Yew P, Hsu W, Hsu C, Liu P, Wang C, Chung Y (2014) Efficient and retargetable dynamic binary translation on multicores. IEEE Trans Parallel Distrib Syst 25(3):622–632

    Article  Google Scholar 

  13. Payer M, Kravina E, Gross T (2013) Lightweight memory tracing. In: USENIX annual technical conference, pp 115–126

  14. Paxson V (1990) A survey of support for implementing debuggers

  15. Rodriguez R, Artal J, Merseguer J (2014) Performance evaluation of dynamic binary instrumentation frameworks. IEEE Latin Am Trans 12(8):1572–1580

    Article  Google Scholar 

  16. ARM (2015) ARM compiler armasm user guide version 6.3. http://infocenter.arm.com/help/topic/com.arm.doc.dui0801d/DUI0801D_armasm_user_guide. Accessed 8 Dec 2015

  17. Sun H, Zheng Y, Bulej L, Villazn A, Qi Z, Tma P, Binder W (2015) A programming model and framework for comprehensive dynamic analysis on Android. In: Proceedings of the 14th International Conference on Modularity, ACM, pp 133–145

  18. Capstone: lightweight multi-platform, multi-architecture disassembly framework. http://www.capstone-engine.org. Accessed 8 Dec 2015

  19. van der Kouwe E, Giuffrida C, Tanenbaum AS (2014) Evaluating distortion in fault injection experiments. In: 2014 IEEE 15th International Symposium on High-Assurance Systems Engineering (HASE), pp 25–32

  20. GDB 7.10.1. http://www.gnu.org/software/gdb/download. Accessed 8 Dec 2015

  21. Kim H, Klauser A (2006) A dynamic binary instrumentation engine for the ARM architecture. In: Proceedings of the 2006 International Conference on Compilers, Architecture and Synthesis for Embedded Systems

  22. Nicholas N, Seward J (2007) Valgrind: a framework for heavyweight dynamic binary instrumentation. ACM Sigplan Not 42(6):89–100

    Article  Google Scholar 

  23. Valgrind FAQ (2015) On crash. http://valgrind.org/docs/manual/faq.html#faq.crashes. Accessed 8 Dec 2015

  24. ADBI: Android dynamic binary instrumentation. https://github.com/crmulliner/adbi. Accessed 8 Dec 2015

Download references

Acknowledgments

This research was supported by Next-Generation Information Computing Development Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Science, ICT & Future Planning (No. NRF-2014M3C4A7030648)

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dongwoo Kim.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Kim, D., Kim, S. & Ryou, J. Design and implementation of user-level dynamic binary instrumentation on ARM architecture. J Supercomput 74, 3583–3595 (2018). https://doi.org/10.1007/s11227-016-1777-9

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-016-1777-9

Keywords

Navigation