What steps to safely inject and run your code? menu

User Tag List

Results 1 to 9 of 9
  1. #1
    Viano's Avatar Active Member
    Reputation
    37
    Join Date
    May 2008
    Posts
    172
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    What steps to safely inject and run your code?

    Hello there,

    I've been away for some time but would love to play around with live servers again.
    Blizzard seems to care more about protecting WoW from bots. So what is currently necessary to safely inject and run your code?
    I mean can you still execute your code inside FrameScriptExecute (was this the name back then?)? Is object manager still around? Can you enumerate objects around you? Do you have to unlink your module?

    What are the steps to hide your private program?
    Last edited by Viano; 08-06-2018 at 06:30 AM.
    Viano

    What steps to safely inject and run your code?
  2. Thanks jaczar (1 members gave Thanks to Viano for this useful post)
  3. #2
    Tambel's Avatar Member
    Reputation
    6
    Join Date
    Nov 2013
    Posts
    36
    Thanks G/R
    5/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I tried to hook some functions to get Lua state address and this worked but after ~1 min its crashed with segfault without clear reason. This can be some kind of protection or I just messed up with something like calling conventions and etc(99.999..% chance of second case).

    If you run Wow on linux with wine, you can use LD_PRELOAD or recompile wine`s "dxgi.dll" with modified Present and all you code will run as legit direcx library(in main thread) without injections and modifying of executable, but its still detectable, so I don’t think it have any significant advantage and I just consider this as a small bonus of linux usage

    P.S. Sowy for my engrish.
    Last edited by Tambel; 08-06-2018 at 08:17 AM.

  4. #3
    Viano's Avatar Active Member
    Reputation
    37
    Join Date
    May 2008
    Posts
    172
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm 100% on Windows and would like to load my dll into WoW and use DirectX hook to run inside main thread. Is it enough to unlink your module or do you have to avoid calling some functions additionally?
    Viano

  5. #4
    culino2's Avatar Elite User
    Reputation
    336
    Join Date
    Feb 2013
    Posts
    181
    Thanks G/R
    139/72
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Viano View Post
    I'm 100% on Windows and would like to load my dll into WoW and use DirectX hook to run inside main thread. Is it enough to unlink your module or do you have to avoid calling some functions additionally?
    Why not hooking WndProc instead to run your code inside the main-thread? To do pulse stuff I use SetTimer (set at some point in my WndProc hook), never had trouble with this way. They shouldn't detect private modules unless you do something that's detected...

  6. Thanks tutrakan (1 members gave Thanks to culino2 for this useful post)
  7. #5
    zys924's Avatar Active Member
    Reputation
    20
    Join Date
    Nov 2009
    Posts
    113
    Thanks G/R
    0/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by culino2 View Post
    Why not hooking WndProc instead to run your code inside the main-thread? To do pulse stuff I use SetTimer (set at some point in my WndProc hook), never had trouble with this way. They shouldn't detect private modules unless you do something that's detected...
    Setting a new WndProc can easily be detected by looking at GetWindowLong and check the return value's address range (whether in .text section). It is quite similar as the old WoW Lua C function address check. So the reason why you are not banned out of this is Blizzard is lazy to do this check.

  8. #6
    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 culino2 View Post
    Why not hooking WndProc instead to run your code inside the main-thread? To do pulse stuff I use SetTimer (set at some point in my WndProc hook), never had trouble with this way. They shouldn't detect private modules unless you do something that's detected...
    Good point. I should be worth to try something similar.
    Last edited by tutrakan; 08-08-2018 at 03:02 AM.

  9. #7
    Viano's Avatar Active Member
    Reputation
    37
    Join Date
    May 2008
    Posts
    172
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by culino2 View Post
    ...something that's detected...
    And what's that? Can I find out myself? Any hints?
    Viano

  10. #8
    culino2's Avatar Elite User
    Reputation
    336
    Join Date
    Feb 2013
    Posts
    181
    Thanks G/R
    139/72
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by zys924 View Post
    Setting a new WndProc can easily be detected by looking at GetWindowLong and check the return value's address range (whether in .text section). It is quite similar as the old WoW Lua C function address check. So the reason why you are not banned out of this is Blizzard is lazy to do this check.
    I'm pretty sure some legit software is using WndProc hooks too. A simple WndProc hook leading to unknown modules shouldn't be a ban reason for blizzard.
    Originally Posted by Viano View Post
    And what's that? Can I find out myself? Any hints?
    Warden should be a good start, can't tell you more at this point, I don't even updated my warden detours for x64 yet. I'm not aware of any call checks for x64 beside of the known page checks that lead into a crashes (ClntObjMgrGetActivePlayerObj()) if you don't do it correctly. Feel free to correct me here.

  11. #9
    ak48disk's Avatar Active Member
    Reputation
    30
    Join Date
    May 2014
    Posts
    7
    Thanks G/R
    0/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    dxgi hooks has some legitimate use cases such as reshade.

Similar Threads

  1. [Request] C# program to inject and run a lua file depending on class (+ Reward)
    By TheOzman in forum WoW Bots Questions & Requests
    Replies: 2
    Last Post: 05-14-2013, 04:34 AM
  2. [Guide] How to make money and raise your proffesion at a low level.
    By Dobbs in forum World of Warcraft Guides
    Replies: 5
    Last Post: 08-27-2010, 11:56 AM
  3. How To Automatically sort and manage your bags when botting/farming!
    By kentril in forum World of Warcraft Guides
    Replies: 20
    Last Post: 01-28-2010, 06:23 PM
  4. How to video, screenshot, and map your exploits/guides
    By kentril in forum Community Chat
    Replies: 6
    Last Post: 01-19-2010, 11:14 AM
  5. Replies: 5
    Last Post: 08-22-2009, 08:57 AM
All times are GMT -5. The time now is 08:05 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