Skip to main content
Log in

In situ reuse of logically extracted functional components

Journal in Computer Virology Aims and scope Submit manuscript

Abstract

Programmers often identify functionality within a compiled program that they wish they could reuse in a manner other than that intended by the program’s original authors. The traditional approach to reusing pre-existing functionality contained within a binary executable is that of physical extraction; that is, the recreation of the desired functionality in some executable module separate from the program in which it was originally found. Towards overcoming the inherent limitations of physical extraction, we propose in situ reuse of logically extracted functional components. Logical extraction consists of identifying and retaining information about the locations of the elements comprising the functional component within its original program, and in situ reuse is the process of driving the original program to execute the logically extracted functional component in whatever manner the new programmer sees fit.

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

References

  1. Defense Advanced Research Projects Agency. Research Announcement-Binary Executable Transforms (BET) - DARPA-RA-11-56. Technical report, Defense Advanced Research Projects Agency (2011)

  2. Buck B., Hollingsworth J.K.: An API for runtime code patching. Int. J. High Performance Comput. Appl. 14(4), 317–329 (2000)

    Article  Google Scholar 

  3. Caballero, J.: Binary code extraction and interface identification for security applications. Technical report, DTIC Document (2009)

  4. Cifuentes C., Fraboulet, A.: Intraprocedural static slicing of binary executables. In: Software Maintenance. Proceedings., International Conference on IEEE, pp. 188–195 (1997)

  5. Egyed, A., Balzer, R.: Unfriendly COTS integration-instrumentation and interfaces for improved plugability. In: Automated Software Engineering, 2001.(ASE 2001). Proceedings of 16th Annual International Conference on IEEE, pp. 223–231 (2001)

  6. Kolbitsch, C., Holz, T., Kruegel, C., Kirda, E.: Inspector Gadget: Automated extraction of proprietary gadgets from malware binaries. In: 2010 IEEE Symposium on Security and Privacy, IEEE, pp. 29–44 (2010)

  7. Kiss, A., Jász, J., Lehotai, G., Gyimóthy, T.: Interprocedural static slicing of binary executables. In: Source Code Analysis and Manipulation, 2003. Proceedings of Third IEEE International Workshop on IEEE, pp. 118–127 (2003)

  8. Luk, C.K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V.J., Hazelwood, K.: Pin: Building customized program analysis tools with dynamic instrumentation. In: ACM SIGPLAN Notices, vol. 40, pp. 190–200. ACM (2005)

  9. Ravipati, G., Bernat, A.R., Rosenblum, N., Miller, B.P., Hollingsworth, J.K.: Toward the deconstruction of Dyninst. Technical report, Computer Sciences Department, University of Wisconsin, Madison (ftp://ftp.cs.wisc.edu/paradyn/papers/Ravipati07SymtabAPI.pdf) (2007)

  10. Weiser, M.: Program slicing. In: Proceedings of the 5th international conference on software engineering, pp. 439–449. IEEE Press (1981)

  11. Williams, C.C., Hollingsworth, J.K.: Interactive binary instrumentation. In: International Works on Remote Analytic and Measurement of Software System, pp. 312–327 (2004)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Craig Miles.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Miles, C., Lakhotia, A. & Walenstein, A. In situ reuse of logically extracted functional components. J Comput Virol 8, 73–84 (2012). https://doi.org/10.1007/s11416-012-0167-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11416-012-0167-y

Keywords

Navigation