C01 C++

Homework #4 : Modding
Programs running on a user-controlled computer are amenable to “modding” . If a piece of information, such as  an integer representing health or lives, exists in RAM, one may find and edit it to their liking. Taken to the extreme,
entirely new pieces of content may be added by users regardless of the author’s original intent (left : popular  childrens’ character Thomas the Tank Engine has become the unofficial mascot of this flavor of hacking ). Some
game studios, such as the team behind Binding of Isaac , choose to add official support for modding via an exposed Lua interface (right), making this activity much easier. The more “moddable” a game becomes, the more it begins to resemble a fully-expressive, turing-complete game engine.
Pitch
Homework #4 : Modding introduces students to the basics of customizable ( “moddable” ) software. Students will explore how software, such as games, expose their data and logic for the pleasure and productivity of their users. When software refuses to be customizable, students will employ RAM-searching tools to hack changes into existing programs, discovering the surprising agency they have over the software they run.
Purpose
On the path from finalized, unchangeable games to expressive, flexible game engines lies an interesting middle point– the topic of “ moddable ” games, or games that may be heavily customized by the users themselves. The
original Skyrim was well-received when it released in November 2011, but users wanted more. They wanted
Thomas . Skyrim ’s flexibility and customizability is why many are still playing it today– the community kept it alive through new content. As a game becomes more flexible and user-configurable, it begins to take on the qualities
of a bonafide game engine– capable of expressing the creativity of the user, whatever that may be.
This assignment will--
Introduce tools for modding any software, such as the CrySearch Memory Scanner , and the principles required for modding / hacking in the hardest case (no developer support).
Familiarize students with typical patterns in software customizability (modding) and data externalization in anticipation of making our own text adventure games “moddable”.
Upgrade our text adventure codebases into a significantly more expressive “Text Adventure Engine”.
Tasks
Modding Without Developer Support (windows required - or use CAEN labs)
Investigate a Game
1. Download this game ( warning : consider turning sound down in public).
2. Familiarize yourself with the game’s mechanics and content. No need to play more than a few minutes.
Mod Your Experience
3. Try looking for human-readable, externalized asset files near the executable (but don’t look too long).
a. Your objective is to alter your in-game ring count.
4. Unable to easily locate any human-readable asset files, we’ll assert our agency over the game’s working memory to make our changes.
a. Run the game.
b. Run CrySearch Memory Scanner (also available on CAEN windows machines).
c. Attach to the target process.
d. Begin a new scan by attempting to guess the value of your “ring counter” variable.
e. Play the game and do something you think will make the variable change its value. Then, continue the scan by filtering for that specific kind of change (increased value, decreased, etc).
f. When only a small number of possible addresses / locations remain for the variable, save them by double-clicking and then change the value . If the UI changes in the game, congratulations! You have identified where the ring counter variable lies in memory. If not, start over with a new scan.
5. While playing the game, mod it such that you have at least 494 rings– a feat long thought impossible.

你可能感兴趣的:(学习方法,c++)