 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
sdecorme Cheater
Reputation: 0
Joined: 07 Sep 2010 Posts: 33
|
Posted: Fri Jun 28, 2013 3:21 pm Post subject: finding address from a .pdb decompilation |
|
|
HI,
I have a software that I would like to snif some data .
In the main directory I've found a .pdb file and I've decompiled it.
I've found this
Function : static, [00475E50][0001:00474E50], len = 0000013A, public: virtual bool __thiscall DynamicObjectsProcessor::ExtractState(class NET::BitStream &)
Function attribute:
Function info:
FuncDebugStart : static, [00475E5C][0001:00474E5C]
FuncDebugEnd : static, [00475F81][0001:00474F81]
Data : enregistered ecx, Object Ptr, Type: class DynamicObjectsProcessor * const, this
Data : ebp Relative, [00000008], Param, Type: class NET::BitStream &, o_stream
Data : esp Relative, [FFFFFFC3], Local, Type: bool, objectRecorded
Data : esp Relative, [FFFFFFC4], Local, Type: const unsigned int *, it
Data : esp Relative, [FFFFFFC8], Local, Type: unsigned int, instanceIndex
Data : esp Relative, [FFFFFFD8], Local, Type: class GEM::GVector3, CameraAngle
CallSite : [0x0001:0x00474ef3] 0x00475EF3 void (class GEM::GVector3 &, class GEM::Position &)
And Would like to know how can I use cheatengine to track this data :
CameraAngle & Position .
Thanks you
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25831 Location: The netherlands
|
Posted: Fri Jun 28, 2013 3:31 pm Post subject: |
|
|
These are local vars so first need to be initialized by the function first.
Try setting a breakpoint at process.exe+00475EF3 and inspect the stack there. (Also look at the assemblercode there)
_________________
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 |
|
 |
sdecorme Cheater
Reputation: 0
Joined: 07 Sep 2010 Posts: 33
|
Posted: Sun Jun 30, 2013 3:03 pm Post subject: |
|
|
Hi,
How can I set a breakpoint at this address if the game is not launched ?
I suppose I've to launch CE and after the game and I make a pause to search the good address.
Is it the good way ?
Thanks
Happy birthday Dark Byte
|
|
| Back to top |
|
 |
