Team for Research in
Ubiquitous Secure Technology

An introduction to software reverse engineering
Mark Stamp, Teodoro Cipresso

Citation
Mark Stamp, Teodoro Cipresso. "An introduction to software reverse engineering". Peter Stavroulakis and Mark Stamp (eds.), 31, Springer, 2010.

Abstract
Software reverse engineering (SRE) is the practice of analyzing a software system, either in whole or in part, to extract design and implementation information. A typical SRE scenario would involve a software module that has worked for years and carries several rules of a business in its lines of code; unfortunately the source code of the application has been lost – what remains is “native” or “binary” code. Reverse engineering skills are also used to detect and neutralize viruses and malware, and to protect intellectual property. Computer programmers proficient in SRE will be needed should software components like these need to be maintained, enhanced, or reused. It became frightfully apparent during the Y2K crisis that reverse engineering skills were not commonly held amongst programmers. Since that time, much research has been under way to formalize just what types of activities fall into the category of reverse engineering, so that these skills could be taught to computer programmers and testers. To help address the lack of SRE education, several peerreviewed articles on SRE, software re-engineering, software reuse, software maintenance, software evolution, and software security were gathered with the objective of developing relevant, practical exercises for instructional purposes. The research revealed that SRE is fairly well described and all related activities mostly fall into one of two categories: software development- related and software-security-related. Hands-on reversing exercises were developed in the spirit of these two categories with the goal of providing a baseline education in reversing both Wintel machine code and Java bytecode.

Electronic downloads


(No downloads are available for this publication.)
Citation formats  
  • HTML
    Mark Stamp, Teodoro Cipresso. <a
    href="http://www.truststc.org/pubs/700.html"
    ><i>An introduction to software reverse
    engineering</i></a>, Peter Stavroulakis and Mark
    Stamp (eds.), 31, Springer, 2010.
  • Plain text
    Mark Stamp, Teodoro Cipresso. "An introduction to
    software reverse engineering". Peter Stavroulakis and
    Mark Stamp (eds.), 31, Springer, 2010.
  • BibTeX
    @inbook{StampCipresso10_IntroductionToSoftwareReverseEngineering,
        author = {Mark Stamp and Teodoro Cipresso},
        editor = {Peter Stavroulakis and Mark Stamp},
        title = {An introduction to software reverse engineering},
        chapter = {31},
        publisher = {Springer},
        year = {2010},
        abstract = {Software reverse engineering (SRE) is the practice
                  of analyzing a software system, either in whole or
                  in part, to extract design and implementation
                  information. A typical SRE scenario would involve
                  a software module that has worked for years and
                  carries several rules of a business in its lines
                  of code; unfortunately the source code of the
                  application has been lost â what remains is
                  ânativeâ or âbinaryâ code. Reverse
                  engineering skills are also used to detect and
                  neutralize viruses and malware, and to protect
                  intellectual property. Computer programmers
                  proficient in SRE will be needed should software
                  components like these need to be maintained,
                  enhanced, or reused. It became frightfully
                  apparent during the Y2K crisis that reverse
                  engineering skills were not commonly held amongst
                  programmers. Since that time, much research has
                  been under way to formalize just what types of
                  activities fall into the category of reverse
                  engineering, so that these skills could be taught
                  to computer programmers and testers. To help
                  address the lack of SRE education, several
                  peerreviewed articles on SRE, software
                  re-engineering, software reuse, software
                  maintenance, software evolution, and software
                  security were gathered with the objective of
                  developing relevant, practical exercises for
                  instructional purposes. The research revealed that
                  SRE is fairly well described and all related
                  activities mostly fall into one of two categories:
                  software development- related and
                  software-security-related. Hands-on reversing
                  exercises were developed in the spirit of these
                  two categories with the goal of providing a
                  baseline education in reversing both Wintel
                  machine code and Java bytecode.},
        URL = {http://www.truststc.org/pubs/700.html}
    }
    

Posted by Mark Stamp on 4 Apr 2010.
For additional information, see the Publications FAQ or contact webmaster at www truststc org.

Notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright.