DR Hooks and Detection menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 19
  1. #1
    GliderPro's Avatar Member
    Reputation
    -1
    Join Date
    Mar 2009
    Posts
    93
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    DR Hooks and Detection

    Cypher will you share some details about the LuaNinja detection? I saw your post about the detection code being in the client. What was it checking for? Did it just look for a DR hook on a specific address? Are DR hooks a worse idea now?

    DR Hooks and Detection
  2. #2
    amadmonk's Avatar Active Member
    Reputation
    124
    Join Date
    Apr 2008
    Posts
    772
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If they're checking for DR breakpoints in the code segment, they're going to start banning a bunch of people who are debugging WoW. If they're going to ban for it, they'll likely ban on *specific* addresses in DRx, which implies that the generic hooking method would still be safe, just not that specific hook.

    This is just an assumption. Until the powers that be look at what specific checks Warden is making, it's all guesswork.

    Edit: I read the LuaNinja thread, and it appears that this check was snuck in in a code change in the client, not in Warden. I think that other than that, my post is still factually correct. I'll wait for Cypher to correlate/disagree, since he knows a lot more about this specific issue than I do.
    Last edited by amadmonk; 01-14-2010 at 08:30 PM.
    Don't believe everything you think.

  3. #3
    kynox's Avatar Member
    Reputation
    830
    Join Date
    Dec 2006
    Posts
    888
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Harko View Post
    DR hooks are safe.

    luaninja was detected by the old warden memory scan but to circumlate cyphers protection he updated the code on the fly and not directly. Thats what is meant with in the client.

    Kynox os theory is based on a buggy wow version which prevented the indirect update on his computer.
    ^ This. Warden was the detection method used to detect LuaNinja (by finding his module); all they did was circumvent Cypher's protection.

  4. #4
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rather than detect the DR hooks they added code to the client (which then indirectly modified Warden) to bypass my hook on NtQueryVirtualMemory.

    So DR hooks are still at the same point as they were previous to the LuaNinja banwave in terms of how 'safe' they are currently.

  5. #5
    GliderPro's Avatar Member
    Reputation
    -1
    Join Date
    Mar 2009
    Posts
    93
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks for the reply Cypher. How did they bypass your NtQueryVirtualMemory hook? Was it an IAT hook or a detour? Was the bypass specific to your hook or is it general enough to bypass all NtQueryVirtualMemory hooks?

    On a side note you know your protection was solid if they had to resort to a client patch to detect it.

  6. #6
    amadmonk's Avatar Active Member
    Reputation
    124
    Join Date
    Apr 2008
    Posts
    772
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I wonder if they could reliably bypass a detour on NTQVM, given that there are many flavors in the wild.

    IAT hooks, pfft. Easy.
    Don't believe everything you think.

  7. #7
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by GliderPro View Post
    Thanks for the reply Cypher. How did they bypass your NtQueryVirtualMemory hook? Was it an IAT hook or a detour? Was the bypass specific to your hook or is it general enough to bypass all NtQueryVirtualMemory hooks?

    On a side note you know your protection was solid if they had to resort to a client patch to detect it.
    It was general enough to bypass all usermode NtQueryVirtualMemory hooks. You would have to add extra hooks to defend against the method they used.

    Originally Posted by amadmonk View Post
    I wonder if they could reliably bypass a detour on NTQVM, given that there are many flavors in the wild.

    IAT hooks, pfft. Easy.
    I wan't using an IAT hook, I was using a detour. I planted an INT3 at the top of the function and used VEH to do the redirect so their API hashing scan couldn't be used.

  8. #8
    flo8464's Avatar Active Member
    Reputation
    30
    Join Date
    Apr 2009
    Posts
    434
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    It was general enough to bypass all usermode NtQueryVirtualMemory hooks. You would have to add extra hooks to defend against the method they used.
    I don't know how their bypass looks like, but it should be pretty safe to hook NtQueryVirtualMemory's kernel equivalents by writing a driver, correct?
    Hey, it compiles! Ship it!

  9. #9
    kynox's Avatar Member
    Reputation
    830
    Join Date
    Dec 2006
    Posts
    888
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by flo8464 View Post
    I don't know how their bypass looks like, but it should be pretty safe to hook NtQueryVirtualMemory's kernel equivalents by writing a driver, correct?
    You're limiting yourself to x86 then; unless you a) Own a x64 code signing cert and b) Can bypass KPP.

  10. #10
    flo8464's Avatar Active Member
    Reputation
    30
    Join Date
    Apr 2009
    Posts
    434
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by kynox View Post
    You're limiting yourself to x86 then; unless you a) Own a x64 code signing cert and b) Can bypass KPP.
    I never wrote any drivercode since I use x64 Win7.
    That means, Windows forbids me to install my selfwritten drivers unless I pay money or bypass it? Holy shit, that sucks. I am not the _administrator_ to be treated like a child by my OS...
    Hey, it compiles! Ship it!

  11. #11
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by flo8464 View Post
    I never wrote any drivercode since I use x64 Win7.
    That means, Windows forbids me to install my selfwritten drivers unless I pay money or bypass it? Holy shit, that sucks. I am not the _administrator_ to be treated like a child by my OS...
    No, KPP is a good thing. It keeps malware from installing kernelmode rootkits, and it stops people abusing kernelmode drivers to do shit they shouldn't be (i.e. AV software hooking the kernel, Anti-cheat software hooking the kernel, etc).

    They're not "treating you like a child", they're protecting the integrity of the OS.

    KPP and driver signing are two separate things.

    If you want to write and install your own drivers then you can simply test-sign them and enable test mode when you boot into Windows. However, if you want to deploy your driver to the masses, it's expected that you pay for a certificate (this gives the user liability, and Microsoft control, so the user knows that the driver is untampered and where it came from, etc, and Microsoft can request to have your certificate revoked if you start doing something you're not supposed to with it).

    KPP is designed to stop hooking of the kernel (as mentioned above), and unless you're doing something you're not supposed to it's of no concern to you.

    The problem here is that you are trying to do something that you're not supposed to.
    Last edited by Cypher; 01-16-2010 at 07:50 AM.

  12. #12
    FEUP's Avatar Active Member
    Reputation
    39
    Join Date
    May 2009
    Posts
    128
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Bypass KPP is actually possible right?
    binary modifications, etc - by Fyyre
    saw some stuff from fyyre as somethings like easyhook etc.

    I know nothing about device drivers , kernel related stuff so better dont try to say something really wrong.

  13. #13
    flo8464's Avatar Active Member
    Reputation
    30
    Join Date
    Apr 2009
    Posts
    434
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The problem here is that you are trying to do something that you're not supposed to.
    Too bad that it's so much fun doing things I am not supposed to do.
    I guess a Linux system would be a better playground for me.
    Hey, it compiles! Ship it!

  14. #14
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by FEUP View Post
    Bypass KPP is actually possible right?
    binary modifications, etc - by Fyyre
    saw some stuff from fyyre as somethings like easyhook etc.

    I know nothing about device drivers , kernel related stuff so better dont try to say something really wrong.
    Of course bypassing it is possible. But it's not a trivial task by any means, and in the past Microsoft have always reacted to public bypasses by updating KPP to break and defend against them.

    Originally Posted by flo8464 View Post
    Too bad that it's so much fun doing things I am not supposed to do.
    I guess a Linux system would be a better playground for me.
    Think of it as a rite of passage. If you're not smart enough to work out how to bypass KPP, you shouldn't be touching that shit (read: hooking the kernel) to begin with.

  15. #15
    nitrogrlie's Avatar Member
    Reputation
    11
    Join Date
    Oct 2009
    Posts
    81
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cypher View Post
    It was general enough to bypass all usermode NtQueryVirtualMemory hooks. You would have to add extra hooks to defend against the method they used.

    I wan't using an IAT hook, I was using a detour. I planted an INT3 at the top of the function and used VEH to do the redirect so their API hashing scan couldn't be used.
    Heh, makes it sound like they re-loaded ntdll library from disk and bypassed you by over-writing your over-written code. They could have compared a checksum or even specific bytes. I guess they could have also specifically just over-written the int3 at top of function with a hardcoded "in-client" sequence of bytes if the intent was purely for LuaNinja detection. Anyways, just shooting of the hip, and you are right, there is methods against each one of those.

Page 1 of 2 12 LastLast

Similar Threads

  1. [SourceCode C#] Hook and Monitor of SendPacket
    By RivaLfr in forum WoW Memory Editing
    Replies: 23
    Last Post: 03-12-2022, 04:44 PM
  2. Need help hooking and injecting...
    By larcerkev in forum Programming
    Replies: 5
    Last Post: 03-27-2014, 01:50 PM
  3. Whats the best botting program for efficiency and detection prevention?
    By Voidshift in forum Diablo 3 Bots Questions & Requests
    Replies: 3
    Last Post: 04-16-2013, 04:34 PM
  4. Injection, Hooking and the Bottleneck
    By streppel in forum WoW Memory Editing
    Replies: 4
    Last Post: 12-21-2011, 03:06 PM
  5. Replies: 11
    Last Post: 12-23-2010, 09:30 PM
All times are GMT -5. The time now is 10:52 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