skip to main content
10.1145/1314389.1314399acmconferencesArticle/Chapter ViewAbstractPublication PagesccsConference Proceedingsconference-collections
Article

Renovo: a hidden code extractor for packed executables

Published:02 November 2007Publication History

ABSTRACT

As reverse engineering becomes a prevalent technique to analyze malware, malware writers leverage various anti-reverse engineering techniques to hide their code. One technique commonly used is code packing as packed executables hinder code analysis. While this problem has been previously researched, the existing solutions are either unable to handle novel samples, or vulnerable to various evasion techniques. In this paper, we propose a fully dynamic approach that captures an intrinsic nature of hidden code execution that the original code should be present in memory and executed at some point at run-time. Thus, this approach monitors program execution and memory writes at run-time, determines if the code under execution is newly generated, and then extracts the hidden code of the executable. To demonstrate its effectiveness, we implement a system, Renovo, and evaluate it with a large number of real-world malware samples. The experiments show that Renovo is accurate compared to previous work, yet practical in terms of performance

References

  1. Anubis. http://analysis.seclab.tuwien.ac.at.Google ScholarGoogle Scholar
  2. BitBlaze Binary Analysis Platform. http://bitblaze.cs.berkeley.edu/.Google ScholarGoogle Scholar
  3. Norman SandBox Information Center. http://www.norman.com.Google ScholarGoogle Scholar
  4. OllyBonE. http://www.joestewart.org/ollybone/.Google ScholarGoogle Scholar
  5. OllyDbg. http://www.ollydbg.de/.Google ScholarGoogle Scholar
  6. PEiD. http://www.secretashell.com/codomain/peid/.Google ScholarGoogle Scholar
  7. Red Pill. http://invisiblethings.org/papers/redpill.html.Google ScholarGoogle Scholar
  8. TEMU: The BitBlaze Dynamic Analysis Component. http://bitblaze.cs.berkeley.edu/temu.html.Google ScholarGoogle Scholar
  9. The Unpacker Archive. http://www.woodmann.com/crackz/Tools/Unpckarc.zip.Google ScholarGoogle Scholar
  10. Themida. http://www.oreans.com/.Google ScholarGoogle Scholar
  11. Yoda Protector. http://sourceforge.net/projects/yodap/.Google ScholarGoogle Scholar
  12. ASPack Software. ASPack and ASProtect. http://www.aspack.com/.Google ScholarGoogle Scholar
  13. S. Bhatkar, D. C. DuVarney, and R. Sekar. Address obfuscation: An efficient approach to combat a broad range of memory error exploits. In Proceedings of the 12th USENIX Security Symposium, August 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Bitsum Technologies. PECompact2. http://www.bitsum.com/pec2.asp.Google ScholarGoogle Scholar
  15. T. Brosch and M. Morgenstern. Runtime packers: The hidden problem? https://www.blackhat.com/presentations/bh-usa-06/BH-US-06-Morgenstern.pdf, 2006.Google ScholarGoogle Scholar
  16. M. Christodorescu, J. Kinder, S. Jha, S. Katzenbeisser, and H. Veith. Malware normalization. Technical Report 1539, University of Wisconsin, Madison, Wisconsin, USA, Nov. 2005.Google ScholarGoogle Scholar
  17. Data Rescue. Universal PE Unpacker plug-in. http://www.datarescue.com/idabase/unpack_pe.Google ScholarGoogle Scholar
  18. DataRescue SA. IDA Pro disassembler: Multi-processor, Windows hosted disassembler and debugger. http://www.datarescue.com/idabase/.Google ScholarGoogle Scholar
  19. T. Graf. Generic unpacking: How to handle modified or unknown PE compression engines. http://www.virusbtn.com/pdf/conference_slides/2005/Graf.pdf, 2005.Google ScholarGoogle Scholar
  20. Y. L. Huang, F. S. Ho, H. Y. Tsai, and H. M. Kao. A control flow obfuscation method to discourage malicious tampering of software codes. In ASIACCS'06: Proceedings of the 2006 ACM Symposium on Information, computer and communications security, pages 362--362, New York, NY, USA, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. Kruegel, W. Robertson, F. Valeur, and G. Vigna. Static disassembly of obfuscated binaries. In Proceedings of the 13th USENIX Security Symposium, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. C. Linn and S. Debray. Obfuscation of executable code to improve resistance to static disassembly. In CCS '03: Proceedings of the 10th ACM conference on Computer and communications security, pages 290--299, New York, NY, USA, 2003. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Project Malfease. http://malfease.oarci.net/.Google ScholarGoogle Scholar
  24. McAfee. Advanced virus detection scan engine and DATs. http://www.mcafee.com/us/local_content/white_papers/wp_scan_engine.pdf.Google ScholarGoogle Scholar
  25. S. Nanda, W. Li, L. Lam, and T. Chiueh. BIRD: Binary interpretation using runtime disassembly. In CGO '06: Proceedings of the International Symposium on Code Generation and Optimization, pages 358--370, Washington, DC, USA, 2006. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Obsidium Software. Obsidium. http://www.obsidium.de/show.php?home.Google ScholarGoogle Scholar
  27. P. Royal, M. Halpin, D. Dagon, R. Edmonds, and W. Lee. PolyUnpack: Automating the hidden-code extraction of unpack-executing malware. In ACSAC '06: Proceedings of the 22nd Annual Computer Security Applications Conference on Annual Computer Security Applications Conference, pages 289--300, Washington, DC, USA, 2006. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Silicon Realms Toolworks. Armadillo. http://siliconrealms.com/index.shtml.Google ScholarGoogle Scholar
  29. Teggo. MoleBox Pro. http://www.molebox.com/download.shtml.Google ScholarGoogle Scholar
  30. M. Vrable, J. Ma, J. Chen, D. Moore, E. Vandekieft, A. Snoeren, G. Voelker, and S. Savage. Scalability, fidelity and containment in the potemkin virtual honeyfarm. In Proceedings of the ACM Symposium on Operating Systems Principles (SOSP), October 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Renovo: a hidden code extractor for packed executables

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          WORM '07: Proceedings of the 2007 ACM workshop on Recurring malcode
          November 2007
          76 pages
          ISBN:9781595938862
          DOI:10.1145/1314389

          Copyright © 2007 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 2 November 2007

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Upcoming Conference

          CCS '24
          ACM SIGSAC Conference on Computer and Communications Security
          October 14 - 18, 2024
          Salt Lake City , UT , USA

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader