CS675 Software Reverse Engineering
CS675 Software Reverse Engineering
Course Trivia
- Instructor: Spiros Mancoridis, Professor
- WWW: http://www.cs.drexel.edu/~spiros
- Office: University Crossings 139
- E-mail: spiros AT drexel DOT edu
- Phone: (215) 895-6824
- Instructor Office Hours (University Crossings 139): M 4:00PM-6:00PM
- Classroom: University Crossings 149
- Reading: Lecture notes and research papers provided by the instructor.
- Teams:
- Team 1:
- Team 2:
- Team 3:
- Team 4:
Introduction
The objective of this course is to expose students to the challenges of
understanding and monitoring software systems. The approach is based on
hands-on lab-based practical experience, where teams of students work
on real software using state-of-the-art reverse engineering tools and
techniques.
This course is intended primarily for advanced graduate students with
considerable programming experience. Typically the students taking this
course major in Software Engineering and Computer Science. However,
graduate students in other programs may take this course with the
permission of the instructor.
Course Grading Scheme
- Each of the 8 labs is worth 10% of the final grade for a total of 80%.
- The final research paper is worth 20% of the final grade.
Every member of the team will receive the same grade. If a team is not
satisfied with the contributions of a team member, the entire team may
come to discuss the matter with the instructor during office hours. If
the instructor agrees with the complaints of a team toward its member,
that member will be given the opportunity to drop the course to avoid
receiving a poor grade.
Grading Rules
- All grades are final.
- There will be no extra credit work.
- No extensions will be given to the labs. Each team will be assigned
a grade by the instructor based on how much of the lab they have
accomplished.
- Since labs are team activities, every student of a team will receive
the same grade.
Course Schedule
- Week 1 (Jan. 4):
- Course overview
- Team formation
- Lab 1
- Week 2 (Jan. 11):
- Due: Lab 1 presentations and deliverables
- Lab 2
- Week 3 (Jan. 18): University Holiday No classes
- Week 4 (Jan. 25):
- Lab 2 presentations and deliverables
- Lab 3
- Week 5 (Feb. 1):
- Lab 3 presentations and deliverables
- Lab 4
- Week 6 (Feb. 8):
- Lab 4 presentations and deliverables
- Lab 5
- Week 7 (Feb. 15):
- Lab 5 presentations and deliverables
- Lab 6
- Week 8 (Feb. 22):
- Lab 6 presentations and deliverables
- Lab 7
- Week 9 (Mar. 1):
- Lab 7 presentations and deliverables
- Lab 8
- Week 10 (Mar. 8):
- Lab 8 presentations and deliverables
- Lab 9
- Week 11 (Mar. 15):
Due: Research Paper
Tools
Below are links to RE tools in case you want to install them and use them.
Presentations
Research Papers
-
Software Clustering using Bunch:
-
"Using Automatic Clustering to Produce High-Level System
Organizations of Source Code",
by S. Mancoridis, B.S.Mitchell, C.Rorres, Y.Chen,
E.R.Gansner.
In the IEEE Proceedings of the 1998 International Workshop
on Program Understanding (IWPC'98), Ischia, Italy, June,
1998. pp. 45-52.
-
"Bunch: A Clustering Tool for the Recovery and Maintenance of
Software System Structures",
by S. Mancoridis, B.S.Mitchell, Y.Chen, E.R.Gansner.
In the IEEE Proceedings of the 1999 International
Conference on Software Maintenance (ICSM'99), Oxford,
UK, August, 1999, pp 50-59.
-
"Automatic Clustering of Software Systems using a Genetic
Algorigthm",
by D. Doval, S. Mancoridis, B.S.Mitchell.
In the IEEE Proceedings of the 1999 International
Conference on Software Tools and Engineering Practice
(STEP'99), Pittsburgh, PA, August, 1999. pp. 73-81.
-
Software Intercommention Rules using ISF:
-
"ISF: A Visual Formalism for Specifying Interconnection
Styles for Software Design",
by S. Mancoridis.
In the International Journal of Software Engineering
and Knowledge Engineering, (IJSEKE), Vol. 8 No. 4,
1998, pp 517-540, World Scientific Publishing Company.
-
"On the Automatic Recovery of Style-Specific Structural
Dependencies in Software Systems",
by M. Traverso, S. Mancoridis.
In the Journal of Automated Software Engineering,
Kluwer Academic Publishers, Volume 9, Number 4, 2002.
pp. 331-360.
-
REportal Reverse Engineering Portal:
-
"A Reverse Engineering Portal" ,
by C. Liao, S. Mancoridis, W. Mongan
Drexel University Technical Report, 2003.
-
"REportal: A Web-based Portal Site for Reverse Engineering"
,
by S. Mancoridis, T. S. Souder, Y-F. Chen, E. R. Gansner,
J. L. Korn.
In the IEEE Proceedings of the 2001 Working
Conference in Reverse Engineering (WCRE'01),
Stuttgart, Germany, October, 2001, pp 221-230.
-
Software Security:
-
"Using Program Transformation to Secure Against Buffer
Overflows",
by C. Dahn, S. Mancoridis.
In the IEEE Proceedings of the 2003 Working Conference
in Reverse Engineering (WCRE'03),
Victoria, BC, Canada, 2003
-
"Characterizing the Security Vulnerability Likelihood of
Software Functions",
by D. DaCosta, C. Dahn, S. Mancoridis, V. Prevelakis.
In the IEEE Proceedings of the 2003 International
Conference on Software Maintenance (ICSM'03),
Amsterdam, The Netherlands, September, 2003.
-
"Code Based Software Security Assessments (CoBaSSA)",
edited by L. Moonen, S. Mancoridis.
In the Proceedings of the 1st International
Workshop on Code Based Software Security Assessments,
Pittsburgh, USA, November, 2005.,
-
Binary Reversing:
-
Source Code Analysis:
In addition to the extensive resources in the
Drexel University Library,
students are encouraged to use on line resources to help find research
papers For example:
Academic Honesty
The university's Academic Honesty policy is in effect for this course.
Please read the "Academic Honesty" section in Chapter 11 of the Drexel University
online student handbook.