Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Battle of the Immortals
You last visited: Today at 19:14

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Tool] BoI Memory Address Updater

Discussion on [Tool] BoI Memory Address Updater within the Battle of the Immortals forum part of the MMORPGs category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: May 2010
Posts: 77
Received Thanks: 352
[Tool] BoI Memory Address Updater

So here's an example program about how to automatically update memory addresses of boi, it uses a signature scanner. Signatures are less likely to change from version to version so usually involves less updating. I only have a couple of different addresses currently in this program, but if you tell me about others i might add them in.

I sort of ripped it out of another program and made a standalone, so some of the functions aren't used in this program.

Also here's some info on signatures and what they are
Attached Files
File Type: rar BoI_MemAddr_Update.rar (164.6 KB, 630 views)
0xDEC0DE is offline  
Thanks
16 Users
Old 06/14/2010, 03:27   #2
 
alaor's Avatar
 
elite*gold: 0
Join Date: Sep 2007
Posts: 79
Received Thanks: 3
hmm.. thanks man
alaor is offline  
Old 06/14/2010, 05:04   #3
 
Arcо's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 8,783
Received Thanks: 5,304
Very nice!
But I thought you were done with BoI?
Arcо is offline  
Old 06/14/2010, 06:22   #4
 
elite*gold: 0
Join Date: May 2010
Posts: 77
Received Thanks: 352
Quote:
Originally Posted by .Arco View Post
Very nice!
But I thought you were done with BoI?
Me too... but i felt like i needed to finish boibb3 because it was kinda unfinished. I actually ripped this standalone from biobb3.1 but i want to do some debugging the next couple of days before i post the final version of biobb3.

Also the rant about me being done was at like 3 in the morning after like 15 hours of programming/debugging (sometimes stupid stuff takes a looonngg time). Basically want i meant was I'll probably float around abit but i won't be posting to much.
0xDEC0DE is offline  
Thanks
5 Users
Old 06/18/2010, 17:07   #5
 
elite*gold: 0
Join Date: May 2010
Posts: 11
Received Thanks: 0
int pCharacter_Name = Addr_Player_InfoBase + 0x8EB4;

is this offset of character Name.
SensaCool is offline  
Old 06/18/2010, 19:46   #6
 
elite*gold: 0
Join Date: May 2010
Posts: 77
Received Thanks: 352
Quote:
Originally Posted by SensaCool View Post
int pCharacter_Name = Addr_Player_InfoBase + 0x8EB4;

is this offset of character Name.
Yes, that is what it currently is. Or did you mean something else?

Code:
//---Bag Use Item
uint pBag_UseItem = HomeGrown.Hacking.dwFindPattern(pr, 0x401000, sig_Bag_UseItem, mask_Bag_UseItem);

//---Map Auto Route
uint pMap_AutoRoute = HomeGrown.Hacking.dwFindPattern(pr, 0x401000, sig_Map_AutoRoute, mask_Map_AutoRoute);

//---Player Current X, Y, Z
uint sig_Char_CurrentX_Addr = HomeGrown.Hacking.dwFindPattern(pr, 0x401000, sig_Char_CurrentX, mask_Char_CurrentX);
int pCharacter_CurrentX = MemAddr_GrabAddress((int)sig_Char_CurrentX_Addr, 29);
int pCharacter_CurrentY = pCharacter_CurrentX + 4;
int pCharacter_CurrentZ = pCharacter_CurrentX + 8;

//---Player Dest X, Y
uint sig_Char_DestX_Addr = HomeGrown.Hacking.dwFindPattern(pr, 0x401000, sig_Char_DestX, mask_Char_DestX);
int pCharacter_DestX = MemAddr_GrabAddress((int)sig_Char_DestX_Addr, 17);
int pCharacter_DestY = pCharacter_DestX + 4;


