• Amused
  • Angry
  • Annoyed
  • Awesome
  • Bemused
  • Cocky
  • Cool
  • Crazy
  • Crying
  • Down
  • Drunk
  • Embarrased
  • Enraged
  • Friendly
  • Geeky
  • Godly
  • Happy
  • Hateful
  • Hungry
  • Innocent
  • Meh
  • Piratey
  • Poorly
  • Sad
  • Secret
  • Shy
  • Sneaky
  • Tired
  • Wtf
  • At Work
  • CodenzHub
  • Coding
  • Deejaying
  • Donating
  • Drinking
  • Eating
  • Editing
  • Hacking
  • Hate Mailing
  • Jamin'
  • Lagging
  • Live Streaming
  • Lurking
  • No Status
  • Pawning
  • PC Gaming
  • PS Gaming
  • Raging
  • Reversing
  • Sleeping
  • Steam Gaming
  • Trolling
  • TwitchStreamer
  • Vodka!
  • Watching TV/Movie
  • Xbox Gaming
  • Youtuber
  • Zombies
  • Page 1 of 7 123 ... LastLast
    Results 1 to 10 of 66
    1. #1
      The Angel Of Verdun
      Always More To Code!
       
      Lurking
       
      Nether's Avatar
      Join Date
      Dec 2013
      Location
      England, SW
      Posts
      299
      Thanks (-->)
      54
      Thanks (<--)
      186

      Nether's C++ Memory Class V1.6

      John Kittz
      Hey Guys,

      here is my public memory class for C++, I do plan to release my polymorphic version but for now it will remain private due some external hacks being sold privately.

      I have added a lot of comments to the code, although I haven't 100% tested every function on here as I did mass updates and only tested what I needed, If anyone finds any problems with the class let me know and ill update it

      New Features:

      Return Size Of External Int/Char arrays
      Return Boolean Of Value Found/Not Found inside an array
      AOB Scan can tell if there is wildcards at the start of your array ( although no one ever does that its just a safety net for beginners ) [ this version still scans each byte manually instead of reading paged memory regions ]

      overall cleaner code, still no exception handling so just be careful how you use it, when i ultimately have free time and im bored ill update it if there is nothing else to do but i do have a lot of other work on right now


      How To:

      Rename "ProcMemH.txt to ProcMem.h"
      Rename "ProcMemCPP.txt to ProcMem.cpp"
      Move files into your project folder

      Initialize


      Credits:

      Fleep - Provided Method For Hotkeys To Activate Only Once When Pushed.
      AgentSmith - Opened My Eyes To A Lot Of Things I Was Doing Wrong And Steered Me In The Right Direction.
      NTValk - Helped Me When I Posted For Help On GH (Was Awhile Ago, Still Deserves Credit As This Has Been A Journey Of Learning And Everything Helps).
      Agent Smith - Provided Me With Some Very Useful Pages For Learning And Helped Me Get A Better Understanding Of The Language.
      Random Posts On GuidedHacking From Members, I Was Able To Pick Up A Few Things From These Threads/Posts.
      Everyone At GuidedHacking Who Supported Me.

      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      Features:

      Read & Write Memory (Pointer Support)
      AOB Scan - Scan An Area Of Memory For An Address With Specific Bytes
      Patch - Patch OpCodes
      Code Injection - Allocate A Random Area Of Memory To Write A Jmp/Call (Codecave)

      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      Usage:

      //Declarations
      ProcMem mem; //Declare Class Object
      mem.GetProcess("Process.exe");//Declare Game
      DWORD Base = mem.Module("client.dll") ;//Get Module Base Of Client.dll

      //Basic Memory Functions
      mem.Read<int>(0x76999A1); //Basic Read Memory (You Must Declare What Type/Size Of Data You Are Reading <short> | <2> etc)
      mem.Read<int>(Base+0x3699B); //Process.exe+0x3699B (Using Base)
      mem.Write<int>(0x76999A1, 1337); //Basic Write
      mem.Write<float>(Base+0x3699B, 13.37); //Example Of Writing A <float>

      //Pointer Memory Functions
      mem.Read<int>(0x76999A1, "\x2C\x5B\*", true); //Input Offsets In Order As Char* | ATTENTION: MUST ALWAYS Put '*' At The End Of Your Array (true)RETURNS THE ADDRESS
      mem.Read<int>(Base+0x3699B, "\x2C\x5B\*", false); //(false)RETURNS THE VALUE
      mem.Write<int>(Base+0x3699B, "\x2C\x5B\*", 1337);

      //Patch Memory Function
      mem.Patch(0x76999A1, "\x90\x90\x90\*", "\x4B\x0\x8F\*"); //Input The Bytes You Want To Patch And Also The Default Bytes
      mem.Patch(Base+0x3699B, "\x90\x90\x90\*", "\x4B\x0\x8F\*"); //Process.exe+0x3699B (Using Base)

      //AOB Scan Function
      DWORD dwAOBAddress = mem.AOB_Scan(0x76999A1, 0x76999C1, "\x8B\x3C\x28\xDD\*", true); //Start Scan At Address 0x76999A1 And Read Every Byte From There To 0x76999C1, Looking For Char* Array (Returns Address)
      DWORD dwAOBAddress1 = mem.AOB_Scan(Base+0x6999A1, Base+0x6999C1, "\x8B\x3C\x28\xDD\*", false); //false = Returns Address After Searched Bytes
      mem.Write<int>(AOBAddress, 1337); //Example Of Usage
      mem.Write<int>(AOBAddress1, 1337); //Example Of Usage

      //AOB Scan With Pointers
      DWORD dwStartAddy = mem.readP<int>(0x76999A1, "\x2C\x5B\*", false);
      DWORD dwEndAddy = mem.readP<int>(0x76999A1, "\xB2\x68\x8B\*", false);
      DWORD dwAOBAddress = mem.AOB_Scan(StartAddy, EndAddy, "\x8B\x3C\x28\xDD\*", true);

      //Code Injection Function (Codecave)
      mem.Inject(Base+0x1C8B39, "\xC7\x86\x84\x1\x0\x0\x0\x0\x0\x0\*", "\x89\xBE\x84\x1\x0\x0\*", true); //Input Bytes To Write/Inject Followed By The Default Bytes At The Address (Use CE AA Script To Get Bytes) (true = JMP)
      mem.Inject(0x38B39, "\xC7\x86\x84\x1\x0\x0\x0\x0\x0\x0\*", "\x89\xBE\x84\x1\x0\x0\*", false); //Call Jmp Function (false) [Has Not Been Fully Tested]

      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      Notes:

      Compile As Release
      When Compiling Check You Are Building The Correct Build (x64 | x32) For The Target Process.
      Do Not Have 2x Inject Functions In A Row (They Will Conflict), Have Them In Seperate Statements.
      When Using The Patch Or Inject Function, Have Them Set To A Hotkey So You Can Turn On/Off.
      You Can Use Pointers With The AOB Scan/Patch/Inject Functions, Adapt The AOB Scan Example For Others.
      I Aim To Release A Tutorial For Creating A Memory Class Before Moving Onto Creating Dll's - Still Have Few More Updates For This Class (Mainly Comments + Code Improvments).
      Attached Files Attached Files
      Last edited by Spock; 07-17-2014 at 12:38 PM.

    2. #2
      Hacker
      Retired
       
      Pawning
       
      Crazywink's Avatar
      Join Date
      Jul 2012
      Location
      US
      Posts
      647
      Thanks (-->)
      111
      Thanks (<--)
      226
      Beautiful, thanks for the share Nether. Approved.

    3. Thanks Nether, [GH]Rake thanked for this post
    4. #3
      Newbie
      Marijuana'in
       
      At Work
       
      MJZombieMan's Avatar
      Join Date
      Jul 2014
      Posts
      11
      Thanks (-->)
      13
      Thanks (<--)
      5
      This is awesome! Thanks! I like the object oriented programming. I suck at conceptualizing objects, it's like a brain barrier haha. But this will make code much cleaner!

      What is different with the polymorphic version? How does that work? I've never been 100% clear on polymorphism.

    5. #4
      Coder
      Every life is just a complex
      C++ code.
       
      Coding
       
      TYPEX's Avatar
      Join Date
      Aug 2013
      Location
      127.0.0.1
      Posts
      105
      Thanks (-->)
      43
      Thanks (<--)
      13
      Quote Originally Posted by MJZombieMan View Post
      This is awesome! Thanks! I like the object oriented programming. I suck at conceptualizing objects, it's like a brain barrier haha. But this will make code much cleaner!

      What is different with the polymorphic version? How does that work? I've never been 100% clear on polymorphism.
      Polymorphism is the ability of the derived class to share common functionality with the base class, but it still defines its unique behavior.
      It allows an object of the derived class to be treated as an object of the base class. When the function is called in runtime, it finds his type and the appropriate function is called from the derived class.
      "So much work to do... so little time..."

      Nether's C++ Memory Class V1.6

      // Hacking With Style

      Nether's C++ Memory Class V1.6

    6. Thanks MJZombieMan thanked for this post
    7. #5
      Coder
      Learning to hack games!
       
      Trolling
       
      Luciz's Avatar
      Join Date
      Jul 2014
      Posts
      101
      Thanks (-->)
      22
      Thanks (<--)
      9
      Nether's C++ Memory Class V1.6
      help pls

    8. #6
      The Angel Of Verdun
      Always More To Code!
       
      Lurking
       
      Nether's Avatar
      Join Date
      Dec 2013
      Location
      England, SW
      Posts
      299
      Thanks (-->)
      54
      Thanks (<--)
      186
      Quote Originally Posted by Luciz View Post
      Nether's C++ Memory Class V1.6
      help pls
      You need to change your character set to Multi-Byte: Project> Property Pages>Configuration Properties>General>Character Set = Use Multi-Byte Character Set
      No Need For Anything Extravagant, Your Blood As A Present Shall Suffice.

    9. Thanks Luciz thanked for this post
    10. #7
      The Angel Of Verdun
      Always More To Code!
       
      Lurking
       
      Nether's Avatar
      Join Date
      Dec 2013
      Location
      England, SW
      Posts
      299
      Thanks (-->)
      54
      Thanks (<--)
      186
      Credits:

      Fleep - Provided Method For Hotkeys To Activate Only Once When Pushed.
      AgentSmith - Opened My Eyes To A Lot Of Things I Was Doing Wrong And Steered Me In The Right Direction.
      NTValk - Helped Me When I Posted For Help On GH (Was Awhile Ago, Still Deserves Credit As This Has Been A Journey Of Learning And Everything Helps).
      Agent Smith - Provided Me With Some Very Useful Pages For Learning And Helped Me Get A Better Understanding Of The Language.
      Random Posts On GuidedHacking From Members, I Was Able To Pick Up A Few Things From These Threads/Posts.
      Everyone At GuidedHacking Who Supported Me.

      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      Features:

      Read & Write Memory (Pointer Support)
      AOB Scan - Scan An Area Of Memory For An Address With Specific Bytes
      Patch - Patch OpCodes
      Code Injection - Allocate A Random Area Of Memory To Write A Jmp/Call (Codecave)

      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      Usage:

      //Declarations
      ProcMem mem; //Declare Class Object
      mem.GetProcess("Process.exe");//Declare Game
      DWORD Base = mem.Module("client.dll") ;//Get Module Base Of Client.dll

      //Basic Memory Functions
      mem.Read<int>(0x76999A1); //Basic Read Memory (You Must Declare What Type/Size Of Data You Are Reading <short> | <2> etc)
      mem.Read<int>(Base+0x3699B); //Process.exe+0x3699B (Using Base)
      mem.Write<int>(0x76999A1, 1337); //Basic Write
      mem.Write<float>(Base+0x3699B, 13.37); //Example Of Writing A <float>

      //Pointer Memory Functions
      mem.Read<int>(0x76999A1, "\x2C\x5B\*", true); //Input Offsets In Order As Char* | ATTENTION: MUST ALWAYS Put '*' At The End Of Your Array (true)RETURNS THE ADDRESS
      mem.Read<int>(Base+0x3699B, "\x2C\x5B\*", false); //(false)RETURNS THE VALUE
      mem.Write<int>(Base+0x3699B, "\x2C\x5B\*", 1337);

      //Patch Memory Function
      mem.Patch(0x76999A1, "\x90\x90\x90\*", "\x4B\x0\x8F\*"); //Input The Bytes You Want To Patch And Also The Default Bytes
      mem.Patch(Base+0x3699B, "\x90\x90\x90\*", "\x4B\x0\x8F\*"); //Process.exe+0x3699B (Using Base)

      //AOB Scan Function
      DWORD dwAOBAddress = mem.AOB_Scan(0x76999A1, 0x76999C1, "\x8B\x3C\x28\xDD\*", true); //Start Scan At Address 0x76999A1 And Read Every Byte From There To 0x76999C1, Looking For Char* Array (Returns Address)
      DWORD dwAOBAddress1 = mem.AOB_Scan(Base+0x6999A1, Base+0x6999C1, "\x8B\x3C\x28\xDD\*", false); //false = Returns Address After Searched Bytes
      mem.Write<int>(AOBAddress, 1337); //Example Of Usage
      mem.Write<int>(AOBAddress1, 1337); //Example Of Usage

      //AOB Scan With Pointers
      DWORD dwStartAddy = mem.readP<int>(0x76999A1, "\x2C\x5B\*", false);
      DWORD dwEndAddy = mem.readP<int>(0x76999A1, "\xB2\x68\x8B\*", false);
      DWORD dwAOBAddress = mem.AOB_Scan(StartAddy, EndAddy, "\x8B\x3C\x28\xDD\*", true);

      //Code Injection Function (Codecave)
      mem.Inject(Base+0x1C8B39, "\xC7\x86\x84\x1\x0\x0\x0\x0\x0\x0\*", "\x89\xBE\x84\x1\x0\x0\*", true); //Input Bytes To Write/Inject Followed By The Default Bytes At The Address (Use CE AA Script To Get Bytes) (true = JMP)
      mem.Inject(0x38B39, "\xC7\x86\x84\x1\x0\x0\x0\x0\x0\x0\*", "\x89\xBE\x84\x1\x0\x0\*", false); //Call Jmp Function (false) [Has Not Been Fully Tested]

      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

      Notes:

      Compile As Release
      When Compiling Check You Are Building The Correct Build (x64 | x32) For The Target Process.
      Do Not Have 2x Inject Functions In A Row (They Will Conflict), Have Them In Seperate Statements.
      When Using The Patch Or Inject Function, Have Them Set To A Hotkey So You Can Turn On/Off.
      You Can Use Pointers With The AOB Scan/Patch/Inject Functions, Adapt The AOB Scan Example For Others.
      I Aim To Release A Tutorial For Creating A Memory Class Before Moving Onto Creating Dll's - Still Have Few More Updates For This Class (Mainly Comments + Code Improvments).

      @Agent Smith - can you replace the code in the first post with this, Ill add more documentation later
      Last edited by Nether; 07-17-2014 at 12:24 PM.
      No Need For Anything Extravagant, Your Blood As A Present Shall Suffice.

    11. #8
      Learning to hack games!
       
      Feeling Normal
       
      's Avatar
      Join Date
      Jan 1970
      Posts
      0
      Thanks (-->)
      294
      Thanks (<--)
      328
      Quote Originally Posted by Nether View Post
      #include "ProcMem.h"

      ProcMem mem;

      using namespace std;

      int main()
      {
      //now you can use the object mem to access all the functions inside ProcMem
      mem.Process("csgo.exe");
      DWORD Base = mem.Module("client.dll");

      mem.write<int>(Base+0x1337, 9999); //so if health is at client.dll+1337 you have just set it to 9999, easy :)
      mem.write<int>(Base+0x1337, "\x5F\x2A\x6F\*", 55); // just wrote 55 to a pointer using the base
      return 0;
      }

      @Agent Smith - can you replace the code in the first post with this, Ill add more documentation later
      Done.

    12. #9
      Newbie
      Learning to hack games!
       
      Feeling Normal
       
      chargerfox's Avatar
      Join Date
      Jul 2014
      Posts
      2
      Thanks (-->)
      1
      Thanks (<--)
      0
      Thanks for your class, I was very useful, but I have a problem, I think I'm doing something wrong:

                  float ptr = mem.Read<float>(0x165fc68,"\x20\*",true); //0x165fc68 is a POINTER
      char str[10];
      sprintf(str, "%f", ptr);
      // when run dll, ptr is = 0.0000


      Click image for larger version. 

