[Tutorial] - Anti-AFK Hack/Cheat menu

User Tag List

Results 1 to 10 of 10
  1. #1
    Verletzer's Avatar Private
    Reputation
    11
    Join Date
    Apr 2011
    Posts
    11
    Thanks G/R
    0/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [Tutorial] - Anti-AFK Hack/Cheat

    Because my love for you knows no bounds, I have created for you a small tutorial. I will describe a method by which you can prevent WoW from automatically marking you AFK after five minutes of inactivity. Pull up a chair and put on your learning caps.

    The function we will be patching is named, "CGGameUI::UpdatePlayerAFK". In the current release of WoW, it can be found at 0x8327A0. This is not rebased, I will leave it as an exercise to the reader how to locate this if WoW does not load at the base address specified in its NT_HEADERS/IMAGE_OPTIONAL_HEADER structure(s).

    Lets take a look at the relevant code in assembly. This code is found at the beginning of the function.

    Code:
    1: push ebp
    2: mov  ebp, esp
    3: mov  eax, [ebp+arg_0]
    4: sub  eax, dword_D19040
    5: lea  ecx, [eax-493E0h]
    6: test ecx, ecx
    7: jl   short loc_8327FD
    We are going to ignore the first two lines, this is part of the function prologue. Here is psuedo-code, in C/C++, that would accomplish something similar to this assembly code. You cannot tell from this segment, but the function does not return anything

    Code:
    void UpdatePlayerAFK(int CurrentTickCount){
    
       int timeDifference;
    
       timeDifference = (CurrentTickCount - TICK_COUNT_LAST_PLAYER_EVENT);
       if((timeDifference - 300000) > 0){
          //Mark player afk
          //etc...
       }
       else{
          return;
       }
    }
    To help tie this psuedo-code to the assembly code:

    • CurrentTickCount represents arg_0

    • timeDifference represents eax on line 4

    • TICK_COUNT_LAST_PLAYER_EVENT represents dword_D19040 (A global variable)

    • 300000(decimal) is equal to 493E0h(hex)

    • if((timeDifference - 300000) > 0) is represented by the assembly code on line 5, 6, and 7


    Good god man! What does it all mean?
    Okay, calm the hell down - I will explain. First off, all of the times are represented in milliseconds. The function is checking how many milliseconds have passed since you did something with your character, moved around, jumped, etc. It is taking the difference in time and subtracting 300,000 milliseconds. Why 300,000? Well lets do the math.

    Code:
    300,000 ms  / 1000(ms in a second)    = 300 seconds
    300 seconds / 60(seconds in a minute) = 5 minutes (AHA!)
    The game is figuring out if your last action happened more than five minutes ago. If it has been more than five minutes, "(timeDifference - 300000)" will result in a positive number i.e. "> 0" - a negative result indicates that less than five minutes have passed. In the rare event that "(timeDifference - 300000)" is exactly equal to zero, you will not be marked AFK. Although it will not buy you much time as the AFK check happens every few seconds or so.

    Mother f***ing Blizzard! How can I fight back?
    "Fixing" the AFK check requires but one byte to be modified. Line 7 in the assembly code occurs at the address 0x8327B4. By overwriting the existing value, 0x7C, with 0xEB we effectively change the test, "if((timeDifference - 300000) > 0)" to "if(false)" - meaning the code in the if statement will never be executed. At the assembly/machine code level, we are changing, "jl short loc_8327FD" to "jmp short loc_8327FD" - otherwise known as an unconditional jump, one that is always taken.

    Go now, go unto the world (of Warcraft) and REFUSE to be AFK.

    [Tutorial] - Anti-AFK Hack/Cheat
  2. #2
    DamonT's Avatar Member
    Reputation
    6
    Join Date
    Aug 2008
    Posts
    23
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Just as a note:
    Iirc, Warden was scanning some bytes in this function last patch, so I'd take care on retail servers.

  3. #3
    Evieh's Avatar Contributor
    Reputation
    92
    Join Date
    Aug 2006
    Posts
    191
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by DamonT View Post
    Just as a note:
    Iirc, Warden was scanning some bytes in this function last patch, so I'd take care on retail servers.
    Yep, Warden seems to be scanning 0x004327B4, length 4.

  4. #4
    DarkLinux's Avatar Former Staff
    CoreCoins Purchaser Authenticator enabled
    Reputation
    1584
    Join Date
    May 2010
    Posts
    1,829
    Thanks G/R
    188/531
    Trade Feedback
    16 (100%)
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    Why not keep it simple and just use LastHardwareAction+Timestamp? I don't think Warden has been looking at that?
    Last edited by DarkLinux; 04-27-2011 at 08:06 AM.

  5. #5
    Remus3's Avatar Hobby 3D Character Artist Ex-Super Mod CoreCoins Purchaser
    Reputation
    272
    Join Date
    Jan 2011
    Posts
    1,356
    Thanks G/R
    3/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Post removed, Verletzer....Cut the bullshit speak and act normal.
    Continue in such a fashion and I will start passing out infractions like candy.


    Think before you post. You can only get smarter by playing a smarter opponent.

  6. #6
    Verletzer's Avatar Private
    Reputation
    11
    Join Date
    Apr 2011
    Posts
    11
    Thanks G/R
    0/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Sorry, sometimes when I take too many mushrooms I think I am a 14th century play wright. What I meant to say was, it seems quite odd for Blizzard to go after an AFK cheat and not bother to check for speed, flying, or no-clip hacks. Are people patching an AFK check really more of a threat?

  7. #7
    Evieh's Avatar Contributor
    Reputation
    92
    Join Date
    Aug 2006
    Posts
    191
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Verletzer View Post
    Sorry, sometimes when I take too many mushrooms I think I am a 14th century play wright. What I meant to say was, it seems quite odd for Blizzard to go after an AFK cheat and not bother to check for speed, flying, or no-clip hacks. Are people patching an AFK check really more of a threat?
    Yes, that doesn't make sense.. I guess Warden guy will start adding more offsets to her scan list Soon™.

  8. #8
    robertf's Avatar Private
    Reputation
    1
    Join Date
    Feb 2011
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Why not changing that global variable to current tick count every a minute or so? (The variable may be used by other functions though. I haven't check that yet.) But I don't think warden is scanning that kind of variables.

  9. #9
    krylonClear's Avatar Private
    Reputation
    1
    Join Date
    Dec 2010
    Posts
    6
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    This tutorial was awesome and saved me a lot of headache. But today's patch moved this chunk of code and now I'm unable to utilize without being spoonfed an updated address.

  10. #10
    DarkLinux's Avatar Former Staff
    CoreCoins Purchaser Authenticator enabled
    Reputation
    1584
    Join Date
    May 2010
    Posts
    1,829
    Thanks G/R
    188/531
    Trade Feedback
    16 (100%)
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Evieh View Post
    Yep, Warden seems to be scanning 0x004327B4, length 4.
    .... hmm

    (filler)

Similar Threads

  1. [Selling] Rust (playrust) hacks ( Cheat engine) Add on skype for tutorial
    By Ishyorc in forum General Trading Buy Sell Trade
    Replies: 7
    Last Post: 01-27-2014, 01:18 PM
  2. [Hack] Anti-AFK Patch
    By DrakeFish in forum World of Warcraft Bots and Programs
    Replies: 10
    Last Post: 02-16-2010, 05:43 AM
  3. anti-afk with cheat engine
    By saltymuffin in forum World of Warcraft Exploits
    Replies: 9
    Last Post: 07-16-2007, 10:42 AM
  4. Anti-AFK **NO HACK**
    By Volt in forum World of Warcraft Exploits
    Replies: 22
    Last Post: 03-22-2007, 07:56 PM
  5. Request. Cheat Engine Anti-AFK
    By worm03 in forum World of Warcraft General
    Replies: 2
    Last Post: 02-13-2007, 11:11 AM
All times are GMT -5. The time now is 01:10 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search