Originally Posted by
Robske007a
The VMT offsets posted by others were decimal, not hexadecimal. I know 0x looks sophisticated and all, but you can drop it 
The ASM code needs very little updating, the TLS was offset at 0x8 and is now at 0x10. Look for something like below and change the (0x)8 to 0x10
Code:
Memory.Asm.AddLine("fs mov eax, [0x2C]");
Memory.Asm.AddLine("mov eax, [eax]");
Memory.Asm.AddLine("add eax, {0}", C_ObjectManager.TLSOFFSET);
Memory.Asm.AddLine("mov dword [eax], edx");
XYZ/rotation offsets look ok.
okay.Thanks a lot. Is TLS this DescriptorsOffset ? I edited in my post before. It is the only 0x8 I found.
Yep, sorry for the Interact issue. I am just not used to work with addresses directly.
Big thanks for the asm code. Anyway do you know a good asm tutorial so I can understand what you really changed there ?
Edit: so the asm code looks like this ?
Code:
Memory.Asm.Clear();
Memory.Asm.AddLine("fs mov eax, [0x2C]");
Memory.Asm.AddLine("mov eax, [eax]");
Memory.Asm.AddLine("add eax, 0x10");
Memory.Asm.AddLine("mov dword [eax], edx", curMgr);
Memory.Asm.AddLine("mov ecx, {0}", ObjectPointer);
Memory.Asm.AddLine("call {0}", Memory.ReadUInt(VMT + VMT_GetName)); //read pointer to GetName method
Memory.Asm.AddLine("retn");
and this
Code:
this.Memory.Asm.Clear();
this.Memory.Asm.AddLine("fs mov eax, [0x2C]");
this.Memory.Asm.AddLine("mov eax, [eax]");
this.Memory.Asm.AddLine("add eax, 0x10");
this.Memory.Asm.AddLine("mov dword [eax], edx", new object[] { curMgr });
this.Memory.Asm.AddLine("mov ecx, {0}", new object[] { this.ObjectPointer });
this.Memory.Asm.AddLine("call {0}", new object[] { this.Memory.ReadUInt(this.VirtualMethodTable + VMT_INTERACT) });
this.Memory.Asm.AddLine("retn");
right ?
Azzie2k8