View Single Post
Psyk0tik
Veteran Member
Join Date: May 2012
Location: Homeless
Old 06-15-2021 , 22:47   Re: [L4D & L4D2] Left 4 DHooks Direct (1.38) [28-Apr-2021]
Reply With Quote #311

It seems that "CancelStagger" and "ForceNextStage" only changed by 1 byte each while "RegisterForbiddenTarget" and "UnRegisterForbiddenTarget" changed entirely.
PHP Code:
"Games"
{
    
"left4dead2"
    
{
        
"Signatures"
        
{
            
/*
             * CTerrorPlayer::CancelStagger(void) - used by the game to stop Survivor Staggering as something else happens
             */
            
"CancelStagger"
            
{
                
"library"    "server"
                "linux"        "@_ZN13CTerrorPlayer13CancelStaggerEv"
                "windows"    "\x56\x8B\x2A\xF3\x2A\x2A\x2A\x0C\x2A\x2A\x2A\x0F\x2A\x2A\x2A\x2A\x2A\x2A\x57"
                
/* Sig may break, using offsets to make unique */
                /* 56 8B ? F3 ? ? ? 0C ? ? ? 0F ? ? ? ? ? ? 57 */
                /* Search "SurvivorWasPounced" - few calls above. */ // Found by SilverShot.
            
}

            
/*
            *  CDirector::ForceNextStage(CDirector *this)
            */
            
"ForceNextStage"
            
{
                
"library"    "server"
                "linux"        "@_ZN9CDirector14ForceNextStageEv"
                "windows"    "\x8B\x2A\x88\x05\x00\x00\xE9\x2A\x99\x01\x00"
                
/* 8B ? 88 05 00 00 E9 ? 99 01 00 */
                /* Search "ForceNextStage" call below of XRef */
            
}

            
/*
             * CDirector::RegisterForbiddenTarget(CBaseEntity *) - used to create Car Alarms
             */
            
"RegisterForbiddenTarget"
            
{
                
"library"    "server"
                "linux"        "@_ZN9CDirector23RegisterForbiddenTargetEP11CBaseEntity"
                "windows"    "\x55\x8B\x2A\x53\x56\x57\x8B\x7D\x08\x83\xCB\xFF\x8B\xF1\x85\xFF\x74\x2A\x8B\x07\x8B\x50\x08\x8B\xCF\xFF\xD2\x8B\x00\x89\x45\x08\xEB\x2A\x89\x5D\x08\x8D\x4D\x08\x51\x8D\x8E\xB4\x03\x00\x00"
                
/* Sig may break, using offsets to make unique */
                /* 55 8B ? 53 56 57 8B 7D 08 83 CB FF 8B F1 85 FF 74 ? 8B 07 8B 50 08 8B CF FF D2 8B 00 89 45 08 EB ? 89 5D 08 8D 4D 08 51 8D 8E B4 03 00 00 */
                /* Search: "prop %s at %.0f %.0f %0.f missing model" for "CBaseProp::Spawn". XRef called by "CBreakableProp::Spawn" (largest function) which calls target function */
            
}

            
/*
             * CDirector::UnregisterForbiddenTarget(CBaseEntity *) - used to remove Car Alarms
             */
            
"UnRegisterForbiddenTarget"
            
{
                
"library"    "server"
                "linux"        "@_ZN9CDirector25UnregisterForbiddenTargetEP11CBaseEntity"
                "windows"    "\x55\x8B\x2A\x56\x57\x8B\x7D\x08\x8B\xF1\x85\xFF\x74\x2A\x8B\x07\x8B\x50\x08\x8B\xCF\xFF\xD2\x8B\x00\x89\x45\x08"
                
/* 55 8B ? 56 57 8B 7D 08 8B F1 85 FF 74 ? 8B 07 8B 50 08 8B CF FF D2 8B 00 89 45 08 */
                /* Search "triggered_car_alarm" for "CCarProp::InputSurvivorStandingOnCar". Called in here. */
            
}
        }
    }

__________________
Psyk0tik is offline