Raised This Month: $12 Target: $400
 3% 

[L4D2] Air Ability Patch


Post New Thread Reply   
 
Thread Tools Display Modes
Voevoda
Senior Member
Join Date: Aug 2016
Old 04-08-2021 , 12:22   Re: [L4D2] Air Ability Patch
Reply With Quote #21

l4d2_air_ability_patch_linux.zip

language problem smoker
Voevoda is offline
noto3
Member
Join Date: Jan 2021
Old 06-16-2021 , 11:15   Re: [L4D2] Air Ability Patch
Reply With Quote #22

Crashes on Linux
noto3 is offline
ddd123
Senior Member
Join Date: May 2021
Old 06-19-2021 , 03:23   Re: [L4D2] Air Ability Patch
Reply With Quote #23

Quote:
Originally Posted by cravenge View Post
Signature update (with help from Crasher):
PHP Code:
"CVomit::IsAbilityReadyToFire"
{
    
"library"    "server"
    "windows"    "\x56\x57\x8B\xF9\x8B\x87\x38\x04\x00\x00\x83\xF8\xFF\x74\x2A\x8B\x15\x2A\x2A\x2A\x2A\x8B\xC8\x81\xE1\xFF\x0F\x00\x00\x03\xC9\x8D\x4C\xCA\x04\xC1\xE8\x0C\x39\x41\x04\x75\x2A\x8B\x31\x85\xF6\x75\x2A\x5F\x32\xC0\x5E\xC3\x8B\x06\x8B\x90\x54\x05\x00\x00\x8B\xCE\xFF\xD2\x84\xC0\x75\x2A\xF7\x86\xB4\x1C\x00\x00\x00\x08\x00\x00"
    
/* 56 57 8B F9 8B 87 38 04 00 00 83 F8 FF 74 ? 8B 15 ? ? ? ? 8B C8 81 E1 FF 0F 00 00 03 C9 8D 4C CA 04 C1 E8 0C 39 41 04 75 ? 8B 31 85 F6 75 ? 5F 32 C0 5E C3 8B 06 8B 90 54 05 00 00 8B CE FF D2 84 C0 75 ? F7 86 B4 1C 00 00 00 08 00 00 */

How do i update?
ddd123 is offline
noto3
Member
Join Date: Jan 2021
Old 06-20-2021 , 18:48   Re: [L4D2] Air Ability Patch
Reply With Quote #24

Quote:
Originally Posted by cravenge View Post
Just copy the updated offsets/signatures (depending on your server's OS) over the same lines in the gamedata, save the changes and restart your server. The plugin should start functioning again at that point.

Alternatively, you can download the attached gamedata from my edited post though that one is for Windows only. If your server is running on Linux, you can get the one from below. The offsets are untested so provide crash logs in case crashes come around after updating and I'll try to sort it out.
Crash ID: 7AX5-XELM-MYYT
Linux
noto3 is offline
Spirit_12
Veteran Member
Join Date: Dec 2012
Location: Toronto, CA
Old 06-20-2021 , 18:51   Re: [L4D2] Air Ability Patch
Reply With Quote #25

Quote:
Originally Posted by noto3 View Post
Crash ID: 7AX5-XELM-MYYT
Linux
That crash originates from PlayerRunCommand. Can you be specific as to when that crash happens?
__________________
Spirit_12 is offline
noto3
Member
Join Date: Jan 2021
Old 06-20-2021 , 18:56   Re: [L4D2] Air Ability Patch
Reply With Quote #26

Quote:
Originally Posted by Spirit_12 View Post
That crash originates from PlayerRunCommand. Can you be specific as to when that crash happens?
Right after the plugin is loaded with the updated gamedata provided above. It also prevents server startup
noto3 is offline
noto3
Member
Join Date: Jan 2021
Old 06-21-2021 , 11:37   Re: [L4D2] Air Ability Patch
Reply With Quote #27

That fixed it
noto3 is offline
BHaType
Great Tester of Whatever
Join Date: Jun 2018
Old 07-07-2021 , 02:01   Re: [L4D2] Air Ability Patch
Reply With Quote #28

Updated
PHP Code:
Fixed offsets signatures (thanks to Crasher)
Now required sourcescrambler 
__________________
cry
BHaType is offline
Send a message via AIM to BHaType
cravenge
Veteran Member
Join Date: Nov 2015
Location: Chocolate Factory
Old 07-07-2021 , 10:23   Re: [L4D2] Air Ability Patch
Reply With Quote #29

It seems that the "tongue_broke_bent" event gets spammed with how stuff is being patched within CTongue::OnUpdateAttachedToTargetState whenever a Smoker "leaves the ground".

Perhaps it's better to patch the conditional jump with an unconditional one for Windows just like NOP-ing the 6 bytes for Linux?
PHP Code:
"tongue_update_attach_state"
{
...
    
"windows"
    
{
        
"offset"    "???"
        "verify"    "\x75"
        "patch"        "\xEB"
    
}


Last edited by cravenge; 07-07-2021 at 17:12. Reason: More info
cravenge is offline
cravenge
Veteran Member
Join Date: Nov 2015
Location: Chocolate Factory
Old 07-07-2021 , 18:34   Re: [L4D2] Air Ability Patch
Reply With Quote #30

Added L4D1 support (incomplete):
PHP Code:
"Games"
{
    
"#default"
    
{
        
"MemPatches"
        
{
            
"tongue_ability"
            
{
                
"signature" "CTongue::IsAbilityReadyToFire"
                
                "linux"
                
{
                    
"patch"        "\x90\x90"
                
}
                
"windows"
                
{
                    
"patch"        "\x90\x90"
                
}
            }
            
"tongue_update_attach_state"
            
{
                
"signature" "CTongue::OnUpdateAttachedToTargetState"
                
                "linux"
                
{
                    
"patch"        "\x90\x90\x90\x90\x90\x90"
                
}
                
"windows"
                
{
                    
"verify"    "\x75"
                    "patch"        "\xEB"
                
}
            }
            
"vomit"
            
{
                
"signature" "CVomit::IsAbilityReadyToFire"
                
                "linux"
                
{
                    
"patch"        "\x90\x90"
                
}
                
"windows"
                
{
                    
"verify"    "\x74\xC9"
                    "patch"        "\x90\x90"
                
}
            }
            
"zoom"
            
{
                
"signature" "CTerrorGun::ShouldUnzoom"
                
                "windows"
                
{
                    
"verify"    "\x75"
                    "patch"        "\xEB"
                
}
            }
        }
        
        
"Signatures"
        
{
            
"CTongue::IsAbilityReadyToFire"
            
{
                
"linux"        "@_ZNK7CTongue20IsAbilityReadyToFireEv"
            
}
            
"CTongue::OnUpdateAttachedToTargetState"
            
{
                
"linux"        "@_ZN7CTongue29OnUpdateAttachedToTargetStateEv"
            
}
            
"CVomit::IsAbilityReadyToFire"
            
{
                
"linux"        "@_ZNK6CVomit20IsAbilityReadyToFireEv"
            
}
            
"CTerrorGun::ShouldUnzoom"
            
{
                
"linux"        "@_ZNK10CTerrorGun12ShouldUnzoomEv"
                "windows"    "\x56\x57\x8B\xF9\xE8\x2A\x2A\x2A\x2A\x8B\xF0\x85\xF6\x75\x2A\x5F\x32\xC0\x5E\xC3\x8B\xCE"
                
/* 56 57 8B F9 E8 ? ? ? ? 8B F0 85 F6 75 ? 5F 32 C0 5E C3 8B CE */
            
}
        }
    }
    
"left4dead"
    
{
        
"MemPatches"
        
{
            
"tongue_ability"
            
{
                
"linux"
                
{
                    
"offset"    "???"
                    "verify"    "\x74\xCC"
                
}
                
"windows"
                
{
                    
"offset"    "???"
                    "verify"    "\x74\x31"
                
}
            }
            
"tongue_update_attach_state"
            
{
                
"linux"
                
{
                    
"offset"    "???"
                    "verify"    "\x0F\x84\x73\x01\x00\x00"
                
}
                
"windows"
                
{
                    
"offset"    "???"
                
}
            }
            
"vomit"
            
{
                
"linux"
                
{
                    
"offset"    "???"
                    "verify"    "\x74\xBF"
                
}
                
"windows"
                
{
                    
"offset"    "???"
                
}
            }
            
"zoom"
            
{
                
"linux"
                
{
                    
"offset"    "???"
                    "verify"    "\x74\x63"
                    "patch"        "\x90\x90"
                
}
                
"windows"
                
{
                    
"offset"    "???"
                
}
            }
        }
        
        
"Signatures"
        
{
            
"CTongue::IsAbilityReadyToFire"
            
{
                
"windows"    "\x56\x57\x8B\xF9\x8B\x87\x74\x03\x00\x00\x83\xF8\xFF\x74\x2A\x8B\x15\x2A\x2A\x2A\x2A\x8B\xC8\x81\xE1\xFF\x0F\x00\x00\xC1\xE1\x04\x8D\x4C\x11\x04\xC1\xE8\x0C\x39\x41\x04\x75\x2A\x8B\x31\x85\xF6\x74"
                
/* 56 57 8B F9 8B 87 74 03 00 00 83 F8 FF 74 ? 8B 15 ? ? ? ? 8B C8 81 E1 FF 0F 00 00 C1 E1 04 8D 4C 11 04 C1 E8 0C 39 41 04 75 ? 8B 31 85 F6 74 */
            
}
            
"CTongue::OnUpdateAttachedToTargetState"
            
{
                
"windows"    "\x56\x8B\xF1\x8B\x86\x74\x03\x00\x00\x83\xF8\xFF\x0F\x84"
                
/* 56 8B F1 8B 86 74 03 00 00 83 F8 FF 0F 84 */
            
}
            
"CVomit::IsAbilityReadyToFire"
            
{
                
"windows"    "\x56\x57\x8B\xF9\x8B\x87\x74\x03\x00\x00\x83\xF8\xFF\x74\x2A\x8B\x15\x2A\x2A\x2A\x2A\x8B\xC8\x81\xE1\xFF\x0F\x00\x00\xC1\xE1\x04\x8D\x4C\x11\x04\xC1\xE8\x0C\x39\x41\x04\x75\x2A\x8B\x31\x85\xF6\x75\x2A\x5F\x32\xC0\x5E\xC3\x8B\x06\x8B\x90\xF8\x04\x00\x00\x8B\xCE\xFF\xD2\x84\xC0\x75\x2A\xF7\x86\xF8\x0A\x00\x00\x00\x08\x00\x00"
                
/* 56 57 8B F9 8B 87 74 03 00 00 83 F8 FF 74 ? 8B 15 ? ? ? ? 8B C8 81 E1 FF 0F 00 00 C1 E1 04 8D 4C 11 04 C1 E8 0C 39 41 04 75 ? 8B 31 85 F6 75 ? 5F 32 C0 5E C3 8B 06 8B 90 F8 04 00 00 8B CE FF D2 84 C0 75 ? F7 86 F8 0A 00 00 00 08 00 00 */
            
}
        }
    }
    
"left4dead2"
    
{
        
"MemPatches"
        
{
            
"tongue_ability"
            
{
                
"linux"
                
{
                    
"offset"    "103"
                    "verify"    "\x74\xC8"
                
}
                
"windows"
                
{
                    
"offset"    "51h"
                    "verify"    "\x74\x30"
                
}
            }
            
"tongue_update_attach_state"
            
{
                
"linux"
                
{
                    
"offset"    "105h"
                    "verify"    "\x0F\x84\x95\x01\x00\x00"
                
}
                
"windows"
                
{
                    
"offset"    "???"
                
}
            }
            
"vomit"
            
{
                
"linux"
                
{
                    
"offset"    "75h"
                    "verify"    "\x74\xBA"
                
}
                
"windows"
                
{
                    
"offset"    "66h"
                
}
            }
            
"charger"
            
{
                
"signature" "CCharge::ActivateAbility"
                
                "linux"
                
{
                    
"offset"    "99h"
                    "verify"    "\x0F\x84\x11\x01\x00\x00"
                    "patch"        "\x90\x90\x90\x90\x90\x90"
                
}
                
"windows"
                
{
                    
"offset"    "80h"
                    "verify"    "\x75"
                    "patch"        "\xEB"
                
}
            }
            
"zoom"
            
{
                
"linux"
                
{
                    
"offset"    "29h"
                    "verify"    "\x0F\x84\x98\x00\x00\x00"
                    "patch"        "\x90\x90\x90\x90\x90\x90"
                
}
                
"windows"
                
{
                    
"offset"    "1Dh"
                
}
            }
        }
        
        
"Signatures"
        
{
            
"CTongue::IsAbilityReadyToFire"
            
{
                
"windows"    "\x56\x57\x8B\xF9\x8B\x87\x38\x04\x00\x00\x83\xF8\xFF\x74\x2A\x8B\x15\x2A\x2A\x2A\x2A\x8B\xC8\x81\xE1\xFF\x0F\x00\x00\x03\xC9\x8D\x4C\xCA\x04\xC1\xE8\x0C\x39\x41\x04\x75\x2A\x8B\x31\x85\xF6\x74"
                
/* 56 57 8B F9 8B 87 38 04 00 00 83 F8 FF 74 ? 8B 15 ? ? ? ? 8B C8 81 E1 FF 0F 00 00 03 C9 8D 4C CA 04 C1 E8 0C 39 41 04 75 ? 8B 31 85 F6 74 */
            
}
            
"CTongue::OnUpdateAttachedToTargetState"
            
{
                
"windows"    "\x55\x8B\xEC\x83\xEC\x08\x56\x8B\xF1\x8B\x86\x38\x04\x00\x00\x83\xF8\xFF\x0F\x84"
                
/* 55 8B EC 83 EC 08 56 8B F1 8B 86 38 04 00 00 83 F8 FF 0F 84 */
            
}
            
"CVomit::IsAbilityReadyToFire"
            
{
                
"windows"    "\x56\x57\x8B\xF9\x8B\x87\x38\x04\x00\x00\x83\xF8\xFF\x74\x2A\x8B\x15\x2A\x2A\x2A\x2A\x8B\xC8\x81\xE1\xFF\x0F\x00\x00\x03\xC9\x8D\x4C\xCA\x04\xC1\xE8\x0C\x39\x41\x04\x75\x2A\x8B\x31\x85\xF6\x75\x2A\x5F\x32\xC0\x5E\xC3\x8B\x06\x8B\x90\x54\x05\x00\x00\x8B\xCE\xFF\xD2\x84\xC0\x75\x2A\xF7\x86\xB4\x1C\x00\x00\x00\x08\x00\x00"
                
/* 56 57 8B F9 8B 87 38 04 00 00 83 F8 FF 74 ? 8B 15 ? ? ? ? 8B C8 81 E1 FF 0F 00 00 03 C9 8D 4C CA 04 C1 E8 0C 39 41 04 75 ? 8B 31 85 F6 75 ? 5F 32 C0 5E C3 8B 06 8B 90 54 05 00 00 8B CE FF D2 84 C0 75 ? F7 86 B4 1C 00 00 00 08 00 00 */
            
}
            
"CCharge::ActivateAbility"
            
{
                
"linux"        "@_ZN7CCharge15ActivateAbilityEv"
                "windows"    "\x57\x8B\xF9\x8B\x07\x8B\x90\x28\x03\x00\x00\xFF\xD2\x84\xC0\x0F\x84\x2A\x2A\x2A\x2A\x8B\x87\x38\x04\x00\x00\x53"
                
/* 57 8B F9 8B 07 8B 90 28 03 00 00 FF D2 84 C0 0F 84 ? ? ? ? 8B 87 38 04 00 00 53 */
            
}
        }
    }

cravenge is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 06:15.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode