Page 1 of 3

May 15th Offsets

Posted: Thu May 15, 2003 10:00 am
by Jaerin
So help me if any of these are wrong I will eat a shoe.

No really if any of these are wrong then they were wrong on the April 30th.

***It appears that Memchecker1 has changed. 2 and 3 appear to be the same***

Code: Select all

[MacroQuest]
MacroQuestVersion=SRC-20030308
ClientName=eqgame
ClientVersion=Thu May 15 02:59:xx 2003
ClientOverride=0
MacroQuestWinClassName=__MacroQuestTray
MacroQuestWinName=MacroQuest

[Function Locations]
WriteChatColor=004E2779
GetRaceByID=004D7F4B
GetClassByID=004D78F6
GetDeityByID=004D93ED
LeftClick=0
RightClick=0
ScreenItem=0045DBC5
ScreenSpawn=004EC092
NewUIINI=00447FFA
MaxMana=00465E04
Commands=004EB1D8
CmdCleanup=0
MemChecker=004FB60C
MemChecker2=004FF0B4
MemCheckAddr1=004FF122
MemCheckAddr2=004FF15A
MemChecker3=004FC509

[DirectInput8]
Main=0077A7E4
Keyboard=0077A7E8
Mouse=0077A7EC

[Memory Locations]
Zoning=007600B8
Zones=007600D4
SpawnHeader=007600D8
Items=007600DC
Doors=007600F4
SpawnFooter=00760100
Char=00760114
CharInfo=0076011C
Target=00760120
Guilds=006F440C
Packs=0
OldAttack=0075DB32
Mouse=0077A980
Attack=00731FC8
Spells=0076D880
CommandList=005AEEC0
DoAbilityList=00736CE8
DoAbilityAvailable=00731F64
Group=006B010D
GroupCount=006B0108
HSliderItems=0
HSliderMoney=0
PackPanel1=0
PackPanel2=0
clsMain=0
clsItems=00760144
clsSpawns=007600C8
clsInvPanel=0
clsMerchantPanelStatus=0
clsMerchantItemBase=0
clsMerchantSelectedItem=0
clsMerchantSelectedSlotID=0
clsMainNewUI=0077A980
clsMainSpellRefresh=0
clsMainSpellMemId=0
clsMainSpellMemBar=0
clsMainSpellMemGem=0

EncryptPad=005C9130
EncryptPad2=005C9554
EncryptPad3=005C9D80

Posted: Thu May 15, 2003 10:39 am
by Mckorr
So are you saying mecheck1 needs a rewrite?

Posted: Thu May 15, 2003 10:43 am
by sprite
Do not run MQ till Memcheck 1 has been rewritten.

Verant seems determined to do some bannings now. An invalid checksum in memcheck 1 will not cause a disconnection. Which means in all likelyness it is being logged instead.

You can test this yourself by removing the entire memcheck1 detour. It won't have any effect. The memcheck is being ran, but is not disconnecting, therefore it must be logged instead.

You have been warned.

Posted: Thu May 15, 2003 4:49 pm
by Mckorr
You forgot the offset for ServerHost in Memory Locations.... :D

Posted: Thu May 15, 2003 4:52 pm
by Jaerin
That one is not in CVS so I haven't updated it.

I pulled the original eqgame.ini from the April 30th version since it seemed there was question on whether my last offsets were off.

Jaerin

Posted: Thu May 15, 2003 5:07 pm
by EqMule

Code: Select all

clsMain=00760100
clsInvPanel=00002CB8
getting the rest as well...

Posted: Thu May 15, 2003 6:57 pm
by Mckorr
ServerHost=006FC75C

Will need that one eventually (I hope, crossing fingers...)

Posted: Thu May 15, 2003 7:03 pm
by NealThorpayt
Greetings Constructs,

EQMule, How were you able to find the offset for clsMain when it was generally believed to have been removed?

End of line...

Posted: Thu May 15, 2003 8:01 pm
by || Napolion ||
sprite wrote:Do not run MQ till Memcheck 1 has been rewritten.

Verant seems determined to do some bannings now. An invalid checksum in memcheck 1 will not cause a disconnection. Which means in all likelyness it is being logged instead.

You can test this yourself by removing the entire memcheck1 detour. It won't have any effect. The memcheck is being ran, but is not disconnecting, therefore it must be logged instead.

You have been warned.
Are you sure about this ?? :roll:

I am out of here.
|| Napolion ||

