FIRST AND SECOND POSTS MERGED SO CURRENT PROCESS CAN REMAIN IN FIRST POST WHEN VIEWING THREAD. HOPEFULLY THIS WILL MAKE IT EASIER TO UNDERSTAND.
----------------------------------------------------------------------------------------------------------------------------
Here's my take on this new "copy protection". I've been examining these "cracked" default.xbe files and comparing them to the originals, and the only difference seems to be one byte (aside from Riot arbitrarily placing the string "FUCK" in the file), which doesn't seem like much as far as copy-protection circumvention goes. However, I'm now starting to think that developers have moved the media flag.
Every XBE has a media flag, which determines which media on which it can be run. The following is taken from the XDK:
XBEIMAGE_MEDIA_TYPE_HARD_DISK 0x00000001
XBEIMAGE_MEDIA_TYPE_DVD_X2 0x00000002
XBEIMAGE_MEDIA_TYPE_DVD_CD 0x00000004
XBEIMAGE_MEDIA_TYPE_CD 0x00000008
XBEIMAGE_MEDIA_TYPE_DVD_5_RO 0x00000010
XBEIMAGE_MEDIA_TYPE_DVD_9_RO 0x00000020
XBEIMAGE_MEDIA_TYPE_DVD_5_RW 0x00000040
XBEIMAGE_MEDIA_TYPE_DVD_9_RW 0x00000080
Note that Xbox game discs are a different type of media and have a different flag. At retail, MS signs all Xbox games to run from Xbox game disc only. Not only does the mod chip allow the Xbox to run unsigned code, but it also circumvents this media flag - but only because it knows where the media flag is. I'm theorizing that after moving the media flag, the mod doesn't know how to circumvent it.
I think these "cracks" are a simple hexedit that any one of us could do manually. I'm guessing the hexedit is even simpler from the old 02 00 00 -> FF FF FF job to make the game run on Enigmah Betas - instead of changing 3 bytes we're changing 1. I'm guessing that the media flag will be in the same location in all the new XBEs, so it should be easy to make a universal patcher if that's the case. I'll post more on the topic.
-------------------------------------------------------------------------------------------------------------------
I think I found the catch here. The media flags definitely appear to have moved. I examined both High Heat Baseball 2004 and All-Star Baseball 2004 and there is a clear consistency here. Though the byte offset is not always in the same location, it is easily identifiable. Both original XBE files contain the following hex string:
74 4B E8 CA FD FF FF 85 C0 7D 06 33 C0 50 50 EB 44 F6 05
In the modified XBE files, the same byte changed. The strings were changed to
74 4B E8 CA FD FF FF 85 C0 EB 06 33 C0 50 50 EB 44 F6 05
As a funny sidenote, Riot's FUCK string replaced bytes 214-217, which WAM had changed to FF FF FF FF. This, of course, was the location of the old media flag.
I'm quite certain this will work on all newer games. Anyone good at programming feel like making an XBE patcher for newer games? LepPpeR?? Any other takers?
This post has been edited by Xeero on Apr 16 2003, 06:10 PM