How does one get stared? menu

User Tag List

Results 1 to 9 of 9
  1. #1
    SuperMiguel's Avatar Member
    Reputation
    1
    Join Date
    May 2012
    Posts
    13
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    How does one get stared?

    How do you guys think is the best way to get stared into gaming bot development, memory editing, etc etc

    These ads disappear when you log in.

  2. #2
    overture2112's Avatar Sergeant
    Reputation
    27
    Join Date
    Aug 2007
    Posts
    51
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Your question is awfully broad and its answer could fill textbooks. Could you provide details on what you already know / are capable of? Or limit what you'd like to learn first, ex:


    • General bot AI
    • Navigation systems
    • Reading/writing game memory
    • Executing game code via injection
    • Finding addresses/patterns of game objects and functions
    • REing structure of game objects and functions
    • General low level programming knowledge

  3. #3
    Selvyre's Avatar Active Member
    Reputation
    29
    Join Date
    Jul 2013
    Posts
    104
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    1: go find yourself a 64 bit memory editing library (or preferable get a 32bit wildstart client)
    2: go in game and search up your current xp on cheat engine
    3: go kill something
    4: search current xp again
    5: repeat 2-4 until 1 address is left
    6: figure out what writes to it and go find that address in ida
    7: simple math 2+2 = offset
    8: read memory of playerBase + offset
    9: voila bot
    Skype: Argixx
    Coding Experience: Java: 8 years, c++: 4 years, python: lolk, c#: might as well be java, AutoIt: 1 year

  4. #4
    overture2112's Avatar Sergeant
    Reputation
    27
    Join Date
    Aug 2007
    Posts
    51
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Selvyre View Post
    1: go find yourself a 64 bit memory editing library (or preferable get a 32bit wildstart client)
    2: go in game and search up your current xp on cheat engine
    3: go kill something
    4: search current xp again
    5: repeat 2-4 until 1 address is left
    6: figure out what writes to it and go find that address in ida
    7: simple math 2+2 = offset
    8: read memory of playerBase + offset
    9: voila bot
    I think you're missing a step between 8 and 9...

    In all seriousness though, I think it's probably better to focus on one part at a time. Finding memory addresses of key information can be fairly time consuming just by itself. That said, people like Midi12 have already done the work and shared the fruits of their labor.

    [Once you have key addresses/offsets/patterns, one way or another]
    The next step is creating a program which externally reads those addresses and constructs a local view of game data, especially a list of game objects, or inject into the game process so you can directly access the data.

    There are a number of libraries that assist with reading/writing memory (and potentially boxing/unboxing types, depending on your language of choice), but on windows an external reader/writer is essentially just calling ReadProcessMemory and WriteProcessMemory. Write this yourself or use PyMem, GreyMagic, MemorySharp, etc etc.
    Last edited by overture2112; 06-12-2014 at 08:14 AM.

  5. #5
    Jadd's Avatar 🐸
    Reputation
    1464
    Join Date
    May 2008
    Posts
    2,396
    Thanks G/R
    77/297
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by overture2112 View Post
    I think you're missing a step between 8 and 9...
    Nope, he's missing step 0.

    0. Learn a deep understanding of how memory is managed, how to interpret assembly, and try to understand why compilers do what they do (call conventions, etc.) - best way to learn this is to mess around with a native language, read books, etc.

    If you can start interpreting functions in assembly (and pseudocode thanks to hex-rays guys,) then there won't even be a question of "how to find an offset". That will come with learning the essentials.

  6. #6
    overture2112's Avatar Sergeant
    Reputation
    27
    Join Date
    Aug 2007
    Posts
    51
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Jadd View Post

    0. Learn a deep understanding of how memory is managed, how to interpret assembly, and try to understand why compilers do what they do (call conventions, etc.) - best way to learn this is to mess around with a native language, read books, etc.
    Fair point. Though instead of spending years slowly accumulating this, we can help direct people to particular topics and exercises.

    Example:
    I think one of the most useful exercises I've done is hand compiling some OOP c++ to MIPS (x86 will add needless complication your first time). Having a very solid understanding of vtables and dispatching is pretty handy, even with hex-rays.

    There's a lot of useful things to know about memory, but I'm guessing a brief understanding of how virtual memory and thread local storage work will be sufficient for most simple things.

  7. #7
    Midi12's Avatar Contributor
    Reputation
    90
    Join Date
    Sep 2012
    Posts
    182
    Thanks G/R
    6/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I agree about reading books & paper help alot ! It's also a lot of practice and you will still learn stuff during long time ! One word : Practice

  8. #8
    Jadd's Avatar 🐸
    Reputation
    1464
    Join Date
    May 2008
    Posts
    2,396
    Thanks G/R
    77/297
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by overture2112 View Post
    Fair point. Though instead of spending years slowly accumulating this, we can help direct people to particular topics and exercises.

    Example:
    I think one of the most useful exercises I've done is hand compiling some OOP c++ to MIPS (x86 will add needless complication your first time). Having a very solid understanding of vtables and dispatching is pretty handy, even with hex-rays.

    There's a lot of useful things to know about memory, but I'm guessing a brief understanding of how virtual memory and thread local storage work will be sufficient for most simple things.
    I don't think there is such an exercise which explains the specific topics you need to start making a bot, hack, whatever. You're better off learning each individual topic from a guide or book (you don't have to master all of them.) Once you have sufficient knowledge on each subject you will be able to piece all of the information together to make a bot.

    Despite what anyone says, making a GOOD bot requires dedication, not just to writing the code but dedication to learning. It's NOT an overnight journey by any means.

    The areas I would recommend learning in order to get to bot-making:

    1. Programming language. Preferably not a scripting language like AutoIt. I can personally tell you that road is not worth going down.
    2. Memory management. How the stack and heap works, different calling conventions, different code sections, etc.
    3. Assembly. This is a must-have for debugging and reversing.
    4. Debugging. Find a debugger you like. The Cheat Engine debugger is a good start, but it's good to understand some more complex debuggers because they have a lot more to offer.
    5. Reversing. Once you understand 2, 3 and 4 this will come pretty natural to you.

    And, specifically for botting - there are so many options when it comes to automating gameplay, you'll have to look into this yourself:

    1. AI. Behaviour trees and such.
    2. Pathfinding. A* and Dijkstra seem to be the common ones.

    Last edited by Jadd; 06-12-2014 at 09:20 PM.

  9. #9
    bitterbee's Avatar Member
    Reputation
    1
    Join Date
    Feb 2013
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey guys,

    Being a C# programmer myself, I can relate to a lot of the questions that arise in terms of getting into bot development. The past year, the majority of my spare time has been thrown into this particular topic, and I would say that I have gotten a decent grasp of using Cheat Engines debugger to find memory addresses, and I have obtained a somewhat decent understanding of assembly. I consider myself able to understand everything, however I still need to take the next step which itself isn't obvious to me.

    My question is; do you guys have any personal preferences regarding literature that covers memory management seeing that some of you have reached "the other side"? And do you have other recommendations or experiences that you want to share that could help me (and hopefully others) out in this particular scenario?

    -B

Similar Threads

  1. Replies: 0
    Last Post: 12-24-2010, 11:49 AM
  2. [question] how does one get rep points
    By runemaster in forum Community Chat
    Replies: 6
    Last Post: 10-16-2008, 05:54 PM
  3. How does one post in Contributor section w/o being a contributor!
    By Stephen Colbert in forum World of Warcraft General
    Replies: 3
    Last Post: 03-21-2008, 10:03 AM
  4. How does one get to Programmers island and Designer island ?
    By Wheeze201 in forum World of Warcraft Emulator Servers
    Replies: 7
    Last Post: 01-05-2008, 02:06 PM
  5. How does one change...
    By V1cinity in forum WoW ME Questions and Requests
    Replies: 8
    Last Post: 07-25-2007, 10:57 PM
All times are GMT -5. The time now is 11:51 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search