maybe I'd be better at getting back into my reverse engineering projects if getting back into them didn't involve first figuring out which of the 13 Ghidra versions I have installed is for that project
-
the worst thing about this particular scripting language is that it's compiled to bytecode, but they also have a debug file that includes all the information removed by byte-compiling. So I have variable names and comments and such, right?
but it's in a separate binary format that I can't load. So it's tempting but also useless
-
ROTOPE~1 :yell:replied to Alexander The 1st last edited by
-
Alexander The 1streplied to ROTOPE~1 :yell: last edited by
@rotopenguin @foone Plot twist: the dial is just the "Spin the Wheel" wheel from The Price is Right.
-
Foone🏳️⚧️replied to Alexander The 1st last edited by
@AT1ST @rotopenguin the funny thing is that you're not that far off.
I'm hacking a video game based on a game show, but it's Wheel of Fortune, not Price is Right.
-
WFCommonJunction::getProfileGender
MY GENDER IS BETWEEN ME AND GOD, YOU CANNOT KNOW IT, GAME FOR THE NINTENDO WII
-
this game has been out for 14 years and no one has figured out the cheat codes for it.
but I am dangerously close.
-
@foone The relation between gender and a floppy disk is between gender and that floppy disk.
-
@clayote and I keep my gender on a floppy disk!
wait. shit. oh no... this explains a lot.
-
Dave Murphy (he/him)replied to Foone🏳️⚧️ last edited by
@foone why are all these ghidra versions not interchangeable?
-
Alexander The 1streplied to Foone🏳️⚧️ last edited by
@foone @rotopenguin Is this the one with that one anime avatar image in the bundle? Or a different Wheel of Fortune game?
-
Dave Murphy (he/him)replied to Dave Murphy (he/him) last edited by
@foone lol nvm. I finally read to the relevant parts of the thread. https://digipres.club/@foone/113059464273865702
Begs the question why newer versions of ghidra can't load extensions for old versions. Is there some kind of ABI breakage going on? An issue with java?
-
Foone🏳️⚧️replied to Dave Murphy (he/him) last edited by
@davejmurphy Ghidra just refuses to load incorrect-version extensions, even if they would work. So you'd have to set up the java environment to compile your own, which I've not bothered with
-
Foone🏳️⚧️replied to Alexander The 1st last edited by
@AT1ST @rotopenguin different one! no incest anime here.
-
I think I officially did too much Rust programming. I'm back on my home turf of python(2), and I'm missing the match expression
-
@foone Just switch to Python 3.10 or later? Which has a match expression? https://peps.python.org/pep-0635/
-
@clayote probably should do that yeah.
-
okay it kind of does relocation backwards.
my understanding is that the way this is done on sensible platforms is that there's an executable that's like "hey, when you load me, shove the pointer to GetWindowTextA at offset 0x234805 in my code" -
this instead steps through the entire code looking for specific bytecode opcodes that it knows need relocation.
so when it sees a pvm_Jump opcode, it knows that although that opcode takes an absolute address, it interprets the current "absolute address" as an index into a jump table, which it then overwrites the current value with.
-
I'd love to do more logging on what the game is actually doing at runtime, but it turns out this interpreter is multithreaded. It's running tons of scripts at the same time, and it's really a pain to track which execution is for which script
-
plus the debug logging capabilities of the emulator are abysmal