[1.12.1] Issues bypassing warden for distributed software menu

User Tag List

Results 1 to 15 of 15
  1. #1
    prospectingemu's Avatar Member
    Reputation
    15
    Join Date
    Mar 2014
    Posts
    49
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [1.12.1] Issues bypassing warden for distributed software

    Hey guys,

    I've been looking into warden on the 1.12.1 client. I get that for a private hack/bot you are pretty much safe as long as you don't hook something they are scanning for (e.g wallclimb) but if you plan on distributing the bot/hack which the devs can get their hands on i don't see how you can ever be safe if you're modifying code outside of the endscene (or anywhere the bytes are often modified / different for legitimate reasons).

    - MEM_CHECK
    Easy enough to patch this, check if your hooks were scanned and replace the bytes if necessary

    - MPQ_CHECK, DRIVER_CHECK, PROC_CHECK, TIMING_CHECK, MODULE_CHECK
    As far as i can see these are irrelevant for the most part as im not current injecting a dll / playing with drivers / mpq etc

    - PAGE_CHECK A/B
    This is where I run into problems. Without knowing what hash they are looking for I wont know which bytes to restore. One option is to restore all bytes when these are being done but the page checks can take too long and bot functionality would be frozen until they are finished.

    If they try to get a hash of the warden module I can allocate an unmodified warden module (_CodeMonkey's idea from the 1.12.1 dump thread).

    BUT this is where I'm stuck, what happens when they scan for a hash containing my modifications to the warden module? Is there a solution to this which im missing?

    If i cant be sure that its safe I figure I should just hook the endscene, add some 'noise' around my hook and deal with not having a lua unlock etc. Any ideas / solutions would be greatly appreciated.

    [1.12.1] Issues bypassing warden for distributed software
  2. #2
    lolp1's Avatar Site Donator CoreCoins Purchaser
    Reputation
    190
    Join Date
    Feb 2013
    Posts
    210
    Thanks G/R
    43/77
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I suggest going through this thread, the all of these topics are discussed and the information pretty much is the same today as it was nearly a decade ago.

    Blizzhackers • View topic - Warden discussion and FAQ

  3. #3
    prospectingemu's Avatar Member
    Reputation
    15
    Join Date
    Mar 2014
    Posts
    49
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by lolp1 View Post
    I suggest going through this thread, the all of these topics are discussed and the information pretty much is the same today as it was nearly a decade ago.

    Blizzhackers • View topic - Warden discussion and FAQ
    Thanks, I went thought the thread but didn't find anything relating to the page scan issue. The 'clean client' idea might be worth looking into though

  4. #4
    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)
    I'm not sure how you are doing this since you're not injected, so I'm going to just casually ignore that fact and hope it doesn't matter. =D

    The page check can be defeated with essentially the same logic as the memory check. Hook the function which performs it, determine the affected area overlaps with your code (be it a patch or an injected module), and if so, modify the reply accordingly.

  5. #5
    tutrakan's Avatar Contributor
    Reputation
    134
    Join Date
    Feb 2013
    Posts
    175
    Thanks G/R
    124/52
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Take a look at the instruction at 0x3099
    Last edited by tutrakan; 11-14-2016 at 05:36 AM.

  6. #6
    prospectingemu's Avatar Member
    Reputation
    15
    Join Date
    Mar 2014
    Posts
    49
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by namreeb View Post
    I'm not sure how you are doing this since you're not injected, so I'm going to just casually ignore that fact and hope it doesn't matter. =D

    The page check can be defeated with essentially the same logic as the memory check. Hook the function which performs it, determine the affected area overlaps with your code (be it a patch or an injected module), and if so, modify the reply accordingly.
    Thanks, will do this

    Originally Posted by tutrakan View Post
    Take a look at the instruction at 0x3099
    Aaaand that just saved me looking for it - awesome ty!

  7. #7
    tutrakan's Avatar Contributor
    Reputation
    134
    Join Date
    Feb 2013
    Posts
    175
    Thanks G/R
    124/52
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Check the one at 0x33D0 as well

  8. #8
    prospectingemu's Avatar Member
    Reputation
    15
    Join Date
    Mar 2014
    Posts
    49
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by tutrakan View Post
    Check the one at 0x33D0 as well
    I thought for the page scans I should be doing the check at 0x299C? Still going through it but I was pretty sure this was what im after

  9. #9
    tutrakan's Avatar Contributor
    Reputation
    134
    Join Date
    Feb 2013
    Posts
    175
    Thanks G/R
    124/52
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I think is this one: sub_2CFD

  10. #10
    prospectingemu's Avatar Member
    Reputation
    15
    Join Date
    Mar 2014
    Posts
    49
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0x299C seems to be where the query takes place - does anyone know how to generate the hashes for the mangos warden? Really need to generate some to fully test my patch

  11. #11
    tutrakan's Avatar Contributor
    Reputation
    134
    Join Date
    Feb 2013
    Posts
    175
    Thanks G/R
    124/52
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The offset you posted sends me in the middle of nowhere, are we talking for the same warden_module.zip?

  12. #12
    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)
    Originally Posted by prospectingemu View Post
    0x299C seems to be where the query takes place - does anyone know how to generate the hashes for the mangos warden? Really need to generate some to fully test my patch
    What do you mean by 'the hashes'? Hashes of what? For which check, etc.?

  13. #13
    prospectingemu's Avatar Member
    Reputation
    15
    Join Date
    Mar 2014
    Posts
    49
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by tutrakan View Post
    The offset you posted sends me in the middle of nowhere, are we talking for the same warden_module.zip?

    Thats my bad its 0x399C from the base of the allocated memory at runtime, it should be a call to VirutalQuery

    Code:
    13353992    57              PUSH EDI
    13353993    6A 1C           PUSH 1C
    13353995    8D7E 40         LEA EDI,DWORD PTR DS:[ESI+40]
    13353998    57              PUSH EDI
    13353999    8BC2            MOV EAX,EDX
    1335399B    50              PUSH EAX
    1335399C    FF15 30803513   CALL DWORD PTR DS:[13358030]             ; KERNEL32.VirtualQuery
    133539A2    83F8 1C         CMP EAX,1C
    133539A5    73 17           JNB SHORT 133539BE
    133539A7    33C0            XOR EAX,EAX

    Originally Posted by namreeb View Post
    What do you mean by 'the hashes'? Hashes of what? For which check, etc.?
    From warden - Mangos Zero - getMaNGOS | The home of MaNGOS it explains that the data field in the DB is "uint Seed + byte[20] SHA1 + uint Addr + byte Len" When i try to add my own hashes they aren't being found so I'm obviously doing something wrong.

    So yeah my wording was incorrect, im not after hashes

  14. #14
    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)
    Originally Posted by prospectingemu View Post
    explains that the data field in the DB is "uint Seed + byte[20] SHA1 + uint Addr + byte Len"
    That is describing the packet structure for the page scan opcodes. Do you mean that you're using Mangos Zero with Warden to try and detect yourself, and you aren't detecting yourself? If so, that is most likely because their Warden is not implemented properly. Not sure though.

  15. #15
    tutrakan's Avatar Contributor
    Reputation
    134
    Join Date
    Feb 2013
    Posts
    175
    Thanks G/R
    124/52
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by prospectingemu View Post
    Thats my bad its 0x399C from the base of the allocated memory at runtime, it should be a call to VirutalQuery
    You made me dig deeper in this famous module, so thank you for the challenge.

    Maybe I'm repeating myself, but from the sub_2cfd both page checks are referring to the sub_11e4. So, probably, there is the key of the magic kingdom.
    Last edited by tutrakan; 11-23-2016 at 10:46 PM.

Similar Threads

  1. Replies: 51
    Last Post: 06-13-2012, 05:59 AM
  2. [HELP!!] External login issue! Been looking for WEEKS!! X_X
    By meny in forum WoW EMU Questions & Requests
    Replies: 1
    Last Post: 11-13-2009, 01:01 AM
  3. Bypass Update for Curse Client
    By Giwin in forum World of Warcraft General
    Replies: 6
    Last Post: 06-24-2009, 07:17 PM
  4. Bypass Update for Curse Client
    By Giwin in forum World of Warcraft Bots and Programs
    Replies: 5
    Last Post: 06-13-2009, 05:53 PM
  5. Line of sight issue with Mangos for v1.12.1
    By Rhetoric in forum WoW EMU Questions & Requests
    Replies: 5
    Last Post: 06-04-2009, 11:33 PM
All times are GMT -5. The time now is 05:40 PM. 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