Name:	Sin título-2.jpg 
Views:	24 
Size:	116.5 KB 
ID:	2721Click image for larger version. 

Name:	Sin título-22.jpg 
Views:	20 
Size:	87.5 KB 
ID:	2722

      When Inject the .dll the variable ptr is 0, With other addresses I have had no problems. 0x165fc68 is a pointer, no an address, that is wrong?
      Sorry for my English. Spanish better.

      THANKS AGAIN.

    13. #10
      The Angel Of Verdun
      Always More To Code!
       
      Lurking
       
      Nether's Avatar
      Join Date
      Dec 2013
      Location
      England, SW
      Posts
      299
      Thanks (-->)
      54
      Thanks (<--)
      186
      Cheats'n'Trainers
      Quote Originally Posted by chargerfox View Post
      Thanks for your class, I was very useful, but I have a problem, I think I'm doing something wrong:

                  float ptr = mem.Read<float>(0x165fc68,"\x20\*",true); //0x165fc68 is a POINTER
      char str[10];
      sprintf(str, "%f", ptr);
      // when run dll, ptr is = 0.0000


      Click image for larger version. 

Name:	Sin título-2.jpg 
Views:	24 
Size:	116.5 KB 
ID:	2721Click image for larger version. 

Name:	Sin título-22.jpg 
Views:	20 
Size:	87.5 KB 
ID:	2722

      When Inject the .dll the variable ptr is 0, With other addresses I have had no problems. 0x165fc68 is a pointer, no an address, that is wrong?
      Sorry for my English. Spanish better.

      THANKS AGAIN.
      because this is not meant for dll injection and if its just one pointer level you need to do .

      float ptr = mem.Read<float>(0x165fc68 + 0x20); //0x165fc68 is a POINTER


      but internally:

      float ptr = *(int*)(0x165fc68 + 0x20)
      No Need For Anything Extravagant, Your Blood As A Present Shall Suffice.

    Page 1 of 7 123 ... LastLast

    Similar Game Hacker Threads

    1. [Help] Nether's Memory Class Error
      By mr0dd in forum C/C++
      Replies: 9
      Last Post: 03-02-2015, 08:36 PM
    2. [Source Code] Nether's V1.5 C++ Memory Class
      By Nether in forum Tutorials and Snippets
      Replies: 6
      Last Post: 03-05-2014, 12:21 PM
    3. [Source Code] Nether's V1.4 C++ Memory Class
      By Nether in forum Tutorials and Snippets
      Replies: 11
      Last Post: 01-31-2014, 08:27 AM
    4. [Source Code] Nether's VB Memory Class
      By Nether in forum Visual Basic
      Replies: 0
      Last Post: 01-25-2014, 07:24 PM
    5. [Source Code] Nether's C++ Console V1.3 Memory Class
      By Nether in forum Tutorials and Snippets
      Replies: 2
      Last Post: 01-17-2014, 04:17 PM

    Tags for this Thread