Posted: Thu May 15, 2003 8:22 pm
by dont_know_at_all
Same source code, different compiler options. Looks different but does the same thing.

It is safe.

Posted: Thu May 15, 2003 8:31 pm
by Amadeus
My question is what is clsmain, and what makes it important? Also, how could you tell that 00002cb8 was definately the the clsinvpanel. It looks more like clsmain+clsinvpanel should be another offset itself rather than relating one to the other....in my stack it looks like there are other structs between clsmain and clsmain+clsinvpanel as it is given now.

Maybe I'm missing something; however, it looks to me like clsmain is a struct of only 0x30 bytes as 0x31 looks like part of the spawnlist struct in my stack.

I think it's weird how CLSMAIN and CLSINVPANEL and all those like it are used in the source....seems awkward....

Posted: Thu May 15, 2003 8:37 pm
by Mckorr
A lot of the EQ code looks awkward. My guess is it was written by seperate teams, then simply tacked together rather than looking for ways to share code, optimize, etc. Piecemeal organization, resulting in a lot of redundancy.

Kinda like MQ if you think about it....

Posted: Thu May 15, 2003 9:36 pm
by sprite
Yeah Memcheck 1 is safe, seems like they are using dwords instead of bytes to hold the keys, or I could be wrong about this too /shrug.

Posted: Fri May 16, 2003 2:16 am
by zedisdeadbaby
/mouseto is crashing me with these offsets :cry:

Posted: Fri May 16, 2003 3:41 am
by Amadeus
clsMain=00760100
clsInvPanel=00002CB8

getting the rest as well...
I don't think this is right. Offset 00760100 is actually SPAWNINFO for the current character.

Notice:

Code: Select all

0:010> dd 0076011C L 1      //0076011C is the current CHARINFO offset
0076011c  05943470

0:010> dd 05943470+0x16e0 L 1    //0x16e0 is the current offset of pSpawn in CHARINFO
05944b50  [b]0611f488[/b]

Code: Select all

0:010> dd 00760100 L 1     //00760100: offset recently presented as clsmain
00760100  [b]0611f488[/b]

Thus:

Code: Select all

0:010> !c:\games\macroquest\mqext\release\mqext.pspawn 0611f488

Name = Amadeus (offset 0x1)    // yea right...hehe
SpeedZ = -0.625504 (offset 0x48)
Heading = 257.318176 (offset 0x4c)
X = -1898.431885 (offset 0x50)
SpeedX = -1.941145 (offset 0x54)
Y = -689.787903 (offset 0x58)
Z = 81.762253 (offset 0x5c)
SpeedRun = 0.910000 (offset 0x64)
SpeedY = -0.023823 (offset 0x68)
SpeedHeading = 0.000000 (offset 0x70)
CameraAngle = 0.000000 (offset 0x74)
pActorInfo = 97647944 (offset 0x84)
LFG = 0 (offset 0x8f)
Zone = 33 (offset 0xdc)
pNext = 0 (offset 0xe4)
pCharInfo = 93598832 (offset 0xe8)
pPrev = 672172416 (offset 0xf0)
Lastname =  (offset 0xf8)
Type = 0 (offset 0x134)
Light = 12 (offset 0x135)
Level = 65 (offset 0x13c)
Gender = 0 (offset 0x13e)
HideMode = 1 (offset 0x140)
StandState = 100 (offset 0x141)
Class = 6 (offset 0x142)
GM = 0 (offset 0x146)
SpawnID = 2134 (offset 0x148)
MasterID = 0 (offset 0x14c)
Race = 4 (offset 0x150)
Anon = 2 (offset 0x154)
AARank = 0 (offset 0x158)
AFK = 0 (offset 0x15c)
VisType = 1 (offset 0x160)
HPCurrent = 2697 (offset 0x164)
Deity = 215 (offset 0x170)
HPMax = 2697 (offset 0x174)
GuildID = 80 (offset 0x178)

Maybe clsmain is supposed to be the current char's spawninfo. Again, I never really understood it's purpose. But, one could get it without a seperate entry in eqgame.ini if that were the case.

The other interesting thing of note is that I thought perhaps if this offset pointed to the current char's spawninfo, then maybe our offset for char= was wrong...but, nope.

Code: Select all

0:010> dd 00760100 L 8
00760100  [b]0611f488[/b] 00000000  00000000 00000000
00760110  00000000  [b]0611f488[/b] 00000000 05943470

So...hmm...dunno what to tell ya