|
You last visited: Today at 10:26
Advertisement
Pointer+offsets lol
Discussion on Pointer+offsets lol within the League of Legends forum part of the Popular Games category.
03/23/2013, 00:34
|
#1
|
elite*gold: 22
Join Date: Feb 2012
Posts: 576
Received Thanks: 332
|
Pointer+offsets lol
Hallo,
Ich arbeite gerade an einem Tool für lol welches einem im Spiel helfen soll,
Auto timer etc items vorschlagen Fokus usw
Ich habe nur ein Problem es sind so viele Werte und bei manchen Pointen komme ich auf keinen grünen Zweig. Vor allem die respawn zeit
Kann mal wer die Base Pointer +offsets posten
Tjx im voraus
|
|
|
03/23/2013, 04:54
|
#2
|
elite*gold: 0
Join Date: Nov 2012
Posts: 796
Received Thanks: 121
|
kannste knicken... habe da auch paar sachen versucht nach jeden neustart des spiels brauchste nen anderen pointer.
|
|
|
03/23/2013, 05:16
|
#3
|
elite*gold: 126
Join Date: Apr 2010
Posts: 1,786
Received Thanks: 1,242
|
Quote:
League of Legends Data & Offset
League of Legends v1.0.0.141 2012/07/11
Base Address
"League of Legends.exe"+009E5568
"League of Legends.exe"+ 009E5568 +68
"League of Legends.exe"+ 009E5568 +14C
"League of Legends.exe"+ 009E5568 +168
Mouse Select Target Info(Base Address+F0)
Data Type:4bytes (No Target the default value is 0)
+E4 = Current HP
+E8 = Max HP
+EC = Current MP
+F0 = Max MP
+F4 = Level
Example:"League of Legends.exe"+009E5568+F0+E4=Mosue Select Target Current HP
Data Type:float (No Target the default value is -100)
+548 = Ability Power
+54C = Armor
+550 = Attack Damage
+554 = Attack Speed
+55C = Magic Resist
+560 = Movement Speed
Example:"League of Legends.exe"+009E5568+F0+548=Mosue Select Target Ability Power
Personal Info(Base Address+E0)
Data Type:float
+1C = Ability Power
+24 = Attack Damage
+28 =Attack Speed
+34 = Movement Speed
Example:"League of Legends.exe"+009E5568+E0+1C = Personal Ability Power
Personal Info(Base Address+E4)
Data Type:4bytes
+58 = Current HP
+5C = Max HP
+60 = HP Regen
+64 = Current MP
+68 = Max MP
+6C = MP Regen
+70 = Level
Example:"League of Legends.exe"+009E5568+E4+58 = Personal Current HP
Position Base
"League of Legends.exe"+02B19A18
Data Type:float
+10 = Camera X (Min 300 Max 14000)
+18 = Camera Y (Min 300 Max 14200)
+1F4 = Player X
+1F8 = Player Z
+1FC = Player Y
+200 = Mouse Pos X
+204 = Mouse Pos Z
+208 = Mouse Pos Y
Example:"League of Legends.exe"+02B19A18+10 = Camera X
Game Time
Data Type:4bytes
"League of Legends.exe"+00DFE568+00414004=Game Time Second
"League of Legends.exe"+001212580+00414004=Game Time Second
//----------------------------------------------------------------------
Make simple last hit bot
Minion Move Speed = 325
Minion Level = 1
Minion Attack Damage = 12 + 1*(Game Time/180)
void AutoHit()
{
if (GetKeyState(VK_LBUTTON)&(GetMouseTargetMoveSpeed( )==325)){
MouseClickTime = GetTickCount();
if ((MouseClickTime-CamaraMoveTime)>400){
Mouse_POS_X=ReadPointer(LPDWORD(InfoBase+PositionO ffset), 0x200);
Mouse_POS_Y=ReadPointer(LPDWORD(InfoBase+PositionO ffset), 0x208);
}
if ((float)GetMouseTargetCurrentHP()<(((GetMyStateAtt ackDamage()*100)/(100+GetMouseTargetArmor()))+12+(GetGameTime()/180))){
CamaraMoveTime = GetTickCount();
WritePointer(InfoBase+PositionOffset, 0x10, Mouse_POS_X);//Camera X
WritePointer(InfoBase+PositionOffset, 0x18, Mouse_POS_Y);//Camera Y
SetCursorPos(GetSystemMetrics(0)/2,GetSystemMetrics(1)/2);
mouse_event (MOUSEEVENTF_RightDOWN, 0, 0, 0, 0 );
mouse_event (MOUSEEVENTF_RightUP, 0, 0, 0, 0 );
}
}
}
odule info:
LoL.exe = 00400000
Player:
LoL+009ECF64 (00DECF64) offset E4
Player Offsets:
0 = header 4bytes = 10964540 (you can easily find that player struct by just searching this instead of using pointers)
+148 = current hp
+14A = max hp
+14C = current mana
+14E = max mana
Selected Target (right click mouse anything):
LoL+009ECF64, offset F0
Offsets:
0 = header 4bytes = 10967060
I dont remember rest, but if you browse memory region you can easily find hp and mana, so not much.
Other:
Static Camera Position (lookAt):
Start (X): 02E9BB38 (+4 z +4 y +4 rotation)
Static Player Move Point:
Start (X): 02E9BBE0 (+4 z +4 y +4 rotation)
Static Player Model Position:
Start (X): 02EA9238 (+4 z +4 y +4 rotation)
find that health is at 0x1234 and it's storing the value of 1350 (your health);
then set the scan to hex and scan for 0x1234 and find it's at something like 0x2544
static address --> pointer --> health
ADDRESS: static address --> Address you found
VALUE@ADDRESS: pointer location --> health value
the static address is the "pointer" that points to the dynamic memory location at which the health value is stored.
Sometimes there can be a whole chain of pointers that keep pointing to another pointer. A green address in CE will mean it's static, but it never hurts to find out if a non green doesn't change per game launch too.
So for example when I did that to playerX's memory location I would see something for example like:
mov [register + 200], newVal
(Trivial ASM)
so we know that the register that it is using is the base address, and 200 is the offset from the base address for the data structure.
Currently I haven't yet invested much/any time into this stuff aside from any zoom hack stuff I keep updating, or the little amount of time I spent here, But if I were going to keep using such data, I do highly recommend pattern/signature scanning as you've talked about, so something like this you would want to probably see if you could make a signature around the base address
Edit:
For example I just found the PlayerX Dest, we know how their coordinate system works, with X, Z, Y
Quote:
EAX=044708C8
EBX=00000000
ECX=0018DA9C
EDX=000001D5
ESI=04470BFB
EDI=2A4D5870
EBP=0018DAAC
ESP=0018DA20
EIP=00A316BE
Probable base pointer =044708C8
00A316AB - movss xmm0,[League of Legends.exe+406C574]
00A316B3 - mov eax,[ebp+08]
00A316B6 - movss [eax+000002BC],xmm0
00A316BE - movss xmm0,[League of Legends.exe+406C578]
00A316C6 - movss [eax+000002C0],xmm0
|
It tells you the "Probable base pointer" but it is very easy to see what the base pointer is without looking at that,
although as the CE tut teaches you these can get much more complex, in which a powerful knowledge of ASM can assist you.
I also ran across a few weird ones which is probably because I'm in the training map and have the cam locked to my character so I would expect to see player dest, player location, and player cam from the search I was doing since they all correspond.
If you got this down to a science, you could just know what the specific start locations are for the training map, and simply when there is a patch you could load up the training map and search for the specific start locations and you'd have your new memory address that you could easily find the main pointer to.
PS:
Sorry if I rambled or it doesn't make sense some places, I'm running on little sleep and am now seeking to find more
felt like I wanted to respond to keep the flow of this topic going.
Edit2:
from that small snippet of code that the window gave us we can see that it moves the value stored at [ebp+08] onto eax before we use eax as a base pointer to add 2BC to find the location of the 'playerX destination', it could be very likely that the value in ebp is also a higher up base pointer which our current pointer that we've been looking at is being stored in. There could be a possibility that ebp is some kind of master pointer, and the player data pointer is +08 on off of it, who knows maybe there's some awesome pointer stored in ebp+04
Finaly i figured out how to get the EBP value and then the address of my Unit Class
Here how i did it :
Attach CE, find mana or health value address, "Find out what access this address"
You should get something like that :
Quote:
00AAF6CA - 3B 45 58 - cmp eax,[ebp+58]
00AAF6CD - 74 03 - je League of Legends.exe+6AF6D2
00AAF6CF - 89 45 58 - mov [ebp+58],eax << ;Here we refill the health which is stored at ebp+58
00AAF6D2 - F3 0F10 44 24 28 - movss xmm0,[esp+28]
00AAF6D8 - 0F2E 45 60 - ucomiss xmm0,[ebp+60]
So to get 0x00AAF6CF i made a SigScan :
\x89\x45\x58\xF3\x0F\x10\x44\x24\x28
xxxxxxxxx
|
So, we have health @ ebp+58 and probably health regen addition @eax
I decided to make a codecave to grab the EBP value. CodeCave need at least 5bytes to work and @ 0x00AAF6CF we only have 3 avaible.
So i moved to 0x00AAF6D2 where we have 6bytes to inject my codecave.
To do this :
Quote:
g_pSigManager->Add("test1", "League of Legends.exe", "\x89\x45\x58\xF3\x0F\x10\x44\x24\x28", "xxxxxxxxx", 0x03);
//We add 0x03 to 00AAF6CF so it become 00AAF6D2 and we are ready to write the codecave
|
The codecave is simple, move ebp to a variable and execute the command we overwrote which is this one :
Quote:
|
00AAF6D2 - F3 0F10 44 24 28 - movss xmm0,[esp+28]
|
So here is the codecave :
Quote:
__declspec(naked) void GetUnitAdd(void)
{
__asm
{
pop RetAddr
//Here we grab EBP value and put it in DWORD EBPAddy
MOV EBPAddy, EBP
PUSHAD
PUSHFD
}
//Do whatever you want, i just log EBPAddy value here
__asm
{
POPFD
POPAD
//We execute the code we erased to write the codecave
MOVSS XMM0,[ESP+28]
push RetAddr
ret
}
}
|
That's all!
Just dont forget one thing, we you inject a codecave it must be 5bytes, so if you have 6bytes like in this case, NOP one byte so the game dont crash because of an incorrect bytes sequence, its important.
There is some more thing to do to use it but all the necessary is here.
There isnt much source code about league of legends so i hope this will help some people and i want to thank's you again UserNamex32 and Vallz for your help
//----------------------------------------------------------------------
Make simple last hit bot
Minion Move Speed = 325
Minion Level = 1
Minion Attack Damage = 12 + 1*(Game Time/180)
void AutoHit()
{
if (GetKeyState(VK_LBUTTON)&(GetMouseTargetMoveSpeed( )==325)){
MouseClickTime = GetTickCount();
if ((MouseClickTime-CamaraMoveTime)>400){
Mouse_POS_X=ReadPointer(LPDWORD(InfoBase+PositionO ffset), 0x200);
Mouse_POS_Y=ReadPointer(LPDWORD(InfoBase+PositionO ffset), 0x208);
}
if ((float)GetMouseTargetCurrentHP()<(((GetMyStateAtt ackDamage()*100)/(100+GetMouseTargetArmor()))+12+(GetGameTime()/180))){
CamaraMoveTime = GetTickCount();
WritePointer(InfoBase+PositionOffset, 0x10, Mouse_POS_X);//Camera X
WritePointer(InfoBase+PositionOffset, 0x18, Mouse_POS_Y);//Camera Y
SetCursorPos(GetSystemMetrics(0)/2,GetSystemMetrics(1)/2);
mouse_event (MOUSEEVENTF_RightDOWN, 0, 0, 0, 0 );
mouse_event (MOUSEEVENTF_RightUP, 0, 0, 0, 0 );
}
}
}
Auoit Lasthit bot

