Results 1 to 3 of 3
  1. #1
    index.html's Avatar
    Join Date
    Sep 2017
    Gender
    male
    Location
    Genesis 6:7
    Posts
    101
    Reputation
    10
    Thanks
    293

    [EXALT] Externally getting entities and handling them

    First of all , i should mention that this method is pretty rough and you will be better doing it internally and hooking the mapUpdate function that @Azuki found.

    Here's how i get entities externally , without injecting anything into the game -

    After some cheat engine scans i noticed that each player/enemy entity adress points to another adress ( which i think is their class or something ) , which in the current update is located at: (will definitely change)
    Each player address points to GameAssembly.dll+0x31F1978
    Each enemy address points to GameAssembly.dll+0x31F1A80

    After seeing how game handles entities , i noticed that there is a pre-defined amount of addresses dedicated to players and entities , and f.e , when one entity is not visible , the adress will be used by another entity and so on.

    And , as crazy as it seems , a simple scan of addresses that point to GameAssembly.dll+0x31F1A80 inside the game memory ,will reveal all addresses dedicated to enemies, that you can loop over and check if active.

    There are tons of libraries that can help you scan memory for addresses based on their values.

    Respectively , here is the code that i do at the start of the game (nodejs):
    Code:
    var memscan = require("memscan");
    
    var players = process.scanForInt32(playerClassAdress);
    var enemies = process.scanForInt32(enemyClassAdress);
    The only issue is that , not all the found adresses are safe to read or write to and there should be a bit of filtering:
    For players , all the adresses should be divisible by 0x1000 or 0x540 or 0xa80 ( or end with 000, 540, a80 ).
    For enemies , all the adresses should be divisible by 0x1000 or 0x320 or 0x640 or 0x960 or 0xC80

    This should be easy to do , just check modulus and push to new array the filtered enemies or players.


    The next thing is to handle the entities , thanks a lot to @Azuki and especially to @DIA4A for helping and posting quality stuff.

    Entity is on-screen and alive - entityAdress + 0x58 (bool)
    Entity x position - entityAdress + 0x3C (float)
    Entity y position - entityAdress + 0x40 (float)
    Entity health - entityAdress + 0x1C0 (int)

    I'm not really experienced in game-hacking and im doing it for fun , hope this helps someone.
    That should be it ,sorry for a lot of writing and happy hacking.
    Last edited by index.html; 04-26-2020 at 12:54 PM.

    2=1+1
    2=sqrt(1)+1
    2=sqrt((-1)*(-1))+1
    2=sqrt(-1)*sqrt(-1)+1
    2=i^2 +1
    2=-1+1
    2=0



  2. The Following 3 Users Say Thank You to index.html For This Useful Post:

    Alde. (04-30-2020),DIA4A (04-26-2020),spazmonkey (07-09-2020)

  3. #2
    DIA4A's Avatar
    Join Date
    Jan 2020
    Gender
    male
    Posts
    102
    Reputation
    19
    Thanks
    162
    Really neat method for an external, thanks!

  4. #3
    kr_nekdo's Avatar
    Join Date
    Jun 2019
    Gender
    male
    Posts
    360
    Reputation
    22
    Thanks
    26
    My Mood
    Angelic
    Interesting find, thanks for post

Similar Threads

  1. [Discussion] Can you guys rate my acc and how much i can get if i sell them ?
    By boyrent2 in forum CrossFire Discussions
    Replies: 2
    Last Post: 07-15-2013, 05:55 AM
  2. how do you get hacks and how do you play whit them
    By metalhead14 in forum CrossFire Glitches
    Replies: 4
    Last Post: 09-02-2010, 04:53 AM
  3. [Help] I did ******s and completed them but didnt get zp
    By DestinSoul in forum CrossFire Hacks & Cheats
    Replies: 3
    Last Post: 02-28-2010, 11:08 PM
  4. [TUT] Get running processes and kill them ~~
    By Zoom in forum Visual Basic Programming
    Replies: 2
    Last Post: 11-09-2009, 08:34 AM
  5. Replies: 5
    Last Post: 04-18-2009, 10:16 PM