how to make VAC hack

01/31/2015 16:51 SeiD001996#1
Im very interested to make VAC hack , how to find adresses and how changes make in cheat engine to make mobs teleported to my position in map
01/31/2015 19:38 almar12#2
You can't make vacuum hack in cheat engine, you have to write a script.
So I'd suggest you go learn some coding etc. Because I doubt anyone will post a tutorial on how it is done.

Anyways you could try to find the coordinates of certain monsters and change those coördinates into the coördinates of your character, or something like that.

Just be creative, think of certains ways that could make vacuum happen and try them out. Obviously you will need to know a coding language to actually achieve this.
01/31/2015 20:27 SeiD001996#3
yes i know , cheat engine is need to find coordinates , but what is script for VAC ... ???
01/31/2015 20:55 almar12#4
Quote:
Originally Posted by SeiD001996 View Post
yes i know , cheat engine is need to find coordinates , but what is script for VAC ... ???
Make the script YOURSELF in C++. Everyone can find coördinate adresses in cheat engine, writing a SCRIPT on the other hand is harder.

You're not exploiting anything, you're just hoping someone else will do all your work, and that is NOT going to happen, no one will give you a full script of a hack that has not been patched yet.

Start doing something and LEARN some CODING.
02/24/2015 07:45 Mega Byte#5
You can do a script in auto assembler with cheat engine but it is a lot harder i think than doing it in C++ as you would have to write in assembler? or maybe lua?.

I already have a vac hack in my release of Map Fun btw (C# version I think) if you can find wherever that was stored...
[Only registered and activated users can see links. Click Here To Register...]

Basically you loop through the data you know about monsters/players etc whatever you are targeting.

You then filter, Find ones that are alive and can be considered for attacking.


There are two choices for Vac or Reverse Vac.
VAC is where you bring them to you/near you (Could AOE)
Reverse VAC you goto them (Can only attack 1 at a time for example *Yeah this isnt always the case but still*)


To find the monsters/players/items etc in memory there is something simple you can do here is my method.

If you are wanting to find monsters information stay in town with no monsters around.
Search for 4 byte value 0.
This may take a while so grab a coffee if your on a slow pc.

Next you want to walk towards where you see a monster
Search for 4 byte 1.

Walk back to town and wait for the monster to disappear out of your clients memory, takes about 6~9 sec depending on the last update packet from the server.

Search for a changed value of 0.

Repeat this until you find a value in memory that is 1 when monster is around but 0 when it is not. (Maybe mix it up stay in same place search for unchanged value)

Takes me like 2 minutes to find.

Think of this value as the Active / Not Active value, it is the first value in the X_Entity structure where X is Monster, Player, NPC, Item etc.

You want to find the first occurrence memory address wise, if you can limit the monsters you see to 1 or 2 this will work best.

Once you find the value freeze it to 0 *Make sure you freeze at 1ms this can be configured in cheat engine settings*

If the monster disappears when you are near them you know you found it.

You should know some things,


Usually games store information about things in a structure and they have an array of these structures (Or structure pointer).

To find the size of the structure you want to find the distance in bytes between the first occurrence of the Exist flag and the Second occurrence.

Hint: Use subtraction

By now you have found the Array of monster entity info / monster state info.
And you have found the size of the structure.

You can map out the structure using cheat engines structure mapping tools, or reclass etc.
I have actually already done this with the help of Tri407tiny and a few others.

Once you goto the structure address in the memory viewer look for values that change when your monster #1 moves.

The location direction part goes like this if i remember correctly

byte action
byte state
float frame position
float X,Y,Z,Direction

There is also Xto,Yto,ZTo,DirectionTo
Target index (What monster is attacking or player etc)

Monsters have ID and UniqueID and for some reason another UniqueID.
They have health to.

You will probably want to make a signature to find the memory location again it will be different between running of the game and possibly even maps.

Find what code accesses the Exists flag/4byte/boolean.
Find the pointer.
Make sure its a level 1 pointer? If not find however many pointer levels you need. Hint Cheat engine tutorial. (I like to search for the address as 4Byte Hex)


In your DLL or w/e script.

Loop through the collection of information
Set their X,Y,Z to your X,Y,Z or slightly in front of it. (Pro tip you can find your character state information by searching for your character name as text if you change it and move around it will change above your head. View this address in the memory browser and find the XYZ part of the structure. Your character state will always be the first index in the character states array) (This goes for Troy, TS1, TS2 etc)

So anyway you can figure that stuff out, I will also link you to the information I have on this.

TS2
See the tabs down bottom navigate for structures (INFO IS OLD from old project on TS2 and MapFun Hack)
[Only registered and activated users can see links. Click Here To Register...]

TS1
See the StatePacket for information maybe :)
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]


As for reading and writing to pointers in C++ thats easy :)
Quote:
struct Location {
float x,y,z;
};

Location* playerLocation = (Location*)0xDEADBEEF; // Figure out this adddress use a signature scan btw.

struct MonsterState {
// Put yo state definition here. you could pad for shit you dont care about.
};
Loop example
Quote:
for (var i=0;i<10000;i++) {
MonsterState* m = MonsterStates[i];
if (m->health > 0) {
m->location->x = playerLocation->x;
m->location->y = playerLocation->y;
m->location->z = playerLocation->z; // You could use cos and sin to move them slightly away from you.
}
}
// There was a trick I noticed for byte padding to get the compiler not to pad to nice memory regions so that the structs you type match game structs byte for byte surround your struct definitions in your header file with this. I seem to have lost it though :( im sure you can find it on stack overflow to do with visual studio byte structure padding or something. gl.

For info on making a dll see my topic here: [Only registered and activated users can see links. Click Here To Register...]


Anywho, good luck :)
02/24/2015 13:54 LuDaKa01#6
Megabyte you ts1 server online ?
03/15/2015 05:32 神-SouL#7
quick C++ code written in 5 min:
some syntax might be wrong.

Code:
#include <iostream>
// you probably need to include some read / write memory function header files here, or ASM header files if you wanna call game functions.
// if you don't want anti-cheats to detect your program, you should probably do some encryption here.(you probably won't need to anyways).
using namespace std;

void vacMob()

{
    int vacCheck = 1 //keep the loop timer going, so you could keep updating the coord location, you should probly use BOOL.
            
    // you need to get the float / double value from the monster coord location. below are just an example, and of course it won't work.
    double monsterCoordX = 0x000000;
    double monsterCoordY = 0x000000;
    double monsterCoordZ = 0x000000;
    
    double currentPlayerCoordX = 0x000000;
    double currentPlayerCoordY = 0x000000;
    double currentPlayerCoordZ = 0x000000;
    
    
    // if vac is ON (again you probly want use 1 for ON, and 0 for OFF
    while (vacCheck != 0)
    {
        //set the monster coord to my current coord locations (AKA Vac).
        monsterCoordX = currentPlayerCoordX;
        monsterCoordY = currentPlayerCoordY;
        monsterCoordZ = currentPlayerCoordZ;
    }
    }
}

int main()
{
    //if you did something, call the vacMob function.
    vacMob();
    
    return 0;
}
03/18/2015 02:58 神-SouL#8
btw, think mayn patched the mob vac
03/19/2015 14:53 Str8inyou#9
for mayn yes , for hungames works
03/22/2015 05:36 Mega Byte#10
last i knew they patched monster vac but you could just reverse vac so it was like ehhh oh well.