|
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
ablonevn Advanced Cheater Reputation: 1
Joined: 02 Oct 2011 Posts: 59
|
Posted: Thu Jan 10, 2013 10:15 pm Post subject: [SCRIPTS] Objects relationship finder |
|
|
yep, this this another scripting for someone who addicted to dig in objects and pointers, i had mention to DB to add this feature to structure dissect, but my worse in English gave him an idea about link structure, and it seem doesn't worked well, and i don't see any discus about this function in forum, perhaps i'm only one who using it =))
Description about script: sometime you found an object and another one, these is one thing you can make sure one object is "child" of another or simply contains other one. example you found player object and you found the gun object which player holding but you don't know relationship between them, here is small script to do that job. It using timer to scan address, of cause it can't compare to native class, i saw Lua Native in main.lua, but it's hard way to coding autoassambler to do this task. just wait until some do it
Installion: copy ORF.lua and ORF.frm to autorun folder and restart CE. it will show lmhs menu-item in main CE window.
here is the link download:
Code: |
http://www.mediafire.com/?gc56zgnsuq0qzln
|
sorry, i don't have enough "trust" point to upload it here
|
|
Back to top |
|
|
Dark Byte Site Admin Reputation: 458
Joined: 09 May 2003 Posts: 25296 Location: The netherlands
|
Posted: Fri Jan 11, 2013 4:58 am Post subject: |
|
|
Quote: | i had mention to DB to add this feature to structure dissect, but my worse in English gave him an idea about link structure, and it seem doesn't worked well, and i don't see any discus about this function in forum, perhaps i'm only one who using it =))
|
Then make a topic about it, without feedback I can't fix bugs.
As far as I can see it works, it fills in the undefined pointers to the structures, but do you want more feedback after it's done ?
anyhow, your implementation looks more like the structure spider
parent address=base region
children addresses=pointer must be in range, start,stop
It will find all the links to the given region from the base address
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
|
ablonevn Advanced Cheater Reputation: 1
Joined: 02 Oct 2011 Posts: 59
|
Posted: Fri Jan 11, 2013 10:26 am Post subject: |
|
|
Dark Byte wrote: | Quote: | i had mention to DB to add this feature to structure dissect, but my worse in English gave him an idea about link structure, and it seem doesn't worked well, and i don't see any discus about this function in forum, perhaps i'm only one who using it =))
|
Then make a topic about it, without feedback I can't fix bugs.
As far as I can see it works, it fills in the undefined pointers to the structures, but do you want more feedback after it's done ?
anyhow, your implementation looks more like the structure spider
parent address=base region
children addresses=pointer must be in range, start,stop
It will find all the links to the given region from the base address |
no, i think you do not need to read feedback anymore, just because these is no one use it . it only waste your time.
And about structure spider, it different abit, and i'm rather using structure dissect to comparing than using structure spider, i don't know when "structure spider" release but every time i'm using it, it only worked for first or second time and then it raise an exception and not working any more, even now. may be my computer too old ?
and the different is i'm only show which [[parent pointer+ofs1]+ofs2]+...=childpointer. i'm calling it as "relationship". but structure spider read content of both pointer with level-depth selected and compare them.
Here, i'm tested it with tutorial-i386 abit to find the most exactly root pointer, following is step to reproduce (may be i'm just lucky with these address):
for step 1-3:
i'm only reproduce for step 1, step 2 & 3 are same.
i found address point to health is: 16cff0, after doing "find out what access" it give me instruction:
tutorial-i386.exe+29198 - 8B 83 78040000 - mov eax,[ebx+00000478], that mean i need to find ebx value and my ebx=16cff0-478=0016CB78. this will be my child address. now just continue find out what access to 0016CB78, and here is instruction:
tutorial-i386.exe+23225 - 8B 1A - mov ebx,[edx]
now choose select curent function and scroll up abit, i saw a static address:
tutorial-i386.exe+231EF - A1 D0EE5800 - mov eax,[tutorial-i386.exe+18EED0] as same as
004231EF - A1 D0EE5800 - mov eax,[0058EED0] : [001AFA48]
now on the tree calling to function access to pointer i need to find, these is one static address. let us try our lucky with it: and i fill it to ORF form:
parent: 0058EED0
child: 0016CB78, and i' really lucky, here is result when i' click to scan:
[[*+0]+38]. that mean : [[0058EED0+0]+38]==0016CB78. done, find root pointer finish & almost first 4th [*+0] pointer in table are worked. with pointer scan with level these are about 100 address, but i think this one is the nearest.
and for step 4:
address i'm found is:150020 and after doing find out what access to i found this:
00429ED4 - 8B 80 70040000 - mov eax,[eax+00000470](*)
00429EDA - 8B 00 - mov eax,[eax]
set break point on 00429ED4 then i have eax=00170E88, i' find what access to this object. i have these code:
00423225 - 8B 1A - mov ebx,[edx]
scroll up abit we see 0058EED0 again. and scan for relation ship we have it's offset [[*+0]+38], event if i follow the "ret" instruction from (*) i will see static address 0058EEC0 and scan for relationship it will return: [[*+10]+38] is same result.
i think this could be more powerful if your "find out what access" you do a log "tree calling" combine with "run until ret" & using your guess "select current function" to collect every code and reveal it contain static address or not (the right part of assember instruction which have length= and do scan pointer with parent address is address you had loged, childrent is address selected on address table. if the pointer relationship can be found. i'think it is the best static address. and of course, if these is solution to save these pointer to compare with later scan or when restart game. i think log address "position" instead "address" is better to apply change for the next scan.
Description: |
|
Download |
Filename: |
Tutorial-i386.CT |
Filesize: |
171.5 KB |
Downloaded: |
995 Time(s) |
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|