View previous topic :: View next topic |
Author |
Message |
Csimbi I post too much Reputation: 97
Joined: 14 Jul 2007 Posts: 3229
|
Posted: Wed Oct 23, 2024 9:00 am Post subject: autoGuess type at specific offset programmatically |
|
|
Hi all,
I found this in CELUA.TXT so would like to take advantage of it:
Code: | autoGuess(baseaddresstoguessfrom, offset, size) |
This code does not appear to be adding any elements:
Code: |
while(iGap>=iAlignment) do
iOffsetToGuess=structEntryCurrent.Offset+structEntryCurrent.Bytesize+iAlignment*j
sourceStructure.autoGuess(baseAddress+iOffsetToGuess, iOffsetToGuess, iAlignment)
j=j+1
iGap=iGap-iAlignment
end
|
I know the address of the player, that's baseAddress.
iGap is the number of bytes between structEntryCurrent and structEntryNext.
iAlignment is either 4 or 8 (x86 vs. x64)
What am I doing wrong?
Thank you!
|
|
Back to top |
|
|
Dark Byte Site Admin Reputation: 465
Joined: 09 May 2003 Posts: 25570 Location: The netherlands
|
Posted: Thu Oct 24, 2024 1:43 am Post subject: |
|
|
autoguess struct is for bigger sizes so it can guess all the elements within the block.
e.g:
sourceStructure.autoGuess(baseAddress+iOffsetToGuess, iOffsetToGuess, 4096) and then remove the things you don't need later
or instead just add entries manually
also remember that offsets don't have to follow based on size of the previous entry. you can skip bytes without any issues
_________________
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 |
|
|
Csimbi I post too much Reputation: 97
Joined: 14 Jul 2007 Posts: 3229
|
Posted: Sat Oct 26, 2024 4:51 am Post subject: |
|
|
Understood, thanks!
Is there an easy way to determine what's a DWORD (signed or not), FLOAT, DOUBLE or a POINTER?
I'd like to get these basic types right, at least.
Thank you!
|
|
Back to top |
|
|
Dark Byte Site Admin Reputation: 465
Joined: 09 May 2003 Posts: 25570 Location: The netherlands
|
Posted: Sat Oct 26, 2024 7:59 am Post subject: |
|
|
if the address is dividable by 4/8 and the value represents a readable address, it could be a pointer
if you read it as a float or double, and the value is between -10000 and 10000, but not in the range of -0.000001 and 0.000001 (so an exponent is needed) then it might be a float or double
pretty much anything else is likely an integer (dword)
_________________
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 |
|
|
|