Skip to main content

DexPro: A Bytecode Level Code Protection System for Android Applications

  • Conference paper
  • First Online:
Book cover Cyberspace Safety and Security (CSS 2017)

Part of the book series: Lecture Notes in Computer Science ((LNSC,volume 10581))

Included in the following conference series:

Abstract

Unauthorized code modification through reverse engineering is a major concern for Android application developers. Code reverse engineering is often used by adversaries to remove the copyright protection or advertisements from the app, or to inject malicious code into the program. By making the program difficult to analyze, code obfuscation is a potential solution to the problem. However, there is currently little work on applying code obfuscation to compiled Android bytecode. This paper presents DexPro, a novel bytecode level code obfuscation system for Android applications. Unlike prior approaches, our method performs on the Android Dex bytecode and does not require access to high-level program source or modification of the compiler or the VM. Our approach leverages the fact all except floating operands in Dex are stored in a 32-bit register to pack two 32-bit operands into a 64-bit operand. In this way, any attempt to decompile the bytecode will result in incorrect information. Meanwhile, our approach obfuscates the program control flow by inserting opaque predicates before the return instruction of a function call, which makes it harder for the attacker to trace calls to protected functions. Experimental results show that our approach can deter sophisticate reverse engineering and code analysis tools, and the overhead of runtime and memory footprint is comparable to existing code obfuscation methods.

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.

    The Dalvik executable format (Dex) is the executable binary format for Android applications. It was originally designed for the Dalvik VM. It remains to be used as a standard bytecode format for Android applications after the Dalvik VM is replaced by the Android runtime (ART).

References

  1. Zheng Qi, X.A.: The control flow of confusion for android mobile application (2014)

    Google Scholar 

  2. Jinliang, L.: Research and realization on Android software protection technology. Ph.D. thesis, Beijing University of Posts and Telecommunications (2015)

    Google Scholar 

  3. Qi, Z.: Research and implementation of code obfuscation algorithms for applications of and smartphone terminal. Master’s thesis, Beijing University of Posts and Telecommunications (2015)

    Google Scholar 

  4. Proguard. http://proguard.sourceforge.net/

  5. Shu, J., Li, J., Zhang, Y., Gu, D.: Android app protection via interpretation obfuscation. In: 2014 IEEE 12th International Conference on Dependable, Autonomic and Secure Computing (DASC), pp. 63–68. IEEE (2014)

    Google Scholar 

  6. Yang, Y., Fan, W., Huang, W., Xu, G., Yang, Y.: The research of multi-point function opaque predicates obfuscation algorithm. Appl. Math. 8(6), 3063–3070 (2014)

    Google Scholar 

  7. Yuan, Z., Wen, Q., Mao, M.: Constructing opaque predicates for java programs. In: 2006 International Conference on Computational Intelligence and Security (2006)

    Google Scholar 

  8. Codeverify.cpp. http://androidxref.com/4.2.2_r1/xref/dalvik/vm/analysis/CodeVerify.cpp

  9. Dexverify.cpp. http://androidxref.com/4.2.2_r1/xref/dalvik/vm/analysis/DexVerify.cpp

  10. Jeb. http://securitymusings.com/article/4003/android-security-and-the-tools-i-use-jeb

  11. dexdump. https://play.google.com/store/apps/details?id=com.redlee90.dexdump

  12. Idapro. https://www.hex-rays.com/products/ida

  13. Dex2jar. https://sourceforge.net/p/dex2jar/wiki/UserGuide/

  14. Bartel, A., Klein, J., Traon, Y.L., Monperrus, M.: Dexpler: converting android dalvik bytecode to jimple for static analysis with soot. In: ACM SIGPLAN International Workshop on State of the Art in Java Program Analysis, pp. 27–38 (2012)

    Google Scholar 

  15. Enck, W., Octeau, D., Mcdaniel, P., Chaudhuri, S.: A study of android application security. Br. Med. J. 2(3859), 1175 (2011)

    Google Scholar 

  16. Android runtime. https://en.wikipedia.org/wiki/Android_Runtime

  17. Collberg, C., Thomborson, C., Low, D.: A taxonomy of obfuscating transformations. Technical report, Department of Computer Science, The University of Auckland, New Zealand (1997)

    Google Scholar 

  18. Venkatesan, A.: Code obfuscation and virus detection. Ph.D. thesis, San Jose State University (2008)

    Google Scholar 

  19. Schrittwieser, S., Katzenbeisser, S.: Code obfuscation against static and dynamic reverse engineering. In: Filler, T., Pevný, T., Craver, S., Ker, A. (eds.) IH 2011. LNCS, vol. 6958, pp. 270–284. Springer, Heidelberg (2011). doi:10.1007/978-3-642-24178-9_19

    Chapter  Google Scholar 

  20. Schulz, P.: Code protection in android. Insititute of Computer Science, Rheinische Friedrich-Wilhelms-Universitgt Bonn, Germany 110 (2012)

    Google Scholar 

  21. Ghosh, S., Tandan, S., Lahre, K.: Shielding android application against reverse engineering. Int. J. Eng. Res. Technol. 2, 2635–2643 (2013). ESRSA Publications

    Google Scholar 

  22. Kundu, D.: JShield: a java anti-reversing tool. Ph.D. thesis, San José State University (2011)

    Google Scholar 

  23. Shoaib, M., Yasin, N., Abbassi, A.G.: Smart card based protection for dalvik bytecode-dynamically loadable component of an android apk. Int. J. Comput. Theory Eng. 8(2), 156 (2016)

    Article  Google Scholar 

  24. Balachandran, V., Tan, D.J., Thing, V.L.: Control flow obfuscation for android applications. Comput. Secur. 61, 72–93 (2016)

    Article  Google Scholar 

Download references

Acknowledgment

This work was partially supported by the National Natural Science Foundation of China under grant agreements No. 61672427 and No. 61572402; the International Cooperation Foundation of Shaanxi Province, China under grant agreements No. 2015KW-003 and No. 2017KW-008; the Research Project of Shaanxi Province Department of Education under grant agreement No. 15JK1734; the Service Special Foundation of Shaanxi Province Department of Education under grant agreement No. 16JF028; the Research Project of NWU, China under grant agreement No. 14NW28; the UK Engineering and Physical Sciences Research Council under grants EP/M01567X/1 (SANDeRs) and EP/M015793/1 (DIVIDEND); and the Royal Society International Collaboration Grant (IE161012).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Zhanyong Tang .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Zhao, B. et al. (2017). DexPro: A Bytecode Level Code Protection System for Android Applications. In: Wen, S., Wu, W., Castiglione, A. (eds) Cyberspace Safety and Security. CSS 2017. Lecture Notes in Computer Science(), vol 10581. Springer, Cham. https://doi.org/10.1007/978-3-319-69471-9_27

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-69471-9_27

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-69470-2

  • Online ISBN: 978-3-319-69471-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics