[Release][C++ Code] GM/AOE/Range

07/23/2012 15:29 alucardhxh#91
Quote:
Originally Posted by deluxor View Post
Is not so easy dude!

You need to know how to use multi level pointers on C/C++

You cannot change a value directly of a virtual address. :)

Well, actually you can, but is not a good way.
yes you are right thank you.
I know to manipulate all lvl pointers in c/c++ its not that hard I just need to know if its a lvl 1 or 2 or 3 etc
@genisisVI
take this example it will help you in multi lvl pointers
PHP Code:
#define    ADDR_BASE    0x0B8BBF0
#define    OFFSET_BAR_COMBO 0x73a1
#define    OFFSET_VALUE_COMBO 0x7384
if (GetKeyState(VK_F9) < 0
        {
            
int i 0;
            while(
== 0){
            
                
DWORD BAR_COMBO = *(DWORD*)ADDR_BASE;
                *(
DWORD*)(BAR_COMBO+OFFSET_BAR_COMBO) = 0;

                
DWORD VALUE_COMBO = *(DWORD*)ADDR_BASE;
                *(
DWORD*)(VALUE_COMBO+OFFSET_VALUE_COMBO) = 0;
            
                if (
GetKeyState(VK_F10) < 0)
                    
1;
                
Sleep(1);
            }
        } 
its a working code for infinit combo enabling and desibleing F9/F10 and it will help you for your question how to freeze a value
07/23/2012 15:39 genesisVI#92
sir how about float value .... i tried the f suffix but i got a warning ...
can u help me sir ... :D TYVM
07/23/2012 16:10 alucardhxh#93
Quote:
Originally Posted by genesisVI View Post
sir how about float value .... i tried the f suffix but i got a warning ...
can u help me sir ... :D TYVM
if you have an address in hex for example [0x0B8BBF0] and you know that is the address of a location in memory that points to a float or int or what ever you want you just affect the value to it.

but using the addresses like this *(DWORD*)ADDR_BASE etc Im trying to fegure it out
07/23/2012 16:14 deluxor#94
Quote:
Originally Posted by genesisVI View Post
sir how about float value .... i tried the f suffix but i got a warning ...
can u help me sir ... :D TYVM
PHP Code:
void writeFloat(DWORD Address,float Value){
*(
float*)Address Value// 4 Byte
}

void writeInt(DWORD Address,int Value){
*(
int*)Address Value// 4 Byte
}

void writeShort(DWORD Address,short Value){
*(
short*)Address Value// 2 Byte
}

void writeDouble(DWORD Address,double Value){
*(
double*)Address Value// 8 byte
}

CHARreadText(DWORD Address){
CHARText = (CHAR*)Address;
return 
Text;
}

void writeText(DWORD Address,char *szText){
CHARText = (CHAR*)Address;
*
Text = (CHAR)szText;

07/23/2012 16:19 alucardhxh#95
Quote:
Originally Posted by genesisVI View Post
sir how about float value .... i tried the f suffix but i got a warning ...
can u help me sir ... :D TYVM
if you have an address in hex for example [0x0B8BBF0] and you know that is the address of a location in memory that points to a float or int or what ever you want you just affect the value to it.

but using the addresses like this *(DWORD*)ADDR_BASE etc Im trying to fegure it out
I will PM you if succeeded
07/23/2012 16:23 genesisVI#96
its like
PHP Code:
*(float*)(*(float*)ADDR_BASE ADDR_OFF1 11.1f 
07/23/2012 16:48 alucardhxh#97
I get it genesisVI :
this is it
PHP Code:
DWORD RUN_SPEED = *(DWORD*)ADDR_BASE;
                *(
float*)(RUN_SPEED+OFFSET_RUN_SPEED) = (float)600.0
I explain this peace of code :

you have the RUN_SPEED variable it will the value pointed by the ADDR_BASE variable this is accomplished with the first line. and the type of RUN_SPEED is a double this means that it contain a memory address totally correct.

now for the second line :
RUN_SPEED+OFFSET_RUN_SPEED this will add a hex value(the offset) to the variable value(RUN_SPEED) its like adding 50 to 12 in this case 50 is the RUN_SPEED value and 12 is the offset accept here we deal with hex.
all that to get 62(in the example) the real address of the run_speed so you can affect a value to is. in this to tell the compiler that this 62 is a pointer we add this * and to convert or cast all that to a float pointing value we add this float*.
that's all
07/24/2012 14:44 genesisVI#98
ok we`ll go more deeper i found a way on how to edit game data in memory ...
my question is it possible to edit map data to disable wall`s ?
07/24/2012 15:39 zhel3x#99
sir is dis works on w7 32bit? im using it now but nothing happen
07/24/2012 15:44 genesisVI#100
@zhel3x
as long as u have a brain yes it works on every os
07/24/2012 17:50 krime03#101
so what File name or type i save that code? .bat?? or .DLL?
07/24/2012 18:09 bartbilf#102
@krime03
you need to compile it in a compiler, which will build a .dll for you, if you did it right
07/24/2012 20:06 deluxor#103
Thanks to all "memory editing tools" released, next Cabal update will come with ASLR.

Fuck.
07/24/2012 20:43 jazzdwayouwar#104
Sir Bartbilf How can i compile the post of sir PsBot with this codes?

Example this is the post of sir PsBots
Quote:
#include "stdafx.h"

#define ADDR_GM 0x1075C48
#define ADDR_AOE 0x10C62FC
#define ADDR_RANGE 0x10C62F8

void Start();

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ulReason, LPVOID lpReserved)
{
if (ulReason == DLL_PROCESS_ATTACH)
{
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)Start, 0, 0, 0);
}

return TRUE;
}

void Start()
{
while (1)
{
if (GetKeyState(VK_F11) < 0) // Turn On
{
*(DWORD*)ADDR_GM = 2;
*(DWORD*)ADDR_AOE = 100;
*(DWORD*)ADDR_RANGE = 7;
}

if (GetKeyState(VK_F12) < 0) // Turn Off
{
*(DWORD*)ADDR_GM = 0;
*(DWORD*)ADDR_AOE = 0;
*(DWORD*)ADDR_RANGE = 0;
}

Sleep(1);
}
}
and this is the one that i want to insert...


Quote:
void writeFloat(DWORD Address,float Value){
*(float*)Address = Value; // 4 Byte
}

void writeInt(DWORD Address,int Value){
*(int*)Address = Value; // 4 Byte
}

void writeShort(DWORD Address,short Value){
*(short*)Address = Value; // 2 Byte
}

void writeDouble(DWORD Address,double Value){
*(double*)Address = Value; // 8 byte
}

CHAR* readText(DWORD Address){
CHAR* Text = (CHAR*)Address;
return Text;
}

void writeText(DWORD Address,char *szText){
CHAR* Text = (CHAR*)Address;
*Text = (CHAR)szText;
}
Quote:
#define ADDR_BASE 0x0B8BBF0
#define OFFSET_BAR_COMBO 0x73a1
#define OFFSET_VALUE_COMBO 0x7384
if (GetKeyState(VK_F9) < 0)
{
int i = 0;
while(i == 0){

DWORD BAR_COMBO = *(DWORD*)ADDR_BASE;
*(DWORD*)(BAR_COMBO+OFFSET_BAR_COMBO) = 0;

DWORD VALUE_COMBO = *(DWORD*)ADDR_BASE;
*(DWORD*)(VALUE_COMBO+OFFSET_VALUE_COMBO) = 0;

if (GetKeyState(VK_F10) < 0)
i = 1;
Sleep(1);
}
}

I tried already the code of Sir PsBot and its worl with me, i made my own injector.
but i dont have that great idea of c++ much.

can you please give me a hint for this? im not asking a tutorial actualy, i just want suggestion and idea how it done..thanks in advance..
07/24/2012 20:46 bartbilf#105
@jazzdwayouwar
the last part that you want to 'include', are just examples of the different types that can be used, my hint is to search for a tutorial on google which will explain you at least the basics of c++ ;p