💾 Archived View for tilde.club › ~anthonyg › gemlog › 2021-10-19.gmi captured on 2024-08-25 at 00:19:51. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-07-16)
-=-=-=-=-=-=-
I've been punching hard at my job recently, but it isn't all bad. This semester, I'm teaching an elective course in Cybersecurity. Many of my students in that class are graduating seniors and I can have a little bit of fun with them. Here is a lab assignment that I recently created:
---
We're in the section of the class where we discuss malware, and what better way to practice all of the same skill-set of skills than to do some ROM hacking!
Games are fun, and in tribute to one of the great game franchises with a new release this last month, let's have some fun with the original *Metroid*. Here is your mission: **Samus needs your help!** She hasn't updated her Power Suit since 1986 and it needs to have the latest tech installed. Turns out, her new Power Suit looks exactly like her old one...but it's *purple*.
So here is where you come in. Change Samus's power suit color from yellow to purple to put her in the new suit and send her off to kick some metroid butt! Samus told me that it was okay to credit yourself as her new "tailor", so give yourself credit during the opening title screen within the game.
You will have to grab an emulator for old NES-roms. Check the following webpage for emulators on your operating system:
You will also need a hex editor / debugger for this assignment. There are some romhacking tools specialized for this purpose (which you are free to use), but I suggest using Ghidra and giving the NSA's program a spin. That's how I did it. :-)
I got a lot of my info from (really, virtually everything for doing this assignment) from ROMhacking.net. I recommend you look at that site too, particularly the documents section.
Here are a few documents I found helpful:
NES Palette hacking: The Fast way
Plus, of course, a healthy dose of knowledge from our computer architecture class. You will also need to tinker with this assignment: get creative; try things; experiment; play around with this. Make an early copy of your ROM file and don't worry about messing it up. Many hackers learn more from *play* than work.
1. Don't apply any patches or third-party code to your ROM file other than the code *you* change. A simple run of a `diff` program will easily tell me which pieces have been changed and which haven't.
2. Do your own work. Cheating and plagiarism are at all time highs in our department and we are being extra watchful right now.
3. Come to me if you need help. Really. I'm surprised people don't do this *more*. There are some things that I won't be able tell you about, but quite a bit that I can.
4. Have fun with this assignment. It's *supposed* to be fun. Hard, yes. But the best puzzles are always the hardest ones ;-).
Here is what I will need from you:
1. Your modified, runnable (in working order) `metroid.nes` file which will include:
2. A screenshot of the game, with Samus's color change and a unique background image within the game. Something to show that you did this.
3. A write up with the following info: