[Question] What makes hooking WoW unsafe menu

Shout-Out

User Tag List

Results 1 to 13 of 13
  1. #1
    mathix's Avatar Member
    Reputation
    5
    Join Date
    Jan 2013
    Posts
    23
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [Question] What makes hooking WoW unsafe

    Hello, I've seen multiple people saying they're not sure whether or not their code is "safe", and I understand that Blizzard scans certain addresses and such for detection, but what I don't understand is how one hook or injection can be unsafe and what one should avoid to make an unsafe hook or injection. If someone could explain this to me I'd be grateful.
    Last edited by mathix; 07-07-2014 at 04:31 PM.

    [Question] What makes hooking WoW unsafe
  2. #2
    cenron's Avatar Member
    Reputation
    12
    Join Date
    Mar 2008
    Posts
    93
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by mathix View Post
    Hello, I've seen multiple people saying they're not sure whether or not their code is "safe", and I understand that Blizzard scans certain addresses and such for detection, but what I don't understand is how one hook or injection can be unsafe and what one should avoid to make an unsafe hook or injection. If someone could explain this to me I'd be grateful.
    From what I understand about this subject matter is that warden watches a list of addresses. This list can contain things such Current Player XYZF POS, but this can also include functions. Now certain function don't get monitored because there are a lot of legit programs that hook those functions so wow would constantly through out false positives ( example is the D3D functions )

    Now other functions are not common to be hooked and only a hack/bot program would probably hook them ( Like the WoW Warden Functions ). So these function addresses are watch for hooks. The reason you can tell a hook happens is because the first few bytes of the function get changed from whatever they are to JMP 0xDEADBEEF. This change changes the known hash of the function and gets flagged as hack/bot.

    So your hooks are safe as long as you don't try to HOOK and alter these monitored functions.

    Now Ill probably be told I am wrong and slapped, but that is my understanding of this.
    Last edited by cenron; 07-07-2014 at 10:17 PM.

  3. #3
    namreeb's Avatar Legendary

    Reputation
    668
    Join Date
    Sep 2008
    Posts
    1,029
    Thanks G/R
    8/222
    Trade Feedback
    0 (0%)
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    The danger is if your hook modifies some memory (with a JMP hook or INT3 hook, etc.) and it is an address Warden is scanning (because perhaps there is a public hack out there which hooks the same function in the same location), it will find your hook.

  4. #4
    mathix's Avatar Member
    Reputation
    5
    Join Date
    Jan 2013
    Posts
    23
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    So what you're saying is that if I were to use an EndScene hook to do lua strings, I'd be safe? But if I did a JMP or INT3 hook I'd be banned if I tried to acces certain functions?

  5. #5
    JuJuBoSc's Avatar Banned for scamming CoreCoins Purchaser
    Reputation
    1019
    Join Date
    May 2007
    Posts
    922
    Thanks G/R
    1/3
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    They also can check for specific mapped modules, they may check the call stack (like lua_pcall) to see if the function was called outside of wow memory region, check a memory region hash, in most of case if your tools are private, there is not much issue, until you use something already detected.

  6. #6
    Corthezz's Avatar Elite User Authenticator enabled
    Reputation
    386
    Join Date
    Nov 2011
    Posts
    325
    Thanks G/R
    191/98
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by mathix View Post
    So what you're saying is that if I were to use an EndScene hook to do lua strings, I'd be safe? But if I did a JMP or INT3 hook I'd be banned if I tried to acces certain functions?
    Ehm?!! Dont hook scanned functions. This contains:
    Functions checked by memory hash
    Functions where a few bytes are scanned
    Functions which are checked for the location they were called from
    Check my blog: https://zzuks.blogspot.com

  7. #7
    mathix's Avatar Member
    Reputation
    5
    Join Date
    Jan 2013
    Posts
    23
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Corthezz View Post
    Ehm?!! Dont hook scanned functions. This contains:
    Functions checked by memory hash
    Functions where a few bytes are scanned
    Functions which are checked for the location they were called from
    So the functions that warden are scanning is off limits of course, now when that's said can I use a Lua DoString function and still be safe if I just don't use the functions warden scans?

  8. #8
    xalcon's Avatar Contributor ふたなり
    Authenticator enabled
    Reputation
    198
    Join Date
    Oct 2008
    Posts
    291
    Thanks G/R
    20/58
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    nothing is completely safe. With the current incarnation of warden its unlikely that calling FrameScript__Execute from endscene would cause any trouble - but this can change tomorrow, next month or never.
    "Threads should always commit suicide - they should never be murdered" - DirectX SDK

  9. #9
    hamburger12's Avatar Contributor CoreCoins Purchaser
    Reputation
    87
    Join Date
    Jan 2010
    Posts
    297
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    As long as you don't write into bytes that are scanned by warden, your hack should be safe. If wanna call functions inside the wow process via remote asm then a endscene hook is a good start. To avoid the lua_pcall stuff you could inject your own lua dll and use the pcall instead ;-). But like juju mentioned they got some "new" technics how they try to catch bots. But for that stuff is also a workaround ...

  10. #10
    DarkLinux's Avatar Former Staff
    CoreCoins Purchaser Authenticator enabled
    Reputation
    1627
    Join Date
    May 2010
    Posts
    1,846
    Thanks G/R
    193/539
    Trade Feedback
    16 (100%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by JuJuBoSc View Post
    They also can check for specific mapped modules, they may check the call stack (like lua_pcall) to see if the function was called outside of wow memory region, check a memory region hash, in most of case if your tools are private, there is not much issue, until you use something already detected.
    Do you know how much of the call stack they dump? Would it not be easy just to create a code cave and call functions from inside the main module? But I guess they could start checking page types or checking for page faults.

  11. #11
    MaiN's Avatar Elite User
    Reputation
    335
    Join Date
    Sep 2006
    Posts
    1,047
    Thanks G/R
    0/10
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by DarkLinux View Post
    Do you know how much of the call stack they dump? Would it not be easy just to create a code cave and call functions from inside the main module? But I guess they could start checking page types or checking for page faults.
    They do not check lua_pcall, they check lua_load, and they assume they are called from lua_loadbuffer, so they check 2 functions up (for the function calling lua_loadbuffer).
    [16:15:41] Cypher: caus the CPU is a dick
    [16:16:07] kynox: CPU is mad
    [16:16:15] Cypher: CPU is all like
    [16:16:16] Cypher: whatever, i do what i want

  12. #12
    DarkLinux's Avatar Former Staff
    CoreCoins Purchaser Authenticator enabled
    Reputation
    1627
    Join Date
    May 2010
    Posts
    1,846
    Thanks G/R
    193/539
    Trade Feedback
    16 (100%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by MaiN View Post
    They do not check lua_pcall, they check lua_load, and they assume they are called from lua_loadbuffer, so they check 2 functions up (for the function calling lua_loadbuffer).
    So calling wows functions are still safe by the sounds of it. Was thinking they could look at the location of the lua chunck being loaded but not all lua code is in the wow exe. So was Blizzard just targeting one bot calling the lua functions directly? Any reason you would call the lua functions over wow wrappers?

  13. #13
    MaiN's Avatar Elite User
    Reputation
    335
    Join Date
    Sep 2006
    Posts
    1,047
    Thanks G/R
    0/10
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by DarkLinux View Post
    So calling wows functions are still safe by the sounds of it. Was thinking they could look at the location of the lua chunck being loaded but not all lua code is in the wow exe. So was Blizzard just targeting one bot calling the lua functions directly? Any reason you would call the lua functions over wow wrappers?
    WoW's functions have lots of fluff (assuming you mean FrameScript_GetText). Furthermore, afaik, it does not allow you to return multiple values at the same time. And in my opinion the
    Code:
    DoString("SomeVariable = abc()");
    string val = GetText("SomeVariable");
    approach is not very pretty. Compare that to:
    Code:
    string val = GetValue("return abc()", 0);
    But yes, they could've caught lots of different projects had they gone for FrameScript_GetText instead. But they went specifically after us.
    [16:15:41] Cypher: caus the CPU is a dick
    [16:16:07] kynox: CPU is mad
    [16:16:15] Cypher: CPU is all like
    [16:16:16] Cypher: whatever, i do what i want

Similar Threads

  1. [Questions] What makes botting with Honor Buddy "safer" than other bots?
    By ev1 in forum WoW Bots Questions & Requests
    Replies: 1
    Last Post: 12-18-2011, 03:35 AM
  2. [Question] You make the server.. and then what?
    By Lonehwolf in forum WoW EMU Questions & Requests
    Replies: 20
    Last Post: 05-07-2009, 05:48 AM
  3. [Question]What is the Toxic-WoW Template?
    By Aciddragon80 in forum World of Warcraft Emulator Servers
    Replies: 7
    Last Post: 05-23-2008, 03:33 PM
  4. [Question] What do you need to make repack! from scratch
    By Tom_2001 in forum World of Warcraft Emulator Servers
    Replies: 8
    Last Post: 01-13-2008, 12:07 PM
  5. [Question] Make whole wow into an inn?
    By Evolution in forum WoW ME Questions and Requests
    Replies: 2
    Last Post: 01-06-2008, 11:41 AM
All times are GMT -5. The time now is 11:31 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search