View Single Post
FletchS
New Member
Join Date: Jun 2018
Old 06-24-2018 , 09:12   Re: [TF2] No Thriller Taunt
Reply With Quote #135

Just wanted to say thank you to @nosoop.
Just tested the gamedata you added and its still working as of today (26 July)


Quote:
Originally Posted by nosoop View Post
Decided to test my skill in disassembly. Have some updated gamedata.

For anyone that wants to follow along or update it for next time, assuming Valve didn't completely overhaul the halloween taunt logic since then:
  1. Load up the server binary in IDA.
  2. Open up the Strings subview and look up the IsHalloweenTaunt string.
  3. Find cross-references to the string, then head over to one of those subroutines. Switch to graph view so you have a sense of what you're looking at.
  4. In the Linux binary, since you have signatures, you'll be in CTFPlayer::ModifyOrAppendCriteria(). There's a call to rand right before to decide if the Halloween taunt is applied. I ended up patching the near JA instruction with a near JO (from 0F 87 to 0F 80). Add one to the instruction offset and set the payload in the gamedata file to 128 (0x80). Use the symbol for the signature.
  5. Same thing in the Windows binary, except no symbols. Structure is about the same, though; find those floating point operations right before. I patched the short JBE with a short JNO. Grab the offset. Use makesig for the signature.

Here's an image for reference. The forum image proxy doesn't seem too fond of it, so it's linked.

There's probably a more resilient signature that doesn't involve offsets deep into the function (since this will absolutely break if ModifyOrAppendCriteria changes), but that's an exercise for the next person.
FletchS is offline