//---Player Info Base, not only possible sig
uint sig_Player_InfoBase_Addr = HomeGrown.Hacking.dwFindPattern(pr, 0x401000, sig_Player_InfoBase, mask_Player_InfoBase);
int Addr_Player_InfoBase = MemAddr_GrabAddress((int)sig_Player_InfoBase_Addr, 17);//E56710
int pCharacter_Name = Addr_Player_InfoBase + 0x8EB4;
int pCharacter_Hp = Addr_Player_InfoBase + 0x90D0;
int pCharacter_Mp = Addr_Player_InfoBase + 0x90D8;
int pCharacter_Rage = Addr_Player_InfoBase + 0x90E0;
int pCharacter_Lvl = Addr_Player_InfoBase + 0x90E8;
int pCharacter_Exp = Addr_Player_InfoBase + 0x90F0;
int pCharacter_Points = Addr_Player_InfoBase + 0x90F8;
int pCharacter_HpMax = Addr_Player_InfoBase + 0x9108;
int pCharacter_MpMax = Addr_Player_InfoBase + 0x9110;
int pCharacter_HpRegen = Addr_Player_InfoBase + 0x9128;
int pCharacter_Accuracy = Addr_Player_InfoBase + 0x9138;
int pCharacter_Evasion = Addr_Player_InfoBase + 0x9158;
int pCharacter_Str = Addr_Player_InfoBase + 0x9160;
int pCharacter_Vit = Addr_Player_InfoBase + 0x9168;
int pCharacter_Dex = Addr_Player_InfoBase + 0x9170;
int pCharacter_Int = Addr_Player_InfoBase + 0x9178;
int pCharacter_Spr = Addr_Player_InfoBase + 0x9180;
int pCharacter_PAtckMin = Addr_Player_InfoBase + 0x91B0;
int pCharacter_PAtckMax = Addr_Player_InfoBase + 0x91B8;
int pCharacter_MAtck = Addr_Player_InfoBase + 0x91C0;
int pCharacter_PDef = Addr_Player_InfoBase + 0x9218;
int pCharacter_MDef = Addr_Player_InfoBase + 0x9228;
int pCharacter_Money = Addr_Player_InfoBase + 0x9258;
int pCharacter_NextLvl = Addr_Player_InfoBase + 0x92E8;

//---Pet Info Base, used a bunch of int3 in sig
uint sig_Pet_InfoBase_Addr = HomeGrown.Hacking.dwFindPattern(pr, 0x401000, sig_Pet_InfoBase, mask_Pet_InfoBase);
int pPet_InfoBase = MemAddr_GrabAddress((int)sig_Pet_InfoBase_Addr, 17); //E7A2C0
int pPet_FrameIsOut = pPet_InfoBase + 0xE4;
int pPet_CurrentHp = pPet_InfoBase + 0xCA0 + 0x31C;
int pPet_CurrentMp = pPet_InfoBase + 0xCA0 + 0x31C + 0x324;

//---Current Map ID
uint sig_Character_Map_ID_Addr = HomeGrown.Hacking.dwFindPattern(pr, 0x401000, sig_Character_Map_ID, mask_Character_Map_ID);
int pCharacter_Map_ID = MemAddr_GrabAddress((int)sig_Character_Map_ID_Addr, 1); //b33fb0

//---Target Info base, bunch of int3 in sig
uint sig_Target_InfoBase_Addr = HomeGrown.Hacking.dwFindPattern(pr, 0x401000, sig_Target_InfoBase, mask_Target_InfoBase);
int pTarget_InfoBase = MemAddr_GrabAddress((int)sig_Target_InfoBase_Addr, 1); //108EDB8
int pTarget_IsMonster = pTarget_InfoBase + 0x8 + 0xE4;
int pTarget_IsLord = pTarget_InfoBase + 0x53A0 + 0xE4;
int pTarget_HasBeenHit = pTarget_InfoBase + 0x8240 + 0xE4;
int pTarget_PointerName = pTarget_InfoBase + 0x1318; //guess offset
0xDEC0DE is offline  
Thanks
2 Users
Old 06/19/2010, 15:50   #7
 
elite*gold: 0
Join Date: May 2010
Posts: 11
Received Thanks: 0
I still not find base address of character, pet, mod >"< to make sign and mark.
SensaCool is offline  
Old 06/19/2010, 16:39   #8
 
elite*gold: 0
Join Date: May 2010
Posts: 77
Received Thanks: 352
Quote:
Originally Posted by SensaCool View Post
I still not find base address of character, pet, mod >"< to make sign and mark.
you'll need to attach a debugger to do that. Your best bet is to use pCharacter_Name (or the lowest value in memory) and just do offsets from that.

EX:
Code:
pCharacter_Name = XXXXXXXX;  //some addres
int pCharacter_Hp = pCharacter_Name + 0x21C;
int pCharacter_Mp = pCharacter_Name + 0x224;
.
.
.
OR
you could find pCharacter_Name and subtract 0x8EB4 to get the base, attach a debugger and figure out where that is used and thus you could make a sig and mask from where that code being used.

btw what are you trying to do, i'm kinda confused and i might be able to help better if you explain
0xDEC0DE is offline  
Thanks
1 User
Old 06/19/2010, 17:28   #9
 
elite*gold: 0
Join Date: May 2010
Posts: 11
Received Thanks: 0
i am trying to config BOI address update to suitable with my BOI client (not Global) and then config the BBot3. I get stuck with 2 function (map auto round and Crusade Order Quest). But Thanks u very very much for helping me. Sorry because my english is not good.
SensaCool is offline  
Old 06/19/2010, 18:13   #10
 
elite*gold: 0
Join Date: May 2010
Posts: 77
Received Thanks: 352
Quote:
Originally Posted by SensaCool View Post
i am trying to config BOI address update to suitable with my BOI client (not Global) and then config the BBot3. I get stuck with 2 function (map auto round and Crusade Order Quest). But Thanks u very very much for helping me. Sorry because my english is not good.
It's np. Which version are you using? If its too different you might also have to change the key bindings. Maybe if you upload the game.exe somewhere i might be able to help you find the function addresses, if not then you'll need to attach a debugger to find where the function addresses are.
0xDEC0DE is offline  
Thanks
1 User
Old 06/19/2010, 19:48   #11
 
elite*gold: 0
Join Date: May 2010
Posts: 11
Received Thanks: 0
Here is my Game.exe, Thanks for helping me
Attached Files
File Type: rar game.rar (2.83 MB, 47 views)
SensaCool is offline  
Old 06/19/2010, 23:15   #12
 
elite*gold: 0
Join Date: May 2010
Posts: 77
Received Thanks: 352
Ok i uploaded a newer version that should give correct addresses for both versions now.
Here's the output for your version
Code:
pBag_UseItem: 0x53B160
pMap_AutoRoute: 0x689430
pCharacter_CurrentX: 0xA0FCD0
pCharacter_CurrentY: 0xA0FCD4
pCharacter_CurrentZ: 0xA0FCD8
pCharacter_DestX: 0xA3C064
pCharacter_DestY: 0xA3C068
pCharacter_Name: 0xA4508C
pCharacter_Hp: 0xA452A8
pCharacter_Mp: 0xA452B0
pCharacter_Rage: 0xA452B8
pCharacter_Lvl: 0xA452C0
pCharacter_Exp: 0xA452C8
pCharacter_Points: 0xA452D0
pCharacter_HpMax: 0xA452E0
pCharacter_MpMax: 0xA452E8
pCharacter_HpRegen: 0xA45300
pCharacter_Accuracy: 0xA45310
pCharacter_Evasion: 0xA45330
pCharacter_Str: 0xA45338
pCharacter_Vit: 0xA45340
pCharacter_Dex: 0xA45348
pCharacter_Int: 0xA45350
pCharacter_Spr: 0xA45358
pCharacter_PAtckMin: 0xA45388
pCharacter_PAtckMax: 0xA45390
pCharacter_MAtck: 0xA45398
pCharacter_PDef: 0xA453F0
pCharacter_MDef: 0xA45400
pCharacter_Money: 0xA45430
pCharacter_NextLvl: 0xA454C0
pPet_FrameIsOut: 0xA5E08C
pPet_CurrentHp: 0xA5EF64
pPet_CurrentMp: 0xA5F288
pCharacter_Map_ID: 0x0
pTarget_IsMonster: 0xBC2C6C
pTarget_IsLord: 0xBC8004
pTarget_HasBeenHit: 0xBCAEA4
pTarget_PointerName: 0xBC3E98
Tell me if they are wrong so i can fix them

edit: just noticed map id, will try and fix now~

edit2: ok fixed...
0xDEC0DE is offline  
Thanks
1 User
Old 06/20/2010, 00:01   #13
 
elite*gold: 0
Join Date: May 2010
Posts: 11
Received Thanks: 0
i still doesn't work.The memory address below is suitable for my server. I think it will helpful.Thanks

00A438B0 is this base address of PChar?

"Pcharacter,Monter,Pet" i have checked and memory address is wrong.the MAP ID memory is right.

Code:
public const int pCharacter_Current_HP = 0x400000 + 0x643AC8; //8byte
        public const int pCharacter_Current_MP = 0x400000 + 0x643ACC; //8byte

        public const int pPet_Portait_Is_Out = 0x400000 + 0x65E088;//byte
        public const int pPet_Current_Hp = 0x400000 + 0x65EF4C;//4byte
        public const int pPet_Current_Mp = 0x400000 + 0x65F26C;//4byte

        //Target
        public const int pTarget_IsMonster = 0x400000 + 0x82DA3C; //2byte, also is alive
        public const int pTarget_PointerName = 0x400000 + 0x82EC58; //4byte, Points to name with 0 offset
        public const int pTarget_HasBeenHit = 0x400000 + 0x836490; //2byte
        public const int pTarget_IsLord = 0x400000 + 0x832310; //2byte

        //zone
        public const int pCharacter_Destination_X = 0x400000 + 0x63C064; //float
        public const int pCharacter_Destination_Y = 0x400000 + 0x63C068; //float
        public const int pCharacter_Current_X = 0x400000 + 0x60F774; //float
        public const int pCharacter_Current_Y = 0x400000 + 0x60F778; //float
        public const int pCharacter_Map_ID = 0x400000 + 0x60F8F4; //int

        //stats
        public const int pCharacter_Name = 0x400000 + 0x61E013; //string
        public const int pCharacter_Current_Exp = 0x400000 + 0x643AD8;//4byte
        public const int pCharacter_Max_Exp = 0x400000 + 0x61E00F;//4byte
        public const int pCharacter_Current_XP = 0x4000000 + 0x7A2E30;//4byte
SensaCool is offline  
Old 06/21/2010, 17:34   #14
 
elite*gold: 0
Join Date: Oct 2009
Posts: 52
Received Thanks: 48
I don't know exactly if this is correct but I think this may be the attack speed address.

00E5F850

I found it by taking my weapon off an on which has a 5% attack rate added to it.
Ojji is offline  
Old 06/24/2010, 21:14   #15
 
elite*gold: 0
Join Date: May 2010
Posts: 425
Received Thanks: 555
Any chance you can add in Pet Max Hp and Mana?
My420Time is offline  
Reply


Similar Threads Similar Threads
Memory Updater Programmieren
08/03/2010 - General Coding - 8 Replies
Hi ich stehe gerade ziemlich auf dem Schlauch. Ich möchte für ein Spiel (egal welches) ein Memory Updater programmieren. Dieser ist notwendig, da sich die Adressen bei jedem Update ändern. Mit Pointern kann ich arbeiten, das wird hier allerdings nicht ausschlaggebend sein, da das Programm nach einem Update komplett neue Adressen hat. Wer kann mit einen Anhaltspunkt geben, wie ich solche Adressen suche (OllyDBG und IDA Kenntnisse sind vorhanden). Danke ;)
Memory Address
04/01/2010 - CO2 Programming - 8 Replies
Hi, i think there is a new problem , Tq done something?? When i go and try to find my hp base address with cheat engine, I can find the current hp,only thing i can find is max hp which is of no use,can some one tell me what is going on!!! thank you
need tool to give Memory address table
09/09/2008 - Conquer Online 2 - 1 Replies
can any one help by VB code to get Memory address table
memory address
01/23/2008 - Conquer Online 2 - 0 Replies
any1 can make a memory address on monster count?using cheat engine perhaps?
memory address
12/07/2007 - Conquer Online 2 - 3 Replies
is it possible for memory address the monster count i could use 1 for 300 kills monster :P



All times are GMT +1. The time now is 19:14.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.