COMP 293A - Software Reverse Engineering - Spring 2020
|Office||Anderson Hall 205|
|jshafer at pacific dot edu|
|Office Hours||Varying for Spring 2020 semester. See schedule on office door for the current week or email to arrange an alternate time.|
|Class Hours||Tuesday, Thursday, 1:00-2:20pm in CTC 214|
|Prerequisites||ECPE 170 with a ‘C’ or better|
|Textbook||No textbook is required for this course.
Optional reference books may be suggested throughout the semester, and I welcome feedback on any online/print references you find useful!
The objective of this course is to familiarize students with the practice of reverse engineering programs where the source code is unavailable. By this process, students can discover the specification for a given software program, thereby understanding its operation as well as any data it uses or communication protocols it employs. This knowledge is valuable for identifying and neutralizing malware on a system or discovering software vulnerabilities and patching them during the course of a security audit.
Course Learning Objectives
Upon completion of the course, students will be able to:
- Understand best practices of reverse engineering software using static or dynamic techniques
- Use and understand tools and techniques for reverse engineering
- Become proficient at debugging programs, identifying misbehaving code, and understanding ways vulnerabilities can be exploited.
- Analyze binary data and identify key characteristics and patterns of the data
- Reverse engineer programs with the specific objective of: software specification recovery, malware analysis, or communications protocol discovery
The topics covered in this course include:
- Basics of reverse engineering and its applications
- Analyzing compiled code
- Sandboxing executables and runtime analysis
- Compression and obfuscation techniques
- Using disassemblers and debuggers to aid reverse engineering
- Dynamic analysis tools and techniques for reverse engineering
- Malware analysis
- Communications protocol analysis
Assignments and Examinations
This course will be composed of the following elements:
- Laboratory Assignments (in-class and take-home) (50% of course grade)
- Lab Practical Exams (25% of course grade)
- Projects (25% of course grade)
Regular class attendance is strongly encouraged. Students who miss class meetings are responsible for keeping up with the class. The course Canvas site will be used to assist in instruction. You are responsible for keeping up with projects, labs, lecture notes, announcements, and other materials that may be posted there.
Grades for the course are assigned on the scale below:
|Points||> 93||93-90||< 90-87||< 87-83||< 83-80||< 80-77||< 77-73||< 73-70||< 70-67||< 67-60||60|
Please note that copies of student work may be retained by the instructor to assess how the learning objectives of the course are met. Further, the MOSS (Measure of Software Similarity) system may be used to compare student submissions in an automated fashion.
The Honor Code at the University of the Pacific calls upon each student to exhibit a high degree of maturity, responsibility, and personal integrity. Students are expected to:
- Act honestly in all matters
- Actively encourage academic integrity
- Discourage any form of cheating or dishonesty by others
- Inform the instructor and appropriate university administrator if she or he has a reasonable and good faith belief and substantial evidence that a violation of the Academic Honesty Policy has occurred.
Violations will be referred to and investigated by the Office of Student Conduct and Community Standards. If a student is found responsible, it will be documented as part of her or his permanent academic record. A student may receive a range of penalties, including failure of an assignment, failure of the course, suspension, or dismissal from the University. The Academic Honesty Policy is located in Tiger Lore and online at http://www.pacific.edu/Campus-Life/Safety-and-Conduct/Student-Conduct/Tiger-Lore-Student-Handbook-.html
Accommodations for Students with Disabilities
If you are a student with a disability who requires accommodations, please contact the Director of the Office of Services for Students with Disabilities (SSD) for information on how to obtain an Accommodations Request Letter.
3-Step Accommodation Process:
- Student meets with the SSD Director and provides documentation and completes registration forms.
- Student requests accommodation(s) each semester by completing the Request for Accommodations Form.
- Student arranges to meet with his/her professors to discuss the accommodation(s) and to sign the Accommodation Request Letter
To ensure timeliness of services, it is preferable that you obtain the accommodation letter(s) from the Office of SSD during the first week of class. After the instructor receives the accommodation letter, please schedule a meeting with the instructor during office hours or some other mutually convenient time to arrange the accommodation(s).
The Office of Services for Students with Disabilities is located in the McCaffrey Center, Rm. 137. Phone: 209-946-3221 Email: firstname.lastname@example.org Online: http://www.pacific.edu/disabilities
The University of the Pacific does not discriminate in the administration of any of its educational programs, admissions, scholarships, loans, athletics, or other University activities or programs on the basis of race, color, national and ethnic origin, handicap, sexual orientation or preference, sex or age.