007B3105 - 8B 84 9F 10040000 - mov eax,[edi+ebx*4+00000410]
007B310C - 8B 0D 0CA4F500 - mov ecx,[Client.exe+B5A40C]
007B3112 - 89 81 28020000 - mov [ecx+00000228],eax <<
007B3118 - 8B 15 0CA4F500 - mov edx,[Client.exe+B5A40C]
007B311E - C6 82 30020000 01 - mov byte ptr [edx+00000230],01
EAX=2E439B38
EBX=00000001
ECX=099C7B28
EDX=2E439B38
ESI=00000002
EDI=1ADB1838
ESP=0018A480
EBP=0018CCC4
EIP=007B3118
EAX=2E439B38
EBX=00000001
ECX=099C7B28
EDX=2E439B38
ESI=00000002
EDI=1ADB1838
EBP=0018CCC4
ESP=0018A480
EIP=007B3118
指针基址可能是 =099C7B28
007B3105 - mov eax,[edi+ebx*4+00000410]
007B310C - mov ecx,[Client.exe+B5A40C]
007B3112 - mov [ecx+00000228],eax
007B3118 - mov edx,[Client.exe+B5A40C]
007B311E - mov byte ptr [edx+00000230],01
然后得到EDI的基址 可能会是 031B85B0
031DC9EC
*********************************************************************************
006C2E61 - 3B 8B F4040000 - cmp ecx,[ebx+000004F4]
006C2E67 - 0F85 81000000 - jne Client.exe+2C2EEE
006C2E6D - A1 B0851B03 - mov eax,[Client.exe+2DB85B0] <<
006C2E72 - 83 3C 06 00 - cmp dword ptr [esi+eax],00
006C2E76 - 0F84 72000000 - je Client.exe+2C2EEE
EAX=1ADB1838
EBX=1AC48428
ECX=00000001
EDX=00000000
ESI=00000410
EDI=0000FFFF
ESP=0018A5F0
EBP=0018CE1C
EIP=006C2E72
得到的应该就是对象的基址
006C2E61 3B8B F4040000 CMP ECX,DWORD PTR DS:[EBX+4F4]
006C2E67 0F85 81000000 JNZ Client.006C2EEE
006C2E6D A1 B0851B03 MOV EAX,DWORD PTR DS:[31B85B0]
006C2E72 833C06 00 CMP DWORD PTR DS:[ESI+EAX],0
006C2E76 0F84 72000000 JE Client.006C2EEE
********************************************************************************
004A9B23 - 3B C3 - cmp eax,ebx
004A9B25 - 0F8C F4000000 - jl Client.exe+A9C1F
004A9B2B - 39 1C 85 B0BE1D03 - cmp [eax*4+Client.exe+2DDBEB0],ebx <<
004A9B32 - 0F84 E7000000 - je Client.exe+A9C1F
004A9B38 - 39 5E 10 - cmp [esi+10],ebx
EAX=000002CF
EBX=00000000
ECX=00F37FB8
EDX=00000258
ESI=1ACBAF00
EDI=00000185
ESP=0018CD28
EBP=0018CE50
EIP=004A9B32
得到的基址未
004A9B23 3BC3 CMP EAX,EBX
004A9B25 0F8C F4000000 JL Client.004A9C1F
004A9B2B 391C85 B0BE1D03 CMP DWORD PTR DS:[EAX*4+31DBEB0],EBX
004A9B32 0F84 E7000000 JE Client.004A9C1F
004A9B38 395E 10 CMP DWORD PTR DS:[ESI+10],EBX
004A9B3B 0F84 DE000000 JE Client.004A9C1F
为所有对象基址
*********************************************************************
最后得到的算法为
dd [31B85B0]+410+ 4*1
+8 //技能类型 1B表示技能书 1C表示技能书中的技能
+0c //表示所有对象数组ID
+5c //技能名字
+0b1 //玩家职业
+1f6 //是否修炼 (WORD表示)