Preventing detection of CLR/.NET DLLs? menu

Shout-Out

User Tag List

Results 1 to 9 of 9
  1. #1
    Kanyle's Avatar Corporal
    Reputation
    9
    Join Date
    Jul 2011
    Posts
    19
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Preventing detection of CLR/.NET DLLs?

    This isn't related to WoW but another MMORPG called Conquer Online (terrible, I know). Anyhow, it seems like they specifically look for CLR/.NET DLLs in the game process and disconnects and bans you if they find that the CLR is being hosted in the game process.

    Basically I want to know what methods a process can use to check for this? I assume they're just enumerating DLLs to look for mscoree.dll etc, but I could be wrong. Injecting a native DLL does not get me banned.

    If they're enumerating DLLs they must not be using Toolhelp32 though, as I've already tried hooking Module32First/Next without success.

    Any suggestions?

    Preventing detection of CLR/.NET DLLs?
  2. #2
    573737534947's Avatar Corporal
    Reputation
    38
    Join Date
    Jul 2013
    Posts
    20
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    There is EnumProcessModules for example. Then they could call their functions deeper worst case with syscalls, though at least syscalls strike me as unlikely. LdrQueryProcessModuleInformation is worth your consideration for instance. Then they could be using a different approach like pattern scanning. On that front you could start with injecting your module and covering it with a memory bp. See if something reads from it.

  3. #3
    TOM_RUS's Avatar Legendary
    Reputation
    914
    Join Date
    May 2008
    Posts
    699
    Thanks G/R
    0/52
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Blizzard's Warden enumerates memory pages with VirtualQuery(Ex?) and then hashes small amount of bytes starting at specific offset. But that is used for detecting hack modules, not system ones.

  4. #4
    Master674's Avatar Elite User
    Reputation
    487
    Join Date
    May 2008
    Posts
    578
    Thanks G/R
    2/23
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by TOM_RUS View Post
    Blizzard's Warden enumerates memory pages with VirtualQuery(Ex?) and then hashes small amount of bytes starting at specific offset. But that is used for detecting hack modules, not system ones.
    I think it was VirtualQuery for WoW and VirtualQueryEx for Diablo Warden.

  5. #5
    Kanyle's Avatar Corporal
    Reputation
    9
    Join Date
    Jul 2011
    Posts
    19
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I still can't quite figure out what's getting me detected. I've tried hooking Module32First/Next as well as VirtualQueryEx. I have even tried "unlinking" those modules from the PEB LoaderData list just to see if it had an effect, but I'm still getting disconnected + banned.

    They are not using psapi, and it isn'tbecause of my hooks either, as I am certain they don't look for modifications to anything other than their own module(s), and I'm not patching any of their code.

    Client uses a ton of anti-debugging shit, too. I'm getting banned shortly after debugging it even with ollydbg plugins.

    Might just drop the .NET library idea and go with D

  6. #6
    Bananenbrot's Avatar Contributor
    Reputation
    153
    Join Date
    Nov 2009
    Posts
    384
    Thanks G/R
    1/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Kanyle View Post
    I still can't quite figure out what's getting me detected. I've tried hooking Module32First/Next as well as VirtualQueryEx. I have even tried "unlinking" those modules from the PEB LoaderData list just to see if it had an effect, but I'm still getting disconnected + banned.

    They are not using psapi, and it isn'tbecause of my hooks either, as I am certain they don't look for modifications to anything other than their own module(s), and I'm not patching any of their code.

    Client uses a ton of anti-debugging shit, too. I'm getting banned shortly after debugging it even with ollydbg plugins.

    Might just drop the .NET library idea and go with D
    +1 for D I'd be interested in how it works for you.

  7. #7
    kosacid's Avatar Active Member
    Reputation
    19
    Join Date
    May 2009
    Posts
    127
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    its maybe looking at what`s attached to the exe stuff like xfire that patch into the game pass anything else fails its easy to do and effective you can try calling your dll the same name as xfire hook see if it passes

  8. #8
    Jadd's Avatar 🐸 Premium Seller
    Reputation
    1515
    Join Date
    May 2008
    Posts
    2,433
    Thanks G/R
    81/336
    Trade Feedback
    1 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Bananenbrot View Post
    +1 for D I'd be interested in how it works for you.
    I'd be interested to learn D but the naming conventions for their std functions is so unpleasant to read IMO. It makes me want to not use it.

  9. #9
    Bananenbrot's Avatar Contributor
    Reputation
    153
    Join Date
    Nov 2009
    Posts
    384
    Thanks G/R
    1/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Jadd View Post
    I'd be interested to learn D but the naming conventions for their std functions is so unpleasant to read IMO. It makes me want to not use it.
    Yeah, there are some of them which aren't that well named.
    Some others aren't even expressive enough to unambigously infer what they do, e.g. the recent discussion on "TypeTuple".

    Ranges beat everything else though. std.algorithm is already pleasing to use and compile time is just incredibly short with dmd.
    They are using it as a scripting language at Remedy Games and were amazed by the quick turnaround times, although it compiles to bare metal.

    Another gem would be Rust, but I refuse to touch it until 1.0.

Similar Threads

  1. C# .NET Dll Injector
    By adaephon in forum WoW Memory Editing
    Replies: 18
    Last Post: 01-02-2013, 09:12 PM
  2. Replies: 0
    Last Post: 03-31-2012, 08:32 AM
  3. [Revert] Patch 7 Diablo III.exe and battle.net.dll
    By madkilah28 in forum Diablo 3 General
    Replies: 0
    Last Post: 12-19-2011, 05:43 AM
  4. exit/unload injected .net dll
    By YetiHunter in forum Programming
    Replies: 5
    Last Post: 02-28-2010, 06:57 AM
  5. Destructor's Tutorial: Managed .NET DLL Injection
    By ugkbunb in forum Programming
    Replies: 1
    Last Post: 07-30-2009, 05:15 PM
All times are GMT -5. The time now is 01:46 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