|
Quelle : D3Scence
|
|
|
03/23/2013, 09:03
|
#4
|
elite*gold: 35
Join Date: Aug 2007
Posts: 460
Received Thanks: 114
|
League of Legends v1.0.0.141 2012/07/11
Kannst du nicht lesen?
Und wenn sich deine "pointer" ändern hast du noch nicht den statischen pointer gefunden sondern nur einen dynamischen,also den falschen.
Die Pointer lassen sich sehr einfach finden und dananch mit nem patternscan auch nach (fast) jedem patch in sekundenschnelle neu scannen.
|
|
|
03/23/2013, 10:25
|
#5
|
elite*gold: 22
Join Date: Feb 2012
Posts: 576
Received Thanks: 332
|
danke
danke schon mal für die Hilfe,
wie gesagt ich brauch die base pointer,
beim der anzahl der tower die der gegner verloren hat ist das z.b. kein problem
(level 1 pointer ist die static adress).
Die von letztem Jahr sind denke ich nicht mehr aktuell oder?
ps:
base adresse von lol auslesen ist wie gesagt kein problem alles schon integriert
danke nochmals
|
|
|
03/24/2013, 00:22
|
#6
|
elite*gold: 126
Join Date: Apr 2010
Posts: 1,786
Received Thanks: 1,242
|
Quote:
Originally Posted by Gotoxy
League of Legends v1.0.0.141 2012/07/11
Kannst du nicht lesen?
|
Kannst du nicht Denken ? Es geht nicht um die Aktuellen adressen bei mir sondern Die methode wie man sie findet
|
|
|
03/24/2013, 07:00
|
#7
|
elite*gold: 10
Join Date: Aug 2011
Posts: 1,328
Received Thanks: 914
|
Bevor man damit anfängt nach Pointern zu suchen würde ich mich erstmal
grundlegend mit CE beschäftigen.
Was für dich eine möglichkeit wäre was sogar oben erklärt wird wäre ein Pattern
das die die jeweiligen offsets bei einem Update etc liefert.
Versuch das ganze doch einfach per ReClass, dort findest du die Offsets die du für
die jeweiligen Values brauchst. Somit brauchst du am ende auch keine Pointer sondern nur die Base <.<
|
|
|
05/25/2013, 23:58
|
#8
|
elite*gold: 0
Join Date: Apr 2008
Posts: 25
Received Thanks: 0
|
i handled to get pretty much all values, however im not able to find the correct pointer for the time, could anyone help me?
im searching for the time as string first e.g: "01:10"
then i get 2 addresses, but when i click "what accesses this address" i dont get any usefull pointer/offset.
so i tried to browse the memory region of the time address, set a breakpoint and get the pointers this way, but i dont know which address/values to take there...
here some screens:
|
|
|
05/26/2013, 00:53
|
#9
|
elite*gold: 0
Join Date: Aug 2010
Posts: 314
Received Thanks: 36
|
for what do you need this "pointer" what can you do with thiss?
|
|
|
05/26/2013, 16:44
|
#11
|
elite*gold: 0
Join Date: Apr 2008
Posts: 25
Received Thanks: 0
|
Quote:
Originally Posted by Gotoxy
|
sorry but ur post does not help at all...
i couldnt manage to find the time searching for 4byte or float, thats why i tried to find the text -.-
i think i know the basics, else i wasnt able to find all the other addresses/pointers i guess
|
|
|
05/28/2013, 01:09
|
#12
|
elite*gold: 22
Join Date: Feb 2012
Posts: 576
Received Thanks: 332
|
still seach
|
|
|
 |
Similar Threads
|
Offsets/Pointer
04/14/2010 - World of Warcraft - 4 Replies
Huhu,
hat wer die Offsets/Pointer für WoW 3.3.3a ?
Wäre n1!
|
[Help] Pointer,Offsets,Etc.
05/29/2009 - Kal Online - 10 Replies
Heyjo,
Aaalso...
Ich hab mich vorher noch nie mit Artmoney befasst bzw. nur 1-2 mal für speedhack das wars aber auch schon.
Mir geht es jetzt um den Pointer, Offsets kram.
Wenn ich Pointer suchen möchte such ich erst mal die normale adresse...sagen wir jetzt von der X Coordinate
in meinem Fall jetzt:
085EBDA8
jetzt mach ich nen rechtsklick drauf --> Mehr... --> Suche.. --> Pointer zu dieser Adresse suchen:
0 Ergebnisse
Wenn ich Pointer ab Anfang des Speicherblocks suchen klicke, kriegt...
|
need help getting mob pointer and offsets
12/21/2008 - Silkroad Online - 1 Replies
well as the topic sais i wanna get the memory adresses to read mobdata like playerdata
so far i found the adress for mobhp in the memory
the adress changes with each mob so i've set a breakpoint in olly and got the offset 0x440
with that offset i got the pointer for that client
u can c that here:
http://silkroad-planet.de/Magic/mob_hp.jpg
the mob was a movia(54hp) and the pointer was 0x9CE4E6C
well now i'm able to get the data of that client for each mob i select...
|
All times are GMT +1. The time now is 10:26.
|
|