外挂技术研究系列-分析人物属性数据和偏移

分析目标:
1、分析人物角色 金钱基址; 




//-----人物属性结构----------
typedef struct _ST_人物属性
{  
   UNIT 当前HP值;// 4字节  +8
   UINT 当前MP值;//
   UNIT HP值上限;//
   UINT MP值上限;//
   UINT 人物等级;//
   UINT 人物金钱;//
   UINT 攻击力 
   UINT 防御力
   //其它属性...
   
  }ST_人物属性,*PST_人物属性;


//人物属性
2F86170 //HP生命 血量值
2F86174 //MP内功 魔力值
381/381
252/252
39%  //1000
49.17%
势力:
名声:
等级23
历练值27138
攻击 158
防御 130
命中 118
回避 077
心 51
体 54
气 31
魂 91


2F860F0
+0 //人物名字 地址
+34 //1BYTE 空间 表示等级
+35 //1BYTE 表示 几转
+36 //人物名声:
+80 //HP
+84 //Mp
+88 //愤怒值
+8C //HP 最大值
+90 //MP 最大值
+94 //愤怒值 最大值
+98 // 8字节 当前经验值
+A0 // 8字节 达到下一个等级需要的经验值
+B0 //心
+B4 //体
+B8 //气
+BC //魂 //2F860F0+0BC
+E4 //8字节 当前金钱值




#define  Base_RoleProperty 0x2F9E4d0  //人物属性


8A4E0669C07C0100008888A46DCF000FB70669C07C010000B9 //0x19
//0041A066-0041A04D
0041A04D  |.  8A4E 06       MOV CL,BYTE PTR DS:[ESI+0x6]
0041A050  |.  69C0 7C010000 IMUL EAX,EAX,0x17C
0041A056  |.  8888 A46DCF00 MOV BYTE PTR DS:[EAX+0xCF6DA4],CL
0041A05C  |.  0FB706        MOVZX EAX,WORD PTR DS:[ESI]
0041A05F  |.  69C0 7C010000 IMUL EAX,EAX,0x17C
0041A065  |.  B9 D0E4F902   MOV ECX,Client.02F9E4D0 //Base_RoleProperty 




0041A04D  |.  8A4E 06       MOV CL,BYTE PTR DS:[ESI+0x6]
0041A050  |.  69C0 7C010000 IMUL EAX,EAX,0x17C
0041A056  |.  8888 A46DCF00 MOV BYTE PTR DS:[EAX+0xCF6DA4],CL
0041A05C  |.  0FB706        MOVZX EAX,WORD PTR DS:[ESI]
0041A05F  |.  69C0 7C010000 IMUL EAX,EAX,0x17C
0041A065  |.  B9 D0E4F902   MOV ECX,Client.02F9E4D0 




0041A01A  |.  899F 28200000 MOV DWORD PTR DS:[EDI+0x2028],EBX
0041A020  |.  899F 1C200000 MOV DWORD PTR DS:[EDI+0x201C],EBX
0041A026  |.  E8 25CE2D00   CALL Client.006F6E50
0041A02B  |.  8A8F 30200000 MOV CL,BYTE PTR DS:[EDI+0x2030]
0041A031  |.  83C4 18       ADD ESP,0x18
0041A034  |.  884F 68       MOV BYTE PTR DS:[EDI+0x68],CL
0041A037  |.  E9 9D000000   JMP Client.0041A0D9
0041A03C  |>  0FB706        MOVZX EAX,WORD PTR DS:[ESI]
0041A03F  |.  BA 409C0000   MOV EDX,0x9C40
0041A044  |.  66:3BC2       CMP AX,DX
0041A047  |.^ 0F83 70FEFFFF JNB Client.00419EBD
0041A04D  |.  8A4E 06       MOV CL,BYTE PTR DS:[ESI+0x6]
0041A050  |.  69C0 7C010000 IMUL EAX,EAX,0x17C
0041A056  |.  8888 A46DCF00 MOV BYTE PTR DS:[EAX+0xCF6DA4],CL
0041A05C  |.  0FB706        MOVZX EAX,WORD PTR DS:[ESI]
0041A05F  |.  69C0 7C010000 IMUL EAX,EAX,0x17C
0041A065  |.  B9 D0E4F902   MOV ECX,Client.02F9E4D0                      ;  人物属性基址
0041A06A  |.  05 7C6DCF00   ADD EAX,Client.00CF6D7C
0041A06F  |.  90            NOP
0041A070  |>  8A10          /MOV DL,BYTE PTR DS:[EAX]
0041A072  |.  3A11          |CMP DL,BYTE PTR DS:[ECX]
0041A074  |.  75 1A         |JNZ SHORT Client.0041A090








