- UID
- 15433
- 帖子
- 261
- 主題
- 8
- 精華
- 0
- 積分
- 54
- 楓幣
- 8924
- 威望
- 22
- 存款
- 0
- 贊助金額
- 0
- 推廣
- 0
- GP
- 43
- 閱讀權限
- 10
- 性別
- 保密
- 在線時間
- 639 小時
- 註冊時間
- 2012-10-17
- 最後登入
- 2019-4-18
|
本帖最後由 caca 於 2017-11-18 17:36 編輯
019ECC6C:
jmp GetSkillID
這個寫法洽當嗎?另一篇滑鼠取的道具ID也有同樣問題。
這可能造成不預期的後果。建議改成這樣較正統吧:
019ECC6C:
jmp GetSkillID
nop
有人問起為什麼要這樣寫。先看看 019ECC6C 這位置
019ECC6C - 89 81 80000000 - mov [ecx+00000080],eax
019ECC72 - FF 76 04 - push [esi+04]
019ECC75 - C7 85 6CFFFFFF 00000000 - mov [ebp-00000094],00000000 { 0 }
019ECC7F - E8 AC3BB4FE - call 00530830
019ECC6C 是 89 81 80 00 00 00 6個字節。
但 數據內只寫
019ECC6C:
jmp GetSkillID
這個只有5個字節,將數據寫入後,可看到會變成這樣
019ECC6C - E9 8F336C09 - jmp 0B0B0000
019ECC71 - 00 FF - add bh,bh
019ECC73 - 76 04 - jna 019ECC79
019ECC75 - C7 85 6CFFFFFF 00000000 - mov [ebp-00000094],00000000 { 0 }
019ECC7F - E8 AC3BB4FE - call 00530830
用正統的寫法
019ECC6C:
jmp GetSkillID
nop
這是6個字節,將數據寫入後,可看到會變成這樣
019ECC6C - E9 8F337009 - jmp 0B0F0000
019ECC71 - 90 - nop
019ECC72 - FF 76 04 - push [esi+04]
019ECC75 - C7 85 6CFFFFFF 00000000 - mov [ebp-00000094],00000000 { 0 }
019ECC7F - E8 AC3BB4FE - call 00530830
就本數據而言,第一種寫法未必會出事(因為89 81 80000000 最後是00 如果是其他字節就可能出問題),
但畢竟不是正常寫法
|
-
總評分: 楓幣 + 35
威望 + 5
GP + 5
查看全部評分
|