[source] C# Warden scanner menu

User Tag List

Results 1 to 8 of 8
  1. #1
    Wildbreath's Avatar Contributor
    Reputation
    162
    Join Date
    Feb 2012
    Posts
    121
    Thanks G/R
    2/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [source] C# Warden scanner

    After research a DarkLinux sources i ported scanner to C# with some changes.
    It works, but sometime crashes with random err codes (dunno why).
    (I included a executebuffer crap, delete it if not need, just only for testing)

    And yes, just remove patches before call original function and apply after - protection.

    PHP Code:
    using System;
    using System.Runtime.InteropServices;
    using System.Diagnostics;
    using System.Threading;

    namespace 
    OffSpring
    {
        class 
    Scan
        
    {
            [
    UnmanagedFunctionPointer(CallingConvention.Cdecl)]
            public 
    delegate IntPtr WardenDelegate(IntPtr ptruint adressuint len);

            [
    UnmanagedFunctionPointer(CallingConvention.Cdecl)]
            public 
    delegate void LuaExecuteBufferDelegate(string luastring fileNameuint pState);
            private static 
    LuaExecuteBufferDelegate LuaExecute;
            
            private static 
    uint baseAddress = (uint)Process.GetCurrentProcess().MainModule.BaseAddress;
            private static 
    uint moduleSize = (uint)Process.GetCurrentProcess().MainModule.ModuleMemorySize;
            
            public 
    Scan()
            {
                
    LuaExecute Memory.Instance.RegisterDelegate<LuaExecuteBufferDelegate>(baseAddress 0x50229);
                
    SearchWarden(new byte[] { 0x740x020xF30xA50xB10x030x230xCA });
            }

            private static 
    void makeDetour(uint ptr)
            {
                
    Memory.Instance.Detours.RemoveAll();
                
    Memory.Instance.Detours.CreateAndApply(Memory.Instance.RegisterDelegate<WardenDelegate>(ptr 0xE), new WardenDelegate(WardenCave), "WardenHook");
            }

            
    #region pattern scan
            
    private unsafe void SearchWarden(byte[] Signature)
            {
                
    uint currentAddr baseAddress;
                
    uint Max 0;
                
    int index 0;
                
    uint old;
                
    Win32.MEMORY_BASIC_INFORMATION mbi = new Win32.MEMORY_BASIC_INFORMATION();

                do
                {
                    
    Win32.VirtualQuery(ref currentAddrref mbisizeof(Win32.MEMORY_BASIC_INFORMATION));

                    if ((
    mbi.RegionSize <= 0x9000) && (mbi.State == 4096) && (mbi.Type == 131072))
                    {
                        if (
    Win32.VirtualProtect(currentAddrmbi.RegionSize0x40out old))
                        {
                            if (
    currentAddr Max)
                                return;
                            else
                                
    Max currentAddr;

                            for (
    int x = (int)currentAddr< (currentAddr mbi.RegionSize); x++)
                            {
                                if (*(
    byte*)== Signature[index])
                                    
    index++;
                                else
                                    
    index 0;

                                if (
    index >= Signature.Length)
                                {
                                    
    makeDetour((uint)(Signature.Length 1));
                                    return;
                                }
                            }
                        }
                    }
                    
    currentAddr += mbi.RegionSize;
                } while (
    true);
            }

            
    #endregion

            
    private static IntPtr WardenCave(IntPtr ptruint adressuint len)
            {
                if (
    adress baseAddress moduleSize)
                {
                    
    LuaExecute("print('found: |cffff00000x" + (adress baseAddress).ToString("X") + "|r, length: |cff00ff00" len.ToString() + "b|r')""mylua.lua"0);
                }
                return (
    IntPtr)Memory.Instance.Detours["WardenHook"].CallOriginal(ptradresslen);
            }
        }

    Last edited by Wildbreath; 03-05-2014 at 02:53 PM.

    [source] C# Warden scanner
  2. #2
    OMLinux's Avatar Private
    Reputation
    1
    Join Date
    Dec 2013
    Posts
    9
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Wildbreath View Post
    After research a DarkLinux sources i ported scanner to C# with some changes.
    Good job. Could you provide link to DarkLinux's original?

  3. #3
    WindGod's Avatar Member
    Reputation
    1
    Join Date
    Oct 2013
    Posts
    3
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Could you please share your sourcecode,If it's possible.Thanks.

  4. #4
    redcatH's Avatar Member
    Reputation
    2
    Join Date
    Sep 2012
    Posts
    29
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Complete code??

  5. #5
    namreeb's Avatar Legendary

    Reputation
    658
    Join Date
    Sep 2008
    Posts
    1,023
    Thanks G/R
    7/215
    Trade Feedback
    0 (0%)
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)
    What version of wow is this for?

  6. #6
    Wildbreath's Avatar Contributor
    Reputation
    162
    Join Date
    Feb 2012
    Posts
    121
    Thanks G/R
    2/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by namreeb View Post
    What version of wow is this for?
    actual, 5.4.7 17956. and yes, i fixed crashes (was removed a invalid patch, scanning works as intended)
    also remove a mbi.RegionSize, mbi.State and mbi.Type check.

  7. #7
    r00tman's Avatar Contributor
    Reputation
    174
    Join Date
    Dec 2006
    Posts
    253
    Thanks G/R
    3/1
    Trade Feedback
    7 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by OMLinux View Post
    Good job. Could you provide link to DarkLinux's original?
    DarkLiNuX Tech - EverScan ? An Open Source Warden Scanner

  8. #8
    Wildbreath's Avatar Contributor
    Reputation
    162
    Join Date
    Feb 2012
    Posts
    121
    Thanks G/R
    2/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    it works as charm, but sometime got crash wow without any seen errors. (warden module entry found and it's readmemory hooked, but when a hook called - wow crashing)
    i think it occured if warden is down (or sleep?) anyone known methods to check it?
    pattern is 74 02 F3 A5 B1 03 23 CA 74 02 F3 A4 5F 5E C3 55, right?

    upd: solved. was using a wrong offset to first warden function
    Last edited by Wildbreath; 03-22-2014 at 04:37 AM.

Similar Threads

  1. [Tool] EverScan - An Open Source Warden Scanner
    By DarkLinux in forum World of Warcraft Bots and Programs
    Replies: 20
    Last Post: 02-08-2017, 02:31 PM
  2. [Question] Warden Scanner and hooking
    By daCoder in forum WoW Memory Editing
    Replies: 41
    Last Post: 09-24-2012, 01:41 AM
  3. [Release] WardenMon : A Warden Scanner
    By DarkLinux in forum World of Warcraft Bots and Programs
    Replies: 47
    Last Post: 03-31-2012, 07:56 PM
  4. warden scanner.
    By lweid in forum WoW Memory Editing
    Replies: 6
    Last Post: 07-10-2011, 02:08 PM
  5. [Bot:Source] Acidic Bot Source Code
    By =sinister= in forum World of Warcraft Bots and Programs
    Replies: 10
    Last Post: 07-03-2006, 05:38 PM
All times are GMT -5. The time now is 02:41 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