Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

ANY programming language is fine but I prefer PYTHON. This is designed to introduce to you how malware can infect compiled programs, give you exposure

ANY programming language is fine but I prefer PYTHON.

This is designed to introduce to you how malware can infect compiled programs, give you exposure to using a hex editor to understand computer code at a machine level, and how security researchers inspect binary code to understand software at a low level. So, I need your help. I want to play one of the all time great CRPGs, Ultima V, but I have no time to go through the grind of leveling up and maxing out my stats.

image text in transcribed Figure 1: Start of Ultima V Running the Game. The game will probably not run directly on modern operating systems, but it will run just fine under DOSBox (a DOS environment designed to play older games). Grab DOSBox from here. DOSBox will require a bit of setup, but the game should run under DOSBox without any additional tweaking of the game itself. First, play the game enough to establish a character and get a feel for how the game is played. If you have experience playing CRPGs, then this game will be at least somewhat familiar to you. Then, you will save the game by pressing Q and then alter the games files to give your character maximum stats and gold. You can check the characters stats by pressing Z and then selecting the highlighted character on the right. It will be up to you to locate which file(s) are necessary to modify and what values to place into those file(s) at specific locations. Completing this assignment will require you to use a binary hex editor. I have listed a few here if you do not have one, but feel free to use whatever editor you choose: OS Program Windows Frhed vim MacOS Hex Fiend Linux hexedit Bless vim The final stats on your main character (the one with your name) should look something like this: Attribute Value Str 99 Int 99 Dex 99 HP 999 Max HP 999 Exp 9999 Gold 9999 Assignment. Probably the most difficult part of this assignment is locating where in the game to make the modifications. I recommend spending a good amount of time figuring out how the internal structure of the game (in binary, of course) is organized. If you can discern a pattern from the binary placement, then this assignment will become much easier. First, when you discover where something is located (the offset, in binary terms) write it down. You will need to turn in the offsets of each location and the file in which they were contained in to complete this assignment. Next, once youve understood the structure of the program and how it is laid out, write a short program (in whatever language you like) which modifies the original games binary files to replace the values above in the appropriate location. It should not be necessary to decompile the original code (and it would break the game anyways), but it will be necessary to do a little reading on how to edit a binary file inside of code (hint: read it in like a regular file and save it in its original form back to the file itself). big-endian and little-endian encoding might be important to know for this lab... Additional Requirements. Im requiring some additional things to be added to your final program. If youve understood the first part, these should not be all that difficult to include:

image text in transcribed Figure 2: See? It can be done. An interactive program which allows the user to change the values to whatever they want (not just a pre-set value structure). Include the following values in your alterations/offset listing/source code program: All of the above stats on every companion character (not just the main PC). There should be sixteen total characters. 100 keys 100 skull keys 100 gems 1 black badge 2 magic carpets 10 magic axes (the best weapon in the game!) And the ability to change all of these inside of your interactive program Finally, give me a writeup on your experience doing this assignment, the offsets and file(s) for all of the attributes that you changed, and some screenshots of your p@wn3d game (bragging rights allowed). All of the offsets should be listed in hex format (ie. 0xDEADBEEF).

Prof A Shamino Iolo 60G 5G 90G F: 63 GE 1510 4-5-139 >Hest Hinds Prof A Shamino Iolo 3900G 5G 90G F: 63 G: 150 4-5-139 >Hest Hinds Prof A Shamino Iolo 60G 5G 90G F: 63 GE 1510 4-5-139 >Hest Hinds Prof A Shamino Iolo 3900G 5G 90G F: 63 G: 150 4-5-139 >Hest Hinds

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Semantics In Databases Second International Workshop Dagstuhl Castle Germany January 2001 Revised Papers Lncs 2582

Authors: Leopoldo Bertossi ,Gyula O.H. Katona ,Klaus-Dieter Schewe ,Bernhard Thalheim

2003rd Edition

3540009574, 978-3540009573

More Books

Students also viewed these Databases questions