Why am I writing this manual to cheating? I dont really know, I shouldn't but I was able to use certain exploits that made it totally open for breaking in. To be more specific I was able to change the standard textures in a way, that the game doesnt notice the change. I'll be looking at COD4 (COD WW automatically aswell) and COD2.
The main folder contains .iwd filed, that load in PARALLEL with the .ff files. The mostly contain images. In other words - textures that are used in the game. The main thing is that the textures load if the .ff file links to it. For example if you need to load mp_strike, iw_01.iwd, iw_03.iwd, iw_04.iwd would be loaded, but iw_02.iwd wouldn't be used, as there are no textures for that map in that file. This is common knowledge.
Now we go into deeper details:
1) The game reads .iwd files alphabetically from the main folder only. So it would begin with aa_blabla.iwd and finish with zz_blabla.iwd. This is still in place in COD2. When the game reads those files, it loads also alot of trash. When there is alot of trash you get the iwd sum/name mismatch error.
2) COD4 and CODWW read only 2 types of .iwd files, those that begin with iw_ and localized_. The first have priority over the second not only because "i" is in front of "l" in the alphabet, but because its hard coded into the game that way. The iw_ files are common for each and every language version of the game and cannot be renamed or changed...in theory atleast..
In cod4 and cod:WaW only images, sounds and weapon files are stored in .iwd files. We are only interested in textures at the moment, so lets have a look at them :
1) Images are stored in iw_.iwd. The load in parallell with fast file files. Nothing interesting at the moment.
So lets look at localized_.iwd.
1) The most important aspect is that after localized_ the language of the game is stated. For example, if you have an english version of the game it will be localized_english.iwd. If its russian - localized_russian. German -localized_german. If you have an english version of the game (as by registry) and you try to load russian files, they will be ignored. But if you change the filename from russian to english - voila, it works!
2) You can have alimitless amoun of localized_ files and they can have different names. It's important that just the localized and language parts of the file filename are kept constant. You can choose something like localized_english_big_ass.iwd if you like. You only have to remember that because "b" is before "i", this file will load firstm since the alphabet principal still applies.
3) You can change absolutely everything in the localized_.iwd files.
4) Since the files can be whatever size you want, you can pack whatever you like in them. But you cant load something thats already loaded by the .ff file. For example the fonts are stored in the .ff and are loaded first. Because of this I cant take the folder fonts and pack it into the iwd. It simply wont be read. Same applies to sounds.
And now the main bit. In the begining I thought that the game in .ff files linked to specific .iwd files and read textures from there. But that's not the case. The game simply searches the main folder for the needed texture. This gave me an interesting idea.
The sky on mp_strike is named sp_marksman_ft.iwi. It's located in iw_03.iwd. Now this is what we do: We rename iw_03.iwd into something like localized_english_zzz_custom_images.iwd (make sure to back up the original iw_03.iwd though). We try to launch the game and it works. The game
load certain textures for menu art that were in iw_03.iwd but it found them else where. Now we try connecting to a server - and it works. If I were to change the iw_03.iwd files, the game would say the client isnt pure. But since the file is missing - there's no problem at all.
So the game launched. It read the needed files from localized_english_zzz_custom_images.iwd and succesfully let me on a pure server. I tested a server running the latest promod.
And since the files starts with localized the principles above apply to it. So now you can easily change all of the textures to whatever you like.

I wont say how to change .iwi into .dds, as its complicated. =)
The i tried to change the soldier uniform. This is what I got:


The game accepts these files and doent do anything against it. Now only your fantasy is the limits.
Punkbuster also doesnt notice anything wrong. But, of course, PB takes SS's. And such changes will be clearly visible on screenshots. So the only way to catch anyone is to have a patient admin that sifts through a ton of PB SS's. But I went the ugly way. One could simply lower the resolution, or change the shade of textures, and that would be much harder to spot. You can change each and every texture.
In conclusion:
1) For public games this is unstopable. No one will notice you cheating as you don't have a real WH. (but remember about PB screenshots)
2) For ClanBase games - i wouldnt risk it. But you can lower res on some textures to get an advantage. If cought, you just say you have crap
graphics.
I wont write the method on how to find the needed textures. That would be giving too much away =)
GL and HF with Infinity Ward's own texture hack.
The same applies to COD2 in every way. Somehow I found a german uniform in the localized files, so i just swapped it and voila.

Author of legal and registred by IW cheating method - Vsevolod "Gagarin" Vinogradov
Thanks to "2shellbonus" for nice english translation =)