General Discussions

Page 1 of 1
Signup or Login to Post
General Game Hacking/Editing Help Needed
  • Current rank: 1 Star. Next Rank at 100 Posts.
    Send a message to Q13allz420
    CHEATMASTER
    Q13allz420 posted on Nov 19, 2020 6:50:44 AM - Report post
     
    Hi am new at the game hacking/editing scene. I have created some fairly decent cheat engine tables for my own personal use over the years. However I would love to get a better understanding of the more advanced techniques used in CT and trainer making such as AOB Scans, Assembly Coding, and LUA scripting to name a few. Any and all suggestions tips and guides/tutorials welcome and appreciated. Also if you want to link me to some CT's I can play around with and learn from that would be great.

    P.S. I did make a previous post similar to this one requesting help making Halo MCC cheats but I feel this is a different subject so I hope I'm not overstepping or breaking any rules posting this here.
  • Trainer Maker
    Send a message to 0x90
    STAFF
    0x90 posted on Nov 19, 2020 9:37:11 AM - Report post
     
    Assembly is just a representation of bytes to make them readable for you. Without AOB scan you basically inject you code always to the same location in the DLL for example. In Cosmos or CE scripts its usually something like

    Game.dll+500:
    //assembly code here

    Now if the game.dll is different for example due to a patch. The location you want to inject to might not be at +500 but at +700. Writing still to +500 causes a crash as you overwrite the wrong code with your injection.

    AOB scan uses the fact that assembly is representation of bytes. It takes the bytes (of the instructions / assembly) around your injection spot until its unique. Then it scans the game.dll for this pattern. If the dll changes and your code is now at +700, AOB scan finds it and injects there.

    For assembly coding you have to understand the most common mnemonics like MOV, CMP, FLD, etc. which you can find for example here: Link and you have to understand what debugger registers (AX/EAX/RAX) are and how they are used and like most languages you learn it the best way by reading. Take game of your choice, use the debugger to find the game function you are interested it and then try to read what each assembly line does. Once you can read it, you know how to modify it. At the beginning you have to often look up something but that's fine. The more you are using it, the less you need to look up.

    If you are completely new and don't know where to start make it easy and take a Youtobe tutorial of someone doing such a thing "live". Then redo his steps, just to get the feeling. At the end of the video, redo again but this time without the video. Repeat until you feel safe. Try to adopt the way on another game. You may fail, take a different game then. The older the game, the easier they are to cheat.
  • Trainer Maker
    Send a message to 0x90
    STAFF
    0x90 posted on Nov 19, 2020 9:49:25 AM - Report post
     
    Making cheats require practice practice practice. And EVERY game is different. For every game you have to start from scratch and run into new issues. It's not like learning to drive, once you learned it you can drive every car or bicycle. You have to like challenges, looking for solutions, wanting to solve something that seems impossible. The first steps are hard, then you feel like you can cheat every game out there. And finally it becomes hard again when you encounter some very rare scenarios nobody wrote a tutorial for, such as custom anti cheats. Scripted games. Games written in Java. Emulators, CRC scanners. But don't worry, many cheaters gave up at this point and take another game. So it's not a shame if you fail the last step. Keep in mind, it has to make fun.

    Regarding LUA, well that's easy. LUA is just another programming language. It has nothing to do with Cosmos or Cheatengine. Both only provides you some APIs you can use. But in order to learn more about LUA, there are many many guides and videos out there. It's a very simple and easy to learn language that's why its perfect and often used for extensions / plugins.
  • Current rank: 1 Star. Next Rank at 100 Posts.
    Send a message to Q13allz420
    CHEATMASTER
    Q13allz420 posted on Nov 19, 2020 9:50:40 AM - Report post
     
    quote:
    originally posted by 0x90

    Assembly is just a representation of bytes to make them readable for you. Without AOB scan you basically inject you code always to the same location in the DLL for example. In Cosmos or CE scripts its usually something like

    Game.dll+500:
    //assembly code here

    Now if the game.dll is different for example due to a patch. The location you want to inject to might not be at +500 but at +700. Writing still to +500 causes a crash as you overwrite the wrong code with your injection.

    AOB scan uses the fact that assembly is representation of bytes. It takes the bytes (of the instructions / assembly) around your injection spot until its unique. Then it scans the game.dll for this pattern. If the dll changes and your code is now at +700, AOB scan finds it and injects there.

    For assembly coding you have to understand the most common mnemonics like MOV, CMP, FLD, etc. which you can find for example here: Link and you have to understand what debugger registers (AX/EAX/RAX) are and how they are used and like most languages you learn it the best way by reading. Take game of your choice, use the debugger to find the game function you are interested it and then try to read what each assembly line does. Once you can read it, you know how to modify it. At the beginning you have to often look up something but that's fine. The more you are using it, the less you need to look up.

    If you are completely new and don't know where to start make it easy and take a Youtobe tutorial of someone doing such a thing "live". Then redo his steps, just to get the feeling. At the end of the video, redo again but this time without the video. Repeat until you feel safe. Try to adopt the way on another game. You may fail, take a different game then. The older the game, the easier they are to cheat.

    Thank you x90 no I am not a complete noob I've used some very basic assembly commands in a couple of my personal game trainers utilizing pointers and defining bites etc. I do appreciate you taking your time to help me learn more. I will look at this more in depth later on but I can already tell I'm going to have fun with this

  • Current rank: 3.5 Stars. Next Rank at 8000 Posts.
    Send a message to DABhand
    AUTHOR
    DABhand posted on Dec 09, 2020 9:43:50 PM - Report post
     
    Might need to update my tutorial with the Rxx registers. Maybe when im done playing cyberpunk :P
    Oh and Don't forget some tuts on ASM and defeating DMA

    Clicky Here for them
Page 1 of 1
Signup or Login to Post
All times are (GMT -06:00) Central Time (US & Canada). Current time is 8:00:06 PM