! 

Assignment #6(Bonus)

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:

  1. 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
 

Copyright © 2003-2012 Konstantin Beznosov