[Parity][net-world][S2][R] 0x0C 被解成 u16 mode,产生 531 这类不存在的 MonMode,而且客户端不做范围校验 #570
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
来源审计项:
net-world#10— [S2][R] F10 0x0C 被解成 u16 mode,产生 531 这类不存在的 MonMode,而且客户端不做范围校验src/netproto/d2gs/s2c/units.ts:52-67;src/client/world/client-world.ts:1914-1962(UnitMode收到任何 mode 都接受,并清掉 castState)SCmd.cpp:190-202:结构为 [hdr][type][guid][unk0x06][hitClass][life];唯一调用点MonsterMsg.cpp:94,用于更新生命和 hitClass,life 字节带 −1 修正和 0x80 标志(V-src)。mode = 19 | 2<<8 = 531。UnitMode对 MonMode 0..15、PlrMode 0..19 做范围校验,越界直接报错(fail-fast)。