Call of Duty: Modern Warfare 2 Debug Output

Some patches were created to have all of the debug output that gets suppressed in the retail versions of Call of Duty to get spit out over a custom console. This is just an output that was created. The patch is also included with the debug output. You will need xorloser’s xextool and TheFallen93’s xepatcher tools to compile this patch on to a clean xex. The patches were created by kiwidog (http://allenthinks.com)

Here is the patch.

# ============================================================================
#   Call of Duty Modern Warfare 2 Multiplayer Debug Output Patches by kiwidog
# ============================================================================
		.globl _start
_start:
		.set DisableChecks, 0x821AF044
		.set InstallHook,	0x8227EB58
		.set Hook,			0x820C8390
		.set DbgPrint,		0x8242CCA4
# ============================================================================
#	Hook
# ============================================================================
		.long Hook-0x8000
		.long (9f - 0f) / 4
0:
		mflr	%r23
		mr		%r3, %r4
		li		%r4, 0
8:		bl		DbgPrint-((8b-0b)+Hook)		
		mtlr	%r23
		blr
9:
# ============================================================================
#	Disable RSA/Sha256 Checks
# ============================================================================
		.long DisableChecks-0x8000
		.long (9f - 0f) / 4
0:
		li	%r3,	1
9:
# ============================================================================
#	Install Hook
# ============================================================================
		.long InstallHook-0x8000
		.long (9f - 0f) / 4
0:
		bl		Hook-InstallHook
9:
# ============================================================================
		.long 0xffffffff
		.end
# ============================================================================

Have fun and good luck 😉

Continue reading “Call of Duty: Modern Warfare 2 Debug Output”

A Ghetto C++ Patching Library

I noticed that when most people patch their modules that they have some issues, like they will have to precompile all of their works then copy memcpy the precompiled byte array over (with VirtualProtect and other goodies). I was wanting a method that would be a little bit more hackish but would make testing patches easier in the long run. I started messing around with __declspec( naked ) and this is what it got me.

__declspec( naked ) void mPatch()
{
// Insert Assmebly Code Below
__asm
{
// Add Assembly Here
nop;
}

// Do not erase, its for protection
__asm
{
INT 3;
INT 3;
INT 3;
INT 3;
}
}

DWORD calcPatchSize(void* funcBase, DWORD timeoutSize)
{
for (DWORD i = 0; i < timeoutSize; i+=4)
if (*(DWORD*)((DWORD)funcBase + i) == 0xCCCCCCCC)
return i;
return 0;
}

Continue reading “A Ghetto C++ Patching Library”

VeniceFX – Progress Update 2, 3 & 4

As many of you may have seen, I started working with DirectX 11 and Battlefield 3 to create some modified textures etc. Primarily for movie/machinima makers. The project has changed from TeamCanineConfig to venicefx for the updated framework and using quite a few engine features in Frostbite 2. Here are a few videos that show off the features so far.

EDIT: The newest video of VeniceFX is up, it will use everything through console commands. Thanks DICE for re-implementing that 😉


Continue reading “VeniceFX – Progress Update 2, 3 & 4”

Battlefield Bad Company (Frostbite Legacy) File Research

I will try to do my best to update this with most of my newest research as I continue on with the project. I plan on making beloved Mod Tools for Bad Company 2. So far we can remove the “safe play area” so you can go exploring outside of the map with no problems. I do think something similar will be done for Battlefield 3 (Frostbite 2 Engine) but you never know. So far from what I can tell most of the files are way different and look just like raw data at a glance. (I will post/talk about my Battlefield 3 Venice Mod Tools at a later date).

It seems like no body has really taken a crack at the game files. Or if they did, its incorrect except for 1 or 2 items, which won’t cut it at all. So far my current tool does not extract all the files that are found inside of the fbrb archive. It extracts the majority of them which is a hell lot more than what I can say for other bms scripts. (~39 Files :: ~10MB of data???? wtf, versus ~348 Files :: ~90MB of Data)

        struct fbrb_header
        {
            public char[] m_magic; // "FbRB"
            public int m_firstFileSize;
        }

        struct fbrb_containerHeader
        {
            public int m_version;
            public int m_fileNameTableSize;
            // String Data Here
            public int m_numFiles;
            // Not part of struct, adding for ease
            public List szItems;
        }

        struct containerHeader_Item
        {
            public int m_fileNameOffset;
            public int m_fileFlags;
            public int m_fileDataOffset; // Inside Data Container
            public int m_fileDataSize; // Inside Data Container
            public int m_fileDataSize_1; // Unknown
            public int m_fileTypeOffset; // Read As String to Figure out what kind
            // Not part of struct, adding for ease
            public string szFileType;
            public string szFileName;
        }

Thats all for now folks.

Breeze – Halo 2 Rank System Update 2, 3, & 4

Thanks to many people that have helped me out along the way with either the database work, online server work, and random bugs that occur in Halo 2 and C++ in general. I finally got a build of breeze working that will fetch the rank off of a server and continue to run. After a few bug fixes are implemented and some configurations can be made there will be a private release of Breeze to a select few server administrators. You as the client need to do nothing but join a Breeze Enabled server and just play normally. You will not need any modifications to your game in any way. There will be a few patches made available for the mainmenu to re-align the rank symbols and other various fixes, but as the video below shows it will run on a vanilla Halo 2 Vista.

Continue reading “Breeze – Halo 2 Rank System Update 2, 3, & 4”

TeamCanineConfig – Battlefield 3 Movie Config

So far, this is a work in progress. Thanks to fatboy88 from uc-forum for helping me along with the reversing even though I am currently reversing from a laptop that can barely run Battlefield 3. I want a beta of this to be available for the public when BattleRecorder drops for Batlefield 3. This will give you Wireframe mode, Anti-Aliasing tweaks and some of the color correction issues that you can do with the FXAA Injector. I will have more later, but for now here is some screenshots.

Continue reading “TeamCanineConfig – Battlefield 3 Movie Config”

Modern Warfare 3 [PC] – Alternative Console Released

Someone gifted me Modern Warfare 3 and wanted me to make some modifications to it. Primarily enabling the console which I wanted to do for previous Call of Duty games anyway. I always wanted to re-create the Call of Duty console using a few Direct X hooks and Keyboard hooks. Lets say I got a very rough beta done for Modern Warfare 3. It has quite a few bugs that need to be worked out but so far it works quite nicely. The few bugs that I have managed to see is…

  1. When the console is open, my hook does not disable input to the game itself.
  2. Quite a few VirtualKeys produce un-readable symbols inside of the console
  3. Up arrow does not cycle correctly through previous entries FIXED!

Here is a few videos for your enjoyment

Continue reading “Modern Warfare 3 [PC] – Alternative Console Released”

Breeze – Halo 2 Rank System

I saw that some people needed some help with a Halo 2 Ranking system, I messaged supersniper about it and he was happy to let me on board. I got a look at the source and it “worked” but it was the style of working that was myself years ago (Very sloppy and rigged code but it worked). I agreed to help them out and take everything through a complete overhaul. That is what I started to do, with no use of the previous source code that allowed me to build my own base and get everything working as smoothly as possible.

Soon this will be enabled throughout many Dedicated Servers everywhere (hopefully) People still have a interest in Halo 2 for PC, I happen to know a great deal about how the Server works after around ~12 hours of reversing. Here is a sneak peak of the upcoming system from server-sided.

h2server$
[Breeze] Breeze Init...
[Breeze] Searching for XLive Memory Checks...
[Breeze] XLive Memory Checks Patched!
[Breeze] Hooks Installed!
[Breeze] Breeze Enabled!
[Breeze] Player Quit! 0 3
[Breeze] Player Quit! 0 4
[Breeze] Player Quit! 0 5
[Breeze] Player Quit! 0 6
[Breeze] Player Quit! 0 7
[Breeze] Player Joined! 0, 21AFB2C
[Breeze] Player Quit! 0 2
[Breeze] Player Quit! 0 1
[Breeze] Player Quit! 0 3
[Breeze] Player Quit! 0 4
[Breeze] Player Quit! 0 5
[Breeze] Player Quit! 0 6
[Breeze] Player Quit! 0 7
[Breeze] Player Joined! 0, 21AFB2C
[Breeze] Player Quit! 0 9
[Breeze] Player Quit! 0 2
[Breeze] Player Quit! 0 1
[Breeze] Player Quit! 0 3
[Breeze] Player Quit! 0 4
[Breeze] Player Quit! 0 5
[Breeze] Player Quit! 0 6
[Breeze] Player Quit! 0 7
[Breeze] Player Joined! 0, 21AFB2C
[Breeze] Player Quit! 0 2
[Breeze] Player Quit! 0 1
[Breeze] Player Quit! 0 3
[Breeze] Player Quit! 0 4
[Breeze] Player Quit! 0 5
[Breeze] Player Quit! 0 6
[Breeze] Player Quit! 0 7
[Breeze] Player Joined! 0, 21AFB2C

I hope to get this project finished in time to show people a early Beta test within a week or so.
-Greetz, fatboy88, supersniper, shock120

Read More for some Reversing Information

Continue reading “Breeze – Halo 2 Rank System”

Site downtime

Well, we are on recovery mode. I got a nasty email from my hosting provider saying that they did not have basic DDoS protection, what hosting company in this day and age would not have stuff to protect against that. Who the heck knows why… Bluehost is a huge failure in all ways, shapes and forms. Instead of fixing their server situation they just disable the account and send a email (You have 15 Days to backup everything and get the hell out). This cost me a bunch of money moving providers and re-setting up everything but since I made regular backups I was able to get all of my stuff and fixed mostly everything.

 

I would say avoid bluehost at all costs. They had an older cpanel with not that many features, and basic features they would have disabled because of “security risks” instead of just updating the software. I had been with bluehost for many, many, years and have just been dealing with them because they were pretty cheap. But I rather pay a bit more and be able to be protected from the basic internet skiddies than have to spend a bunch of money for a new host/servers. They refunded me $11.00 which was less than what it costs per month but at this point I don’t care.

 

Will be posting some more research soon.

PSARC Extractor Tool Source Code

Hi, I just wanted to make a quick tool to extract PSARC files using mono on Ubuntu. This works on Windows aswell. Just compile it. Each filename in the manifest matches the files in the PSARC file. Then from there they are just zlib blocks. You can make an app to extract everything or just make a tool to select what file you want to extract. Just by reversing the way that you can read out you can create your own PSARC files also rebuild edited files.

Download PSARC Tool Source Code