prt 發表於 2018-3-22 00:56:55

TwMS v205.1 背包結構Pointer

// TwMS v205.1 背包結構Pointer
// Author: Doem
// Update: prt

/*
+1788            // 017EC1A3
裝備1 消耗2 其他4 裝飾3 特殊5
*/
背包欄位: +1788

-----------------------------------------------------------------------------------

/*
                // 017EAE15
+2250      // 02065455
[+2250]+欄位*04+4FB        // 004DCC8E
[[+2250]+欄位*04+4FB]-04    // 004DCC99

出來的值會是欄位最大格數+1!
*/
欄位最大格數: [[+2250]+欄位*4+4FB]-04

-----------------------------------------------------------------------------------

/*
[[+2250]+欄位*4+04FB]                  // 004DCCA1
[[+2250]+欄位*4+04FB] + 位置*08    // 004DCCAB
[[[+2250]+欄位*4+04FB] + 位置*08] + 04]    // 004AA329
[[[[+2250]+欄位*4+04FB] + 位置*08] + 04]+10    // 017EB20E

// GetData Call
017EB20E - 8D 4B 10              - lea ecx,
017EB211 - E8 4AF6CBFE           - call 004AA860

*/
物品ID Key:[[[[+2250]+欄位*04+04FB] + 位置*08] + 04]+10
GetData call 004AA860

-----------------------------------------------------------------------------------
01B2F78F - 8B 06                 - mov eax,        //ESI = [[[[+2250]+欄位*4+04FB] + 位置*8] + 04]
01B2F791 - 8B CE                 - mov ecx,esi
01B2F793 - FF 50 4C              - call dword ptr // TwMS v205.1 背包陣列Pointer 測試數據
// Rewrite: XMAX
// 只是隨便找個地方 hook 下來取值而已

GlobalAlloc(Hook,128)
GlobalAlloc(Column,04)
GlobalAlloc(ItemID,04)
GlobalAlloc(Position,04)
GlobalAlloc(ItemCount,04)
Label(Return)

Column:    //物品欄位 裝備01 消耗02 裝飾03 其他04 特殊05
DD 00000002
Position:  //物品位置
DD 00000001

Hook:
PUSHAD
MOV  ECX,
MOV  ECX,
MOV  EBX,
MOV  ECX,
MOV  EBX,
MOV  ECX,
CMP  ECX,00000000
JE   Return

//取物品數量
PUSH ECX
MOV  EAX,
CALL
MOV  ,EAX
POP  ECX
//

ADD  ECX,10
CALL 004AA860
MOV  ,EAX
JMP  Return

Return:
POPAD
JMP  GetFocus

03552820:
DD Hook

03552820:
DD GetFocus

ziaws2k 發表於 2018-3-24 16:51:42

這個能幹嘛?

BAOBAOBAO 發表於 2018-3-24 19:56:05

請問版主大大  這個能做什麼使用呢~
頁: [1]
查看完整版本: TwMS v205.1 背包結構Pointer