Email or username:

Password:

Forgot your password?
Foone🏳️‍⚧️

I love finding a function in a game that is literally just
void func(const char*){
}

No body. But it's called from 440 different places in the exe.

you can just smell the #IFDEF DEBUGMODE in the binary

15 comments
Foone🏳️‍⚧️

found another one! this one is called 450 times in the codebase

but they didn't turn it off, they just let it output to the debugger. since most users aren't running a debugger, that goes nowhere

Foone🏳️‍⚧️

also found that a bunch of functions do this:
if (DAT_006b4af0!=0){
if(param1 == 0){
debug_log("%s Parameter %i is NULL", "PRCreateCubeMapTexture", 1);
}
}

Foone🏳️‍⚧️

so, there's a global boolean that says "log all invalid function arguments"

and most importantly for me, the error messages it throws up when it's turned on? they leak the function names.

Foone🏳️‍⚧️

it also means I can quickly look up all 420 (blaze it) places that DAT_006b4af0 is referenced, and then name those functions

Foone🏳️‍⚧️

hey look this function (PR_InitBumpMapDot3 aka PR_InitBump) calls itself by two different names

someone made a copy paste error, 19 years ago

Foone🏳️‍⚧️

C:\\Engines\\New Engine\\Ring0\\Win32\\PRSDK\\src\\Core\\Surfaces\\PR_D3DTexture.c

come on guys. "New Engine"?

THINK OF A NAME

Foone🏳️‍⚧️

BTW, because it's always fun to mention this fact, it turns out this game (Barbie Fashion Show from 2004), embeds a python interpreter! python 2.2!

Foone🏳️‍⚧️

"%s is an abstract class and cannot be explicitly instanciated"

NINETEEN YEAR OLD TYPO SPOTTED

it's "instantiated"

Foone🏳️‍⚧️

wow, this engine doesn't believe in alignment AT ALL.
the structure for different archive files is 29 bytes in stride

Foone🏳️‍⚧️

I have one copy of the SDK which might help me hack this, but it's a shareware SDK and it has a trojan

this is the sort of thing that happens to me all the time

Foone🏳️‍⚧️ replied to Foone🏳️‍⚧️

ahh. they stuck it in a self extractor, and that got infected. the installer inside is fine.

Foone🏳️‍⚧️ replied to Foone🏳️‍⚧️

R0GrSystemInitialzieDevice

SPELLING IS HARD

Foone🏳️‍⚧️ replied to Foone🏳️‍⚧️

okay this is really weird. The game stores user-created fashion designs as highly compressed jpeg.

Kinda. See, it actually stores them TWICE. And it defaults to the jpeg version, but as soon as you modify the texture again, it regenerates them.

Foone🏳️‍⚧️ replied to Foone🏳️‍⚧️

See, I overwrote Outfit1B.jpg with a cat. Now I have a Cat Skirt.

Go Up