COMP 272 - Software Reverse Engineering - Spring 2022
|Office||Anderson Hall 227|
|jshafer at pacific dot edu|
|Zoom for Class Sessions||See link on Canvas site (calendar or front page)|
Use class comp272 channel for all questions that would be helpful to your classmates. DM instructor otherwise.
|Office Hours||In-person: Tuesday/Thursday 10am-noon, Tuesday 3-5pm (1st/3rd week of month),
Zoom meeting: Mon/Wed/Fri 12-5pm by appointment
Schedule a 1:1 Zoom appointment at https://calendly.com/jeff-shafer
|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|
Late submission policy:
- Assignments submitted less than 24 hours late will be accepted without penalty.
- Assignments submitted from 1 to less than 7 days late will be accepted at a 10% penalty.
- Assignments submitted 7 days late, or beyond, will not be accepted.
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 https://www.pacific.edu/student-life/safety-wellness/student-conduct/tiger-lore-student-code-of-conduct-/honor-code
Accommodations for Students with Disabilities
If you are a student with a disability who requires accommodations, please visit https://www.pacific.edu/disabilities to contact the Office of Services for Students with Disabilities (SSD) for information on how to request accommodations while at Pacific.
- Students who have not previously registered for accommodations can request services by visiting https://www.pacific.edu/disabilities and selecting New Students Apply Here. Once registered, students will be asked to provide documentation of their disability, and meet with the accommodation specialists to determine reasonable accommodations.
- Students who have previously been approved for services with SSD can requests accommodation(s) letters each semester by selecting the Returning Students Login Here link located on https://www.pacific.edu/disabilities
The Office of Services for Students with Disabilities is located in the McCaffrey Center, Second Floor.
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.
This course is being offer in the midst of the COVID-19 pandemic. To keep us all healthy and safe, some additional rules are necessary.
- Masks are required for everyone when in the classroom.
- It is your responsibility to have a mask when you arrive for class.
- Eating and drinking are prohibited in the classroom.
- If you must have something to eat or drink during class, request permission to be excused and go outside to do it.
- Respect each other and respect personal space.
- Work together to ensure that this classroom is comfortable and safe.
- While there are no social distancing rules in effect, please allow distance when possible. Be aware of others’ needs for personal space and adjust appropriately.
- If you become ill or you are required to quarantine or isolate, stay home, and do not come to class.
- You should inform the Dean of Students of your status. Her office will inform your instructors that you will need to be away from class. Contact her office at firstname.lastname@example.org or 209.946.2365.
- Contact the instructor by email and we can determine how you can continue to participate in the course.
You are also responsible for conducting yourselves according to university rules and policies related to the pandemic. Here are some links for review:
- The university’s main page for COVID related information:
- Requirements for students before coming to campus, including vaccination requirements:
- Guidelines for determining if you need to isolate or quarantine:
If there are significant changes in pandemic conditions, it may be necessary to change some of the policies or structure of this course. If this becomes necessary, a revised syllabus will be distributed through the course Canvas site. Check the Canvas site regularly for announcements.
If you observe any behavior or conditions that violate pandemic protocols or seem unsafe with regards to the pandemic, please report it to the Associate Dean at email@example.com. The Dean’s office will take appropriate actions to correct the situation.