sdecorme Cheater
Reputation: 0
Joined: 07 Sep 2010 Posts: 33
|
Posted: Mon Jul 01, 2013 1:48 pm Post subject: |
|
|
Hi back again with mytracking data, as you tell me I've open the memory viewer with the info I've found in the .pdb
| Code: |
Function : static, [00475E50][0001:00474E50], len = 0000013A, public: virtual bool __thiscall DynamicObjectsProcessor::ExtractPhysicsState(class NET::BitStream &)
Function attribute:
Function info:
FuncDebugStart : static, [00475E5C][0001:00474E5C]
FuncDebugEnd : static, [00475F81][0001:00474F81]
Data : enregistered ecx, Object Ptr, Type: class DynamicObjectsProcessor * const, this
Data : ebp Relative, [00000008], Param, Type: class NET::BitStream &, o_stream
Data : esp Relative, [FFFFFFC3], Local, Type: bool, objectRecorded
Data : esp Relative, [FFFFFFC4], Local, Type: const unsigned int *, it
Data : esp Relative, [FFFFFFC8], Local, Type: unsigned int, instanceIndex
Data : esp Relative, [FFFFFFD8], Local, Type: class GEM::GVector3, angularVelocity
Data : esp Relative, [FFFFFFF0], Local, Type: class GEM::GQuaternion, rotation
Data : esp Relative, [FFFFFFCC], Local, Type: class GEM::GVector3, position
Data : esp Relative, [FFFFFFE4], Local, Type: class GEM::GVector3, linearVelocity
CallSite : [0x0001:0x00474ef3] 0x00475EF3 void (class GEM::GVector3 &, class GEM::GQuaternion &)
|
Goto address : CamProcess.exe+00475E50 here is what I've found
| Code: |
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState - 48 - dec eax
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+1- 52 - push edx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+2- 89 44 24 24 - mov [esp+24],eax
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+6- 8B 44 24 48 - mov eax,[esp+48]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+A- 50 - push eax
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+B- 89 4C 24 2C - mov [esp+2C],ecx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+F- 8D 4C 24 28 - lea ecx,[esp+28]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+13- 51 - push ecx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+14- 8D 14 3E - lea edx,[esi+edi]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+17- 52 - push edx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+18- 57 - push edi
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+19- E8 022FFCFF - call CamProcess.GEM::GQuaternion::BuildRotation+310
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+1E- 8D 0C 3E - lea ecx,[esi+edi]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+21- 83 C4 14 - add esp,14
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+24- 3B C1 - cmp eax,ecx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+26- 74 13 - je CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+3B
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+28- 8B 54 24 24 - mov edx,[esp+24]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+2C- 3B 50 04 - cmp edx,[eax+04]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+2F- 72 0A - jb CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+3B
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+31- 77 0B - ja CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+3E
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+33- 8B 4C 24 20 - mov ecx,[esp+20]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+37- 3B 08 - cmp ecx,[eax]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+39- 73 03 - jae CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+3E
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+3B- 8D 04 3E - lea eax,[esi+edi]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+3E- 8D 14 3E - lea edx,[esi+edi]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+41- 3B C2 - cmp eax,edx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+43- 74 57 - je CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+9C
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+45- 8B 44 2B 10 - mov eax,[ebx+ebp+10]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+49- 8B 54 24 44 - mov edx,[esp+44]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+4D- 8B 5C 2B 14 - mov ebx,[ebx+ebp+14]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+51- C6 44 24 48 00 - mov byte ptr [esp+48],00
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+56- 8B 4C 24 48 - mov ecx,[esp+48]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+5A- 51 - push ecx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+5B- 52 - push edx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+5C- 89 44 24 28 - mov [esp+28],eax
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+60- 8D 44 24 28 - lea eax,[esp+28]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+64- 50 - push eax
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+65- 8D 0C 3E - lea ecx,[esi+edi]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+68- 51 - push ecx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+69- 57 - push edi
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+6A- 89 5C 24 38 - mov [esp+38],ebx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+6E- E8 AD2EFCFF - call CamProcess.GEM::GQuaternion::BuildRotation+310
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+73- 8D 14 3E - lea edx,[esi+edi]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+76- 83 C4 14 - add esp,14
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+79- 3B C2 - cmp eax,edx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+7B- 74 0F - je CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+8C
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+7D- 3B 58 04 - cmp ebx,[eax+04]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+80- 72 0A - jb CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+8C
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+82- 77 0B - ja CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+8F
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+84- 8B 4C 24 20 - mov ecx,[esp+20]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+88- 3B 08 - cmp ecx,[eax]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+8A- 73 03 - jae CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+8F
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+8C- 8D 04 3E - lea eax,[esi+edi]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+8F- 8B 4C 24 44 - mov ecx,[esp+44]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+93- 83 C0 08 - add eax,08
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+96- 50 - push eax
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+97- E8 1410FBFF - call CamProcess.PhysicsAnimators::ClosestPtSegmentSegment+1D0
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+9C- 8B 44 24 44 - mov eax,[esp+44]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+A0- 8D 54 24 18 - lea edx,[esp+18]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+A4- 3B D0 - cmp edx,eax
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+A6- 74 13 - je CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+BB
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+A8- 8B 4C 24 18 - mov ecx,[esp+18]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+AC- 8B 54 24 1C - mov edx,[esp+1C]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+B0- 89 08 - mov [eax],ecx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+B2- 89 50 04 - mov [eax+04],edx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+B5- EB 04 - jmp CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+BB
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+B7- 8B 44 24 44 - mov eax,[esp+44]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+BB- 8B 4C 24 28 - mov ecx,[esp+28]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+BF- 8B 49 08 - mov ecx,[ecx+08]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+C2- 8B 6C 29 20 - mov ebp,[ecx+ebp+20]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+C6- 8B 55 10 - mov edx,[ebp+10]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+C9- 09 50 18 - or [eax+18],edx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+CC- 8B 4D 14 - mov ecx,[ebp+14]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+CF- 09 48 1C - or [eax+1C],ecx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+D2- 8B 5C 24 44 - mov ebx,[esp+44]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+D6- F3 0F10 43 28 - movss xmm0,[ebx+28]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+DB- 0F2F 05 7433E100 - comiss xmm0,[CamProcess.exe+A13374]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+E2- 76 2C - jna CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+110
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+E4- 8B 53 18 - mov edx,[ebx+18]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+E7- 8B 73 1C - mov esi,[ebx+1C]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+EA- 8B C2 - mov eax,edx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+EC- 23 05 E0F20E01 - and eax,[CamProcess.exe+CEF2E0]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+F2- 8B CE - mov ecx,esi
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+F4- 23 0D E4F20E01 - and ecx,[CamProcess.exe+CEF2E4]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+FA- 0B C1 - or eax,ecx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+FC- 75 12 - jne CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+110
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+FE- 0B 15 A0F20E01 - or edx,[CamProcess.exe+CEF2A0]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+104- 0B 35 A4F20E01 - or esi,[CamProcess.exe+CEF2A4]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+10A- 89 53 18 - mov [ebx+18],edx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+10D- 89 73 1C - mov [ebx+1C],esi
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+110- 8B 4C 24 34 - mov ecx,[esp+34]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+114- 64 89 0D 00000000 - mov fs:[00000000],ecx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+11B- 59 - pop ecx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+11C- 5F - pop edi
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+11D- 5E - pop esi
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+11E- 5D - pop ebp
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+11F- 5B - pop ebx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+120- 83 C4 2C - add esp,2C
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+123- C2 0800 - ret 0008
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+126- CC - int 3
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+127- CC - int 3
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+128- CC - int 3
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+129- CC - int 3
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+12A- CC - int 3
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+12B- CC - int 3
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+12C- CC - int 3
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+12D- CC - int 3
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+12E- CC - int 3
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+12F- CC - int 3
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+130- 51 - push ecx
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+131- 8B 4C 24 08 - mov ecx,[esp+08]
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+135- 56 - push esi
CamProcess.DynamicObjectsProcessor::ExtractPhysicsState+136- 8B 35 68B70C01 - mov esi,[CamProcess.CollidableObjectManager::s_collidableObjectProperties]
CamProcess.exe+475F8C - 57 - push edi
CamProcess.exe+475F8D - 6B F6 68 - imul esi,esi,68
|
How can I read the register I'm not a CE king .
Thanks you
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25831 Location: The netherlands
|
Posted: Mon Jul 01, 2013 2:48 pm Post subject: |
|
|
I think your pdb is outdated or wrong (check that the filedate of camprocess.exe and the specific .pdb file are exactly the same)
Anyhow, I think the offsets are off by 1d0 or 310, so check
CamProcess.exe+00475c80 ( CamProcess.exe+00475E50-310 )
and
CamProcess.exe+00475b40 ( CamProcess.exe+00475E50-310 )
or scroll up till you see a "int 3"
here's a tip, keep in mind that this functions makes use of esp relative addressing, and PUSH modifies esp
so
| Code: |
mov eax,[esp+48]
push eax
mov [esp+2C],ecx
|
will work on different ESP addresses
so if ESP was 10000 at the beginning then
mov eax,[esp+48] would read from 10000+48=10048
push eax decreases ESP with 4 (so ESP turns into fffc )
mov [esp+2c],ecx would then write ecx to fffc+2c=10028
_________________
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
Last edited by Dark Byte on Wed Jul 03, 2013 7:24 am; edited 1 time in total |
|
| Back to top |
|
 |
sdecorme Cheater
Reputation: 0
Joined: 07 Sep 2010 Posts: 33
|
Posted: Wed Jul 03, 2013 6:42 am Post subject: |
|
|
| what is the filedata ?
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25831 Location: The netherlands
|
Posted: Wed Jul 03, 2013 7:24 am Post subject: |
|
|
filedate
_________________
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 |
|
 |
sdecorme Cheater
Reputation: 0
Joined: 07 Sep 2010 Posts: 33
|
Posted: Thu Jul 04, 2013 2:47 am Post subject: |
|
|
Ok,
You're right not the same modified date
I will try to track my data with pointer scan , now I know the structure is will be more easy.
Thanks you
|
|
| 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
|
|