Type of assignment: This is an individual assignment. You are welcome to discuss the assignment with others and consult others but your should solve the problems in this assignment yourself. You are also welcome to use any
other tools (not IDA Pro) for reverse engineering. You are the attacker in
this assignment!
Note: The assignment submission should clearly student name, and student number on the first page.
Points: The maximum number of points for this assignment is
30, which will be prorated accordingly after all submitted assignments are
graded. Weight of each problem is in parenthesis.
Format:
- Assignment submissions are accepted in the following formats only: PDF (.pdf). Assignments submitted in any other format will be discarded. All text in the assignment submissions must be typed and figures plotted to be easy to read and understood. Spelling, grammar, and other language errors will result in fewer points credited to the corresponding problem solutions.
Problems
Reverse engineer programs 1 and 2.
Program 1. (15 points): Reverse Engineering Program 1 in this file. (Individual program
file name will start with your student Id)
Alice wrote a wonderful application and wants only Bob to access it. Bob and Alice met in person
a couple of days ago, and Alice gave him a password, that would allow
Bob to use the application. Later, she sends this application in the
attachment via email . Trudy (this is you) intercepts this email and obtains the application.
Unfortunately, Alice never took EECE 412 at UBC and wrote an insecure application, which is easy to reverse engineer. Trudy successfully reverse engineered the application and recovered the password. Furthermore, she also modified
this application in a such way that she application accepts any
password.
In this problem your goals are:
- (5) Find the password in your individual application.
- (2) Explain how such attack can be avoided.
- (5) Provide a patch for the application so that after applying such a patch application will accept any password.
Program 2. (15 points): Reverse Engineering Program 2 in this file. (Individual program
file name will start with your student Id)
As we previously mentioned, Alice did not take EECE 412. One day she decided to develop her own messenger and wanted
to encrypt all messages.
After reading about AES. she found it a bit complicated and, thus, decided to develop her own “Super encryptiOn Standard” (or S.O.S.). She thinks that, because nobody knows how the S.O.S. works it is super-secure. For that reason she develops two applications, one that allows to encrypt
a message and another one that allows to
decrypt it. She releases the first application (that encrypts messages) and
keep the second for herself. Trudy got the
encryption application and by reverse engineering wrote his decryptor, thus,
was able to eavesdrop on all messages from Bob to Alice.
In this problem your goals
are:
- (8) Explain how encryption algorithm works and write a corresponding decryption function in C/C++/Java/C# or in pseudo-code
(no need to be compilable, minor formatting source code issues are OK).
- (7) Provide a patch for the application which if applied disables the encryption in the application, i.e., all messages will be sent in clear.
NOTES:
- Patch format - Dif format (in IDA its in File/Produce File/Create Diff File...)
- For reverse engineering I would highly recommend to use IDA Pro Demo version (it is free and it supports 32 bit Windows apps, which we will use). IDA Pro Demo is available here IDA Pro Website
|