Question
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.
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:
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 HindsStep by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started