Forum > Resources and Tools

[Project] Removing the Failsafe in 3.3.5

<< < (2/3) > >>

stoneharry:
You will need to find the relevant functions in the binary by reverse engineering it.

Noteworthy:

--- Code: --- CharacterCreate_UpdateFacialHairCustomization();
CharacterCreate_UpdateHairCustomization();
CharacterChangeFixup();

--- End code ---
And:

--- Code: ---function CharacterCustomization_Left(id)
PlaySound("gsCharacterCreationLook");
CycleCharCustomization(id, -1);
end

function CharacterCustomization_Right(id)
PlaySound("gsCharacterCreationLook");
CycleCharCustomization(id, 1);
end

function CharacterCreate_Randomize()
PlaySound("gsCharacterCreationLook");
RandomizeCharCustomization();
end

--- End code ---

I looked at the GueXML inside patch-enGB.mpq (build ~8000) and these functions are identical, so I do not know how you could, or if you could, even allow these skins etc to be used in the char creation menu.

Gurluas:

--- Quote from: "stoneharry" ---You will need to find the relevant functions in the binary by reverse engineering it.

Noteworthy:

--- Code: --- CharacterCreate_UpdateFacialHairCustomization();
CharacterCreate_UpdateHairCustomization();
CharacterChangeFixup();

--- End code ---
And:

--- Code: ---function CharacterCustomization_Left(id)
PlaySound("gsCharacterCreationLook");
CycleCharCustomization(id, -1);
end

function CharacterCustomization_Right(id)
PlaySound("gsCharacterCreationLook");
CycleCharCustomization(id, 1);
end

function CharacterCreate_Randomize()
PlaySound("gsCharacterCreationLook");
RandomizeCharCustomization();
end

--- End code ---

I looked at the GueXML inside patch-enGB.mpq (build ~8000) and these functions are identical, so I do not know how you could, or if you could, even allow these skins etc to be used in the char creation menu.
--- End quote ---

You can't, you use WPE Pro to hack the packet. Say if you have a character with a four-letter name you force it to send 0A instead of 00 (Obviously you select skin 00 in the character creation) in slot 15, then you have a character with skin 10, which is typically an npc skin. (High elf in the case of Blood elves to make a point)

The problem is...The filtering makes everyone else see a different skin, I.E skin 00.
So say...As a Human Female, no matter what special skin you pick, Deathknight, Cultist, Whitemane etc.
Any other player will see you as a normal human with the palest skin, namely, skin 00.

This was not the case with the Burning Crusade or with Vanilla.

stoneharry:

--- Quote from: "Gurluas" ---
--- Quote from: "stoneharry" ---You will need to find the relevant functions in the binary by reverse engineering it.

Noteworthy:

--- Code: --- CharacterCreate_UpdateFacialHairCustomization();
CharacterCreate_UpdateHairCustomization();
CharacterChangeFixup();

--- End code ---
And:

--- Code: ---function CharacterCustomization_Left(id)
PlaySound("gsCharacterCreationLook");
CycleCharCustomization(id, -1);
end

function CharacterCustomization_Right(id)
PlaySound("gsCharacterCreationLook");
CycleCharCustomization(id, 1);
end

function CharacterCreate_Randomize()
PlaySound("gsCharacterCreationLook");
RandomizeCharCustomization();
end

--- End code ---

I looked at the GueXML inside patch-enGB.mpq (build ~8000) and these functions are identical, so I do not know how you could, or if you could, even allow these skins etc to be used in the char creation menu.
--- End quote ---

You can't, you use WPE Pro to hack the packet.
The problem is...The filtering makes everyone else see a different skin, I.E skin 00.
So say...As a Human Female, no matter what special skin you pick, Deathknight, Cultist, Whitemane etc.
Any other player will see you as a normal human with the palest skin, namely, skin 00.

This was not the case with the Burning Crusade or with Vanilla.
--- End quote ---

Which packet are you manipulating in specific? As far as I am aware, the server loads your character information, then sends these byte values to you and any other players who need the data.

This means that if you are intercepting this packet and changing the byte values, of course it will be client side only.

But this also implies that you could simply just send the relevant skin index byte from the server rather than the one sent from the client when creating the char.

I am confused. :P

Gurluas:

--- Quote from: "stoneharry" ---
--- Quote from: "Gurluas" ---
--- Quote from: "stoneharry" ---You will need to find the relevant functions in the binary by reverse engineering it.

Noteworthy:

--- Code: --- CharacterCreate_UpdateFacialHairCustomization();
CharacterCreate_UpdateHairCustomization();
CharacterChangeFixup();

--- End code ---
And:

--- Code: ---function CharacterCustomization_Left(id)
PlaySound("gsCharacterCreationLook");
CycleCharCustomization(id, -1);
end

function CharacterCustomization_Right(id)
PlaySound("gsCharacterCreationLook");
CycleCharCustomization(id, 1);
end

function CharacterCreate_Randomize()
PlaySound("gsCharacterCreationLook");
RandomizeCharCustomization();
end

--- End code ---

I looked at the GueXML inside patch-enGB.mpq (build ~8000) and these functions are identical, so I do not know how you could, or if you could, even allow these skins etc to be used in the char creation menu.
--- End quote ---

You can't, you use WPE Pro to hack the packet.
The problem is...The filtering makes everyone else see a different skin, I.E skin 00.
So say...As a Human Female, no matter what special skin you pick, Deathknight, Cultist, Whitemane etc.
Any other player will see you as a normal human with the palest skin, namely, skin 00.

This was not the case with the Burning Crusade or with Vanilla.
--- End quote ---

Which packet are you manipulating in specific? As far as I am aware, the server loads your character information, then sends these byte values to you and any other players who need the data.

This means that if you are intercepting this packet and changing the byte values, of course it will be client side only.

But this also implies that you could simply just send the relevant skin index byte from the server rather than the one sent from the client when creating the char.

I am confused. :P
--- End quote ---


What I am doing, is interception the packet during character creation that tells the server what skin the character will have, and give it a value you cannot select ingame, such as 0A which is skin 10.
The result is that the character, serverside HAS skin 0A, and if your server has a model viewer plugin in the website showing your character you can see said skin there too.


The problem is, that the filtering I call the failsafe, filters that skin for anyone else who sees it to skin 00.
This is NOT the case with Vanilla or Burning Crusade. If I get the Earthen skin there, others can see it, this filter isn't there.

stoneharry:

--- Quote from: "Gurluas" ---
--- Quote from: "stoneharry" ---
--- Quote from: "Gurluas" ---
--- Quote from: "stoneharry" ---You will need to find the relevant functions in the binary by reverse engineering it.

Noteworthy:

--- Code: --- CharacterCreate_UpdateFacialHairCustomization();
CharacterCreate_UpdateHairCustomization();
CharacterChangeFixup();

--- End code ---
And:

--- Code: ---function CharacterCustomization_Left(id)
PlaySound("gsCharacterCreationLook");
CycleCharCustomization(id, -1);
end

function CharacterCustomization_Right(id)
PlaySound("gsCharacterCreationLook");
CycleCharCustomization(id, 1);
end

function CharacterCreate_Randomize()
PlaySound("gsCharacterCreationLook");
RandomizeCharCustomization();
end

--- End code ---

I looked at the GueXML inside patch-enGB.mpq (build ~8000) and these functions are identical, so I do not know how you could, or if you could, even allow these skins etc to be used in the char creation menu.
--- End quote ---

You can't, you use WPE Pro to hack the packet.
The problem is...The filtering makes everyone else see a different skin, I.E skin 00.
So say...As a Human Female, no matter what special skin you pick, Deathknight, Cultist, Whitemane etc.
Any other player will see you as a normal human with the palest skin, namely, skin 00.

This was not the case with the Burning Crusade or with Vanilla.
--- End quote ---

Which packet are you manipulating in specific? As far as I am aware, the server loads your character information, then sends these byte values to you and any other players who need the data.

This means that if you are intercepting this packet and changing the byte values, of course it will be client side only.

But this also implies that you could simply just send the relevant skin index byte from the server rather than the one sent from the client when creating the char.

I am confused. :P
--- End quote ---


What I am doing, is interception the packet during character creation that tells the server what skin the character will have, and give it a value you cannot select ingame, such as 0A which is skin 10.
The result is that the character, serverside HAS skin 0A, and if your server has a model viewer plugin in the website showing your character you can see said skin there too.


The problem is, that the filtering I call the failsafe, filters that skin for anyone else who sees it to skin 00.
This is NOT the case with Vanilla or Burning Crusade. If I get the Earthen skin there, others can see it, this filter isn't there.
--- End quote ---

That makes a lot more sense. In future, just edit the byte fields in the database rather than going to the hassle of having to manipulate the packets in real time. :P

Then I guess it is just a client side range check which defaults to 0 if that range is exceeded. Finding this in the assembly will not be trivial.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version