Results 1 to 10 of 10
  1. #1
    hairybastard's Avatar
    Join Date
    Oct 2015
    Gender
    male
    Posts
    3
    Reputation
    10
    Thanks
    2

    Lightbulb Useful functions to hook for internal hack

    Hi guys,

    I've been reading around the work done on hacking CSGO so far, and there's quite a mess of information. It seems that most of the stuff built for it is "external"? In other words, the code behind it isn't designed to be injected - instead it reads/writes memory addresses as another process, and renders on top of the game. That's what I gathered with the bunch of mem.read/write calls in there.

    I'm looking to build an "internal" one - one that uses the game's engine to recognize models, render, etc. (Different ESPs kind of thing is the end-goal, but I'm not looking for a finished project.) So that makes all those examples useless - and they seem to be most of the examples around the place.
    After a day of reading around what I'm still unsure about is which functions in the game are the interesting ones - both to hook, and to call for parsing through entities and rendering on top of them. Last time I did this it was COD4, so I'm guessing it's similar for CSGO.

    The only one I've seen come up quite a few times was this:
    Code:
    ClientModeShared::CreateMove(float, CUserCmd*)
    I've seen people trying to hook this all over the place, but not why. Hooking it is easy, but what is it useful for? What does it do? Is that the right starting point? Is this where I should be getting access to world entities (somehow), parsing them and rendering?

    Thanks for any insight you guys can give.

  2. The Following User Says Thank You to hairybastard For This Useful Post:

    DadDelta (10-23-2015)

  3. #2
    Orinion77's Avatar
    Join Date
    Jan 2013
    Gender
    male
    Posts
    140
    Reputation
    10
    Thanks
    47
    My Mood
    Relaxed
    Internals are harder to code, and harder to make undetected again. Thats why there are so few public.
    For drawing hook"PaintTraverse"
    For aimbot and movement stuff hook "CreateMove" (in Clientmode or in client)
    For noVisualReoil you could hook "FrameStageNotify"
    Why hook CreateMove? thats the function getting called every tick. The usercmd is send to the server, and when hooking Createmove, can be modifyed. That way you can achieve silent aim.
    Have fun

  4. The Following User Says Thank You to Orinion77 For This Useful Post:

    hairybastard (10-25-2015)

  5. #3
    hairybastard's Avatar
    Join Date
    Oct 2015
    Gender
    male
    Posts
    3
    Reputation
    10
    Thanks
    2
    That's a perfect summary of everything I needed to know. Thanks so much.

    The last question I have is with PaintTraverse. There are two in the symbol list:
    C_CSRootPanel::PaintTraverse(bool, bool)
    vgui::Panel::PaintTraverse(bool, bool)

    The first one seems to be a small "wrapper" style function that calls the second one, and the second one has quite a lot of code. Is it the second one I should be hooking for drawing stuff, or the first one?

    Thanks,

  6. The Following User Says Thank You to hairybastard For This Useful Post:

    DadDelta (10-27-2015)

  7. #4
    Orinion77's Avatar
    Join Date
    Jan 2013
    Gender
    male
    Posts
    140
    Reputation
    10
    Thanks
    47
    My Mood
    Relaxed
    Quote Originally Posted by hairybastard View Post
    That's a perfect summary of everything I needed to know. Thanks so much.

    The last question I have is with PaintTraverse. There are two in the symbol list:
    C_CSRootPanel::PaintTraverse(bool, bool)
    vgui::Panel::PaintTraverse(bool, bool)

    The first one seems to be a small "wrapper" style function that calls the second one, and the second one has quite a lot of code. Is it the second one I should be hooking for drawing stuff, or the first one?

    Thanks,
    vgui::IPanel::PaintTravers(unsigned int vguiPanel, bool forceRepaint, bool allowForce), Index 41.
    Check if the act Panel is named "FocusOverlayPanel", and draw on that.

  8. The Following User Says Thank You to Orinion77 For This Useful Post:

    hairybastard (10-26-2015)

  9. #5
    rwby's Avatar
    Join Date
    Jul 2015
    Gender
    male
    Location
    client.dll
    Posts
    1,631
    Reputation
    142
    Thanks
    6,724
    Quote Originally Posted by Orinion77 View Post
    Internals are harder to code, and harder to make undetected again. Thats why there are so few public.
    For drawing hook"PaintTraverse"
    For aimbot and movement stuff hook "CreateMove" (in Clientmode or in client)
    For noVisualReoil you could hook "FrameStageNotify"
    Why hook CreateMove? thats the function getting called every tick. The usercmd is send to the server, and when hooking Createmove, can be modifyed. That way you can achieve silent aim.
    Have fun
    You are somewhat correct he did detail what hooks do this or do that. But one thing considered Internal can be much easier then external depending on the programmer and what he desires.

    You can also achieve some stuff like chams by doing DrawModelExecute or hooking RecVProp to accomplish something like knife changer or fixing sequences on knifes. If hooking RecVProp isnt your type of thing then you can also use FindMDL.

  10. #6
    hairybastard's Avatar
    Join Date
    Oct 2015
    Gender
    male
    Posts
    3
    Reputation
    10
    Thanks
    2
    Quote Originally Posted by rwby View Post
    You are somewhat correct he did detail what hooks do this or do that. But one thing considered Internal can be much easier then external depending on the programmer and what he desires.

    You can also achieve some stuff like chams by doing DrawModelExecute or hooking RecVProp to accomplish something like knife changer or fixing sequences on knifes. If hooking RecVProp isnt your type of thing then you can also use FindMDL.
    Thanks, I personally prefer the internal route so I'll try and build something for that first. Appreciate the input on additional useful functions/entry-points!

  11. #7
    rwby's Avatar
    Join Date
    Jul 2015
    Gender
    male
    Location
    client.dll
    Posts
    1,631
    Reputation
    142
    Thanks
    6,724
    Quote Originally Posted by hairybastard View Post
    Thanks, I personally prefer the internal route so I'll try and build something for that first. Appreciate the input on additional useful functions/entry-points!
    All of what i said is Internal.

  12. The Following User Says Thank You to rwby For This Useful Post:

    hairybastard (10-28-2015)

  13. #8
    viking911's Avatar
    Join Date
    Mar 2015
    Gender
    male
    Location
    ViKiNGHOOK
    Posts
    214
    Reputation
    10
    Thanks
    2,219
    My Mood
    Devilish
    Quote Originally Posted by Orinion77 View Post
    Internals are harder to code, and harder to make undetected again.
    Nope, and nope.
    Internal is actually easier to make.
    FAKEEDGEBOY$ - B4RB0$$4

  14. #9
    Orinion77's Avatar
    Join Date
    Jan 2013
    Gender
    male
    Posts
    140
    Reputation
    10
    Thanks
    47
    My Mood
    Relaxed
    Quote Originally Posted by viking911 View Post
    Nope, and nope.
    Internal is actually easier to make.
    This is not the correct place to discuss this, but yes they are unless you are a stupid c+p skid and use a public sdk which you will have to update (nearly) every patch. Otherwise you will have to reclass the whole thing, which will take a lot of time, while when using externals you will only have to get a sig off an offset and you got it. Ofcourse you are limited bla bla bla

  15. #10
    gtaplayer2's Avatar
    Join Date
    Aug 2013
    Gender
    male
    Location
    Dancing with my kawaii friend
    Posts
    588
    Reputation
    22
    Thanks
    1,984
    Quote Originally Posted by Orinion77 View Post
    This is not the correct place to discuss this, but yes they are unless you are a stupid c+p skid and use a public sdk which you will have to update (nearly) every patch. Otherwise you will have to reclass the whole thing, which will take a lot of time, while when using externals you will only have to get a sig off an offset and you got it. Ofcourse you are limited bla bla bla
    U wot m8? I have had same copy pasted hack for 3 months never had to update it.

Similar Threads

  1. [Help Request] How to make a hook for d3d9 hack game
    By blaztphoenix in forum C++/C Programming
    Replies: 3
    Last Post: 07-02-2014, 12:45 PM
  2. Using GDI functions on hooked Direct3D applications?
    By ThePro in forum General Game Hacking
    Replies: 1
    Last Post: 07-22-2010, 04:46 PM
  3. Can you use a working hack as a Bypass for another hack?
    By omlan in forum Combat Arms Discussions
    Replies: 2
    Last Post: 01-12-2010, 01:41 AM
  4. uses for moonwalk hack?
    By doommach in forum Combat Arms Discussions
    Replies: 25
    Last Post: 11-10-2009, 02:55 AM
  5. Tutorial - How to use Visual Basics 6 (vb6) for WarRock hacks
    By Oneirish in forum Visual Basic Programming
    Replies: 17
    Last Post: 05-26-2008, 07:24 AM