//人物属性


2F9E4d0
+00 //人物名字 地址
+34 //1BYTE 空间 表示等级
+35 //1BYTE 表示 几转
+36 //char*人物名声:
+80 //HP
+84 //Mp
+88 //愤怒值
+8C //HP 最大值
+90 //MP 最大值
+94 //愤怒值 最大值
+98 // 8字节 当前经验值
+A0 // 8字节 达到下一个等级需要的经验值
+AC //历练
+B0 //心
+B4 //体
+B8 //气
+BC //魂 //2F860F0+0BC
+C8 攻击力
+CC 防御力
+D0 命中
+D4 回避
+E4 //8字节 当前金钱值
+EC //2字节 当前负重
+EE //2字节 负重上限
+F0 //2 BYTE //气功点数
+F4 //2 BYTE //第一气功 所加点数 *(char*)(2F860F0+F4+4*i)
+F8 //2 BYTE //第二气功




00419FB5    0FBE82 A26DCF00 MOVSX EAX,BYTE PTR DS:[EDX+0xCF6DA2]
00419FBC    8987 30200000   MOV DWORD PTR DS:[EDI+0x2030],EAX
00419FC2    0FB70E          MOVZX ECX,WORD PTR DS:[ESI]
00419FC5    69C9 7C010000   IMUL ECX,ECX,0x17C
00419FCB    0FBE91 A46DCF00 MOVSX EDX,BYTE PTR DS:[ECX+0xCF6DA4]
00419FD2    BB 01000000     MOV EBX,0x1
00419FD7    03D3            ADD EDX,EBX
00419FD9    8997 1C200000   MOV DWORD PTR DS:[EDI+0x201C],EDX
00419FDF    0FB706          MOVZX EAX,WORD PTR DS:[ESI]
00419FE2    69C0 7C010000   IMUL EAX,EAX,0x17C
00419FE8    8A88 A26DCF00   MOV CL,BYTE PTR DS:[EAX+0xCF6DA2]
00419FEE    884F 68         MOV BYTE PTR DS:[EDI+0x68],CL
00419FF1    3BD3            CMP EDX,EBX
00419FF3    7E 06           JLE SHORT Client.00419FFB
00419FF5    899F 1C200000   MOV DWORD PTR DS:[EDI+0x201C],EBX
00419FFB    8B97 082D0000   MOV EDX,DWORD PTR DS:[EDI+0x2D08]
0041A001    6A 00           PUSH 0x0
0041A003    8DB7 0C200000   LEA ESI,DWORD PTR DS:[EDI+0x200C]
0041A009    56              PUSH ESI
0041A00A    52              PUSH EDX
0041A00B    E8 40CE2D00     CALL Client.006F6E50
0041A010    8B87 082D0000   MOV EAX,DWORD PTR DS:[EDI+0x2D08]
0041A016    6A 00           PUSH 0x0
0041A018    56              PUSH ESI
0041A019    50              PUSH EAX
0041A01A    899F 28200000   MOV DWORD PTR DS:[EDI+0x2028],EBX
0041A020    899F 1C200000   MOV DWORD PTR DS:[EDI+0x201C],EBX
0041A026    E8 25CE2D00     CALL Client.006F6E50
0041A02B    8A8F 30200000   MOV CL,BYTE PTR DS:[EDI+0x2030]
0041A031    83C4 18         ADD ESP,0x18
0041A034    884F 68         MOV BYTE PTR DS:[EDI+0x68],CL
0041A037    E9 9D000000     JMP Client.0041A0D9
0041A03C    0FB706          MOVZX EAX,WORD PTR DS:[ESI]
0041A03F    BA 409C0000     MOV EDX,0x9C40
0041A044    66:3BC2         CMP AX,DX
0041A047  ^ 0F83 70FEFFFF   JNB Client.00419EBD
0041A04D    8A4E 06         MOV CL,BYTE PTR DS:[ESI+0x6]
0041A050    69C0 7C010000   IMUL EAX,EAX,0x17C
0041A056    8888 A46DCF00   MOV BYTE PTR DS:[EAX+0xCF6DA4],CL  //8888A46DCF000FB70669C07C010000B9 
0041A05C    0FB706          MOVZX EAX,WORD PTR DS:[ESI]
0041A05F    69C0 7C010000   IMUL EAX,EAX,0x17C
0041A065    B9 D0E4F902     MOV ECX,Client.02F9E4D0                                      ; 人物属性基址
0041A06A    05 7C6DCF00     ADD EAX,Client.00CF6D7C
0041A06F    90              NOP
0041A070    8A10            MOV DL,BYTE PTR DS:[EAX]
0041A072    3A11            CMP DL,BYTE PTR DS:[ECX]
0041A074    75 1A           JNZ SHORT Client.0041A090
0041A076    84D2            TEST DL,DL
0041A078    74 12           JE SHORT Client.0041A08C
0041A07A    8A50 01         MOV DL,BYTE PTR DS:[EAX+0x1]
0041A07D    3A51 01         CMP DL,BYTE PTR DS:[ECX+0x1]
0041A080    75 0E           JNZ SHORT Client.0041A090
0041A082    83C0 02         ADD EAX,0x2
0041A085    83C1 02         ADD ECX,0x2
0041A088    84D2            TEST DL,DL
0041A08A  ^ 75 E4           JNZ SHORT Client.0041A070
0041A08C    33C0            XOR EAX,EAX
0041A08E    EB 05           JMP SHORT Client.0041A095
0041A090    1BC0            SBB EAX,EAX
0041A092    83D8 FF         SBB EAX,-0x1
0041A095    85C0            TEST EAX,EAX
0041A097    75 09           JNZ SHORT Client.0041A0A2
0041A099    8A56 06         MOV DL,BYTE PTR DS:[ESI+0x6]
0041A09C    8815 05E5F902   MOV BYTE PTR DS:[0x2F9E505],DL
0041A0A2    0FB706          MOVZX EAX,WORD PTR DS:[ESI]
0041A0A5    6A 00           PUSH 0x0
0041A0A7    6A 31           PUSH 0x31
0041A0A9    50              PUSH EAX
0041A0AA    E8 110A3D00     CALL Client.007EAAC0
0041A0AF    8BF8            MOV EDI,EAX
0041A0B1    83C4 0C         ADD ESP,0xC
0041A0B4    85FF            TEST EDI,EDI
0041A0B6  ^ 0F84 01FEFFFF   JE Client.00419EBD
0041A0BC    0FB70E          MOVZX ECX,WORD PTR DS:[ESI]
0041A0BF    69C9 7C010000   IMUL ECX,ECX,0x17C
0041A0C5    BB 01000000     MOV EBX,0x1
0041A0CA    81C1 7C6DCF00   ADD ECX,Client.00CF6D7C
0041A0D0    53              PUSH EBX
0041A0D1    51              PUSH ECX
0041A0D2    8BCF            MOV ECX,EDI
0041A0D4    E8 E7DE0B00     CALL Client.004D7FC0

0041A0D9    399F 242D0000   CMP DWORD PTR DS:[EDI+0x2D24],EBX

如有转载请注明:转自郁金香技术论坛

交流群:29817979

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值