Anti-hack methods

Results 1 to 12 of 12
  1. #1
    Enthusiast hellang3l is offline
    MemberRank
    Jul 2004 Join Date
    VNLocation
    44Posts

    Anti-hack methods

    Hey guys,
    I'm developing an anti-hack for my server, current features :
    • Packet encryption.
    • Dexterity check : any "big" change of dexterity value on client is is known as an hack attempt => report, close client.
    • Hack program title and .exe dictionary check.


    The question is : can they still cheat on my server ? Does packet hack still work ?


  2. #2
    I'm The Freakin' Archmage Bakuya is offline
    MemberRank
    Dec 2007 Join Date
    RomaniaLocation
    295Posts

    Re: Anti-hack methods

    speed check is stupid because it will read lag as hack so you'll get dc...

  3. #3
    Dynamic commandcom is offline
    MemberRank
    Jan 2005 Join Date
    EstoniaLocation
    1,959Posts

    Re: Anti-hack methods

    idiots will bever die... they find a way to hack/piss you off anyway

  4. #4
    DarkMu wolfulus is offline
    MemberRank
    Jul 2006 Join Date
    BrazilLocation
    306Posts

    Re: Anti-hack methods

    Quote Originally Posted by commandcom View Post
    idiots will bever die... they find a way to hack/piss you off anyway
    that's true.

  5. #5
    Live your Life Stifi is offline
    MemberRank
    Nov 2007 Join Date
    BulgariaLocation
    452Posts

    cool Re: Anti-hack methods

    Ok, buy or make some anticheat, post the client without /data folder and watch how d-magic rlz d-wrld :)
    if you think ,you or someone els` can stops ppls like me u are in big fantazy , c'mo .. back on Earth!
    for some ppl d-crckg` is more important than the game!
    Have fun and be happy :)
    Cheers!

  6. #6
    Enthusiast hellang3l is offline
    MemberRank
    Jul 2004 Join Date
    VNLocation
    44Posts

    Re: Anti-hack methods

    Here u go

    ftp://f-games.net/patch_18_08.zip

    Just tell me how u pass through my anti-hack

  7. #7
    Member laudaicat is offline
    MemberRank
    Oct 2008 Join Date
    86Posts

    Re: Anti-hack methods

    1. Packet encryption. >> Easy to bypass
    2. Dexterity check : any "big" change of dexterity value on client is is known as an hack attempt => report, close client. >> hacker can lock speed value without change Dexterity and more !
    3. Hack program title and .exe dictionary check. >> Hide Process, Change Title ?

  8. #8
    ... sachav is offline
    MemberRank
    Apr 2006 Join Date
    -Location
    348Posts

    Re: Anti-hack methods

    About that dexterity check. I found a similar way that seems pretty effective to prevent speed hacking (and I'm currently using it in my server).

    The idea is to make some sort of "buffer" that blocks packets after it gets filled. And that buffer gets cleared every second.

    I have observed that the number of packets received and treated by the GS per second never gets past ~35 (that value would need to be adjusted if you're using 65K max stats -- just use a sniffer or output the number of packets that were received a second, and see what value you never reach, while it not being too far away from the max you got to, or it would be useless).
    That is also a good way to make the gameplay independant from your ping, as we all know laggers hit huge damage, and people that are very close to the server can pot fast as hell.

    This is what I've implemented :

    PHP Code:
    int CheckPRate(int aIndex)
    {
        
    SYSTEMTIME cTime;
        
    GetSystemTime(&cTime);
        
    SPEEDHACKSTRUCT sh = &(SpeedHack[aIndex MIN_PLAYERID]);
        
    sh->aIndex aIndex;
            
    /* buffer filled, return 0 */
        
    if(sh->timeRecv == cTime.wSecond && sh->packets >= 35)
        {
            return 
    0;
        }
        
    sh->packets++;
            
    /* second passed, clear buffer */
        
    if(sh->timeRecv != cTime.wSecond) {
            
    sh->packets 0;
        }
        
    sh->timeRecv cTime.wSecond;
        return 
    1;

    Where SpeedHack is a global variable:

    PHP Code:
    SPEEDHACKSTRUCT SpeedHack[MAX_PLAYERID MIN_PLAYERID]; 
    And where SPEEDHACKSTRUCT is a struct:

    PHP Code:
    typedef struct SPEEDHACKSTRUCT {
        
    int aIndex;
        
    long int packets;
        
    WORD timeRecv;
    }; 
    The function is then implemented in the very beginning of ProtocolCore the following way:

    PHP Code:
    if(!CheckPRate(aIndex)) return true
    This way, if CheckPRate returns 0, then the buffer is filled, and ProtocolCore exits without handling the packet. As you can see here the SH has almost no effect after the function is implemented.

  9. #9
    Enthusiast hellang3l is offline
    MemberRank
    Jul 2004 Join Date
    VNLocation
    44Posts

    Re: Anti-hack methods

    Correct me if i wrong ...

    We need anti-hack cuz the gameserver is bugged ... fix the gameserver will solve every problem, but we choose the client-side anti-hack because it's much more easier.

    The clientside antihack can be bypassed easily if you know how it work, so our job is make it harder. I can bypass myself antihack and a few antihack by write another program, patch some offset in the game memory, kill some thread (by using process explorer)

    Most gameserver have attack speed bugged. Again, correct me about the attack speed fomular :
    - Base attack speed is one hit per second.
    - The attack speed displayed in the game is the increased attack speed - by percent.
    - Ex : with 1000 attack speed, you can deal 10 attack per second.
    - Each skill have their own delay time, i don't know how to calculate this.

    One more thing, about the dupe bug, does titanstech server 1.07.35 and later have dupe bug ?

  10. #10
    Apprentice kristians521 is offline
    MemberRank
    Aug 2011 Join Date
    yes i doLocation
    21Posts

    Re: Anti-hack methods

    This as well can give some security...
    PHP Code:
    DWORD g_dwLoadLibraryAJMP;

    DWORD WINAPI JMPHookAdrDWORD AddressToPerformJumpDWORD AddressOfMyFunctionDWORD LenghOfTheAreaToPerformTheJump    )
    {
        if( 
    LenghOfTheAreaToPerformTheJump )
            return 
    0;

        
    DWORD RelativeJump
              
    NextInstructionAddress,
              
    Flag;

        if ( ! 
    VirtualProtect((LPVOID)AddressToPerformJumpLenghOfTheAreaToPerformTheJumpPAGE_EXECUTE_READWRITE, &Flag) )
            return 
    0;

        
    NextInstructionAddress AddressToPerformJump LenghOfTheAreaToPerformTheJump;

        *(
    BYTE*)AddressToPerformJump 0xE9;

        for( 
    DWORD i 5LenghOfTheAreaToPerformTheJumpi++)
            *(
    BYTE*)(AddressToPerformJump+i) = 0x90;

        
    RelativeJump AddressOfMyFunction AddressToPerformJump 0x5;

        *(
    DWORD*)(AddressToPerformJump 0x1) = RelativeJump;

        
    VirtualProtect((LPVOID)AddressToPerformJumpLenghOfTheAreaToPerformTheJumpFlag, &Flag);

        return 
    NextInstructionAddress
    }

    HMODULE WINAPI hLoadLibraryALPCSTR lpLibFileName )
    {    
        
    __asm
        
    {
            
    mov eaxdword ptr ss:[esp 0x18]
            
    cmp dword ptr ds:[eax-0x12], 0x8B55FF8B
            je erro
        
    }
        

        if( 
    lpLibFileName )
        {
            if( !
    strcmplpLibFileName"twain_32.dll" ) )
                
    __asm jmp g_dwLoadLibraryAJMP
        
    }            

        return 
    LoadLibraryExAlpLibFileName0);


        
    ExitProcess);

        return 
    0;
    }

    void DisableLoadLibraryA()
    {
        
    g_dwLoadLibraryAJMP = (DWORD)GetModuleHandle"kernel32" ) + 0x6E2A1;

        
    JMPHookAdr( (DWORD)LoadLibraryA, (DWORD)&hLoadLibraryA57 );


  11. #11
    Enthusiast hellang3l is offline
    MemberRank
    Jul 2004 Join Date
    VNLocation
    44Posts

    Re: Anti-hack methods

    Finally i figured out attack speed formula on SS6 1.07v+ client

    - Each skill have it's own base APM - attacks per minute which is the attack animation in Player.bmd Ex : Twisting slash (40), evil spirits (49)

    - The attack speed displayed on client side is the increased APM by percent. Ex : attack speed 100 mean u have 100% increased attack speed.

    My anti hack now have better speed check (server side)


    TestAPM = APM / 4
    if ( (AttackCount in 15 sec) > TestAPM ) then DoHackReport();

    Can anyone plz tell me the random item packet for ss6

  12. #12
    Enthusiast Nissin is offline
    MemberRank
    Aug 2011 Join Date
    29Posts

    Re: Anti-hack methods

    How it works?

    ---------- Post added at 02:21 PM ---------- Previous post was at 02:19 PM ----------

    Will you teach how to do that?



Advertisement