Getting Started menu

User Tag List

Results 1 to 2 of 2
  1. #1
    Apoc's Avatar Angry Penguin
    Reputation
    1387
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/12
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Getting Started

    So, I'll give you folks a few hints to get you started, feel free to post what you find, or any questions.

    Firstly, there are a list of "types" you'll need to know:

    Code:
        public enum HeroType    {
            None = 0,
            Id = 1,
            Integer = 2,
            Boolean = 3,
            Float = 4,
            Enum = 5,
            String = 6,
            List = 7,
            LookupList = 8,
            Class = 9,
            Association = 10,
            ScriptRef = 14,
            NodeRef = 15,
            GuiControl = 16,
            Timer = 17,
            Vector3 = 18,
            FsGuid = 19,
            TimeInterval = 20,
            DateTime = 21,
            RawData = 22,
        }
    When you poke around in the SWTOR assembly, you'll be able to search these strings without much issue, and find tons of xrefs to said strings (and vtables). There's your big starting point for reversing the game. Please keep in mind, SWTOR is built on HeroEngine, which essentially, is a big scripting engine. Scripts are loaded into the GOM (find it by searching "attempt to find GOM", it's referenced inside GetGOM()) as bytecode.

    Definitions are where you'll spend most of your time. Definitions do what they say... define an object. Please check the HE wiki for "glomming" to understand how inheritance works. (There is inheritance, and components. Very different things.)

    Bioware did include the entire on-disk DOM file, including names, comments, etc, during the beta (and early live builds). I'll leave it up to the reader to figure out how to pull it from the archives, and parse it.

    Once you understand how the engine works, you can begin to delve into the way they deal with "objects" in the world. From there, you can move onto figuring out how to call scripts, and pull return values. (I highly suggest you do this out of process, and get a very *fast* memory library to do it. There is a lot of pointer usage, thusly, a lot of ReadProcMem calls required)

    I'll give you a base structure for HeroDefinition, which should let you guys get started reversing things:

    Code:
    struct HeroDef
    {
    VFTABLE* VTable;
    void* Field;
    const char* Name;
    DWORD Flags;
    };
    From here, you'll be on your way to deciphering the complex, yet simple, engine.

    Getting Started
  2. #2
    Distiny's Avatar Site Donator Cheat or Die!
    Reputation
    170
    Join Date
    Nov 2006
    Posts
    314
    Thanks G/R
    28/141
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    even though it's beyond my skill 'd like to thank you for giving people the start they probably needed

Similar Threads

  1. [Warrior] To get started as a tank.
    By tehd3str0y in forum World of Warcraft Guides
    Replies: 22
    Last Post: 08-23-2008, 12:00 PM
  2. Having Trouble Getting Started
    By exile24 in forum WoW Scams Help
    Replies: 3
    Last Post: 06-08-2008, 05:47 PM
  3. Boting: Need help getting started
    By grond in forum World of Warcraft General
    Replies: 3
    Last Post: 10-30-2007, 02:19 PM
  4. Getting Started?
    By Dax in forum WoW ME Questions and Requests
    Replies: 2
    Last Post: 06-23-2007, 12:23 AM
  5. Getting Started
    By masonps3 in forum World of Warcraft General
    Replies: 3
    Last Post: 06-15-2007, 02:05 PM
All times are GMT -5. The time now is 03:20 AM. 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