Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Software protection for dynamically generated code
Ghosh S., Hiser J., Davidson J.  PPREW 2013 (Proceedings of the 2nd ACM SIGPLAN Program Protection and Reverse Engineering Workshop, Rome, Italy, Jan 26, 2013)1-12.2013.Type:Proceedings
Date Reviewed: Apr 9 2014

A process-level virtual machine (PVM) is a layer of software interleaved with the application and the host environment; it executes the application. The application binary is either transformed (obfuscated) to a secret instruction-set architecture, or encrypted. The general class of threats comprises advanced reverse-engineering tools.

This paper describes lucidly and logically “a novel methodology that imparts tamper detection at run time to PVM-protected applications.” The mechanism entails the “run-time creation of a network of ... instruction sequence[s] that [compute] checksums [of] portions of the target code.” These sequences are called software knots, and the authors have implemented, and experimented with, a PVM system that automatically generates software knots. Their evaluation shows the knots’ integrity checks add less than 10 percent overhead to performance and memory. Figure 3 is a clear flowchart of the application with knots versus the original application.

The authors implement knot polymorphism, the choice of random instructions from a database, to thwart attacks by automatic scanners. The random-number generator (RNG) that they use is custom, so as to protect the executing system against attacks on the RNG itself. Predicated triggering of knots is an additional enhancement, which deals with fluctuating rates of knot execution.

This well-written (only two innocuous typographical errors) and thoroughly researched (51 references) paper is for experts. However, I gained very much from reading it, and recommend it to all who, in James D. Watson’s words [1], want to “read around their subject.”

Reviewer:  George Hacken Review #: CR142153 (1407-0556)
1) Watson, J. D. Avoid boring people. Alfred A. Knopf, New York, NY, 2007.
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Restructuring, Reverse Engineering, And Reengineering (D.2.7 ... )
 
 
Coding Tools and Techniques (D.2.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Restructuring, Reverse Engineering, And Reengineering": Date
Software evolution: the software maintenance challenge
Arthur L., Wiley-Interscience, New York, NY, 1988. Type: Book (9789780471628712)
Mar 1 1989
The year 2000 computing crisis
Murray J., Murray M., McGraw-Hill, Inc., New York, NY, 1996. Type: Book (9780079129451)
Oct 1 1996
Constraint-based design recovery for software reengineering
Woods S., Quilici A., Yang Q., Kluwer Academic Publishers, Norwell, MA, 1998. Type: Book (9780792380672)
Dec 1 1998
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy