|
|
.版本 2
.程序集 游戏CALL
.子程序 CALL_打坐坐
.局部变量 代码, 字节集
置代码 ({ })
mov_eax_常数 (十六进制到十进制 (“5AB920”)) ' 0710日可用地址
call_eax ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
.子程序 CALL_打坐起
.局部变量 代码, 字节集
置代码 ({ })
mov_eax_常数 (十六进制到十进制 (“5AB960”)) ' 0710日可用地址
call_eax ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
.子程序 CALL_捡物
.参数 物品ID, 整数型
.参数 系统物品ID, 整数型
.局部变量 代码, 字节集
置代码 ({ })
pushad ()
mov_eax_常数 (物品ID)
push_eax ()
mov_ecx_常数 (系统物品ID)
push_ecx ()
mov_edx_ptr (游戏基址)
mov_ecx_ptr_edx加字节 (32)
add_ecx_常数 (236)
mov_ebx_常数 (十六进制到十进制 (“588240”)) ' 0710日可用地址
call_ebx ()
popad ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
.子程序 CALL_普通攻击
.局部变量 代码, 字节集
置代码 ({ })
mov_eax_常数 (十六进制到十进制 (“5AB1A0”)) ' 0710日可用地址
call_eax ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
.子程序 CALL_死亡回城
.局部变量 代码, 字节集
置代码 ({ })
pushad ()
mov_eax_ptr (游戏基址)
mov_eax_ptr_eax加字节 (32)
lea_ecx_ptr_eax加整数 (十六进制到十进制 (“ec”))
mov_ebx_常数 (十六进制到十进制 (“5AB5E0”)) ' 0710日可用地址
call_ebx ()
popad ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
.子程序 CALL_选怪, 字节集
.参数 怪物ID, 整数型
.局部变量 代码, 字节集
置代码 ({ })
pushad ()
mov_edi_常数 (怪物ID)
mov_eax_ptr (游戏基址)
push_edi ()
mov_ecx_ptr_eax加字节 (32)
add_ecx_常数 (236)
mov_ebx_常数 (十六进制到十进制 (“5882B0”)) ' 0710日可用地址
call_ebx ()
popad ()
ret ()
返回 (_取代码 ())
.子程序 喊话, , , 还没调试好的CALL
.参数 喊话内容, 文本型
.局部变量 代码, 字节集
.局部变量 说话内容地址, 整数型
.局部变量 说话内容字节集, 字节集
说话内容字节集 = ANSI转UNICODE (喊话内容)
说话内容地址 = 内存创建 (取字节集长度 (说话内容字节集))
写字节集内存 (进程, 说话内容地址, 说话内容字节集)
置代码 ({ })
pushad ()
mov_eax_常数 (0) ' 说话频道
mov_esi_常数 (说话内容地址) ' 说话内容的存放地址
push_esi ()
push_eax ()
mov_ecx_ptr (9599024)
mov_ebx_常数 (十六进制到十进制 (“58d8d0”))
call_ebx ()
popad ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
内存释放 (说话内容地址)
.子程序 call_跑路, 字节集
.参数 x, 整数型
.参数 y, 整数型
.参数 z, 整数型
.参数 fly, 整数型
.局部变量 目的x坐标, 小数型
.局部变量 目的y坐标, 小数型
.局部变量 目的z坐标, 小数型
目的x坐标 = 到小数 ((x - 400) × 10)
目的y坐标 = 到小数 ((y - 550) × 10)
目的z坐标 = 到小数 (z × 10)
.如果 (fly = 2)
fly = 1
.否则
fly = 0
.如果结束
置代码 ({ })
pushad ()
mov_eax_ptr (游戏基址)
mov_eax_ptr_eax加字节 (28)
mov_esi_ptr_ebp加字节 (32)
mov_ecx_ptr_ebx加整数 (2984)
push_常数 (1)
mov_ebx_常数 (十六进制到十进制 (“45DAD0”))
call_ebx ()
mov_edi_eax ()
mov_eax_常数 (目的x坐标)
返回 (_取代码 ())
.子程序 走路call, , 公开, 用call
.参数 x, 小数型
.参数 y, 小数型
.参数 z, 小数型
.参数 是否影响高度, 整数型, 可空, 1为影响 0为不影响 默认为0
.局部变量 代码, 字节集
.局部变量 call1, 整数型, , , 64: 0x45E020 10h:4579360
.局部变量 call2, 整数型, , , 64: 0x461A50 10h:4594256
.局部变量 call3, 整数型, , , 64: 0x45E420 10h:4580384
.局部变量 被还原数, 字节集
.局部变量 目的x, 整数型
.局部变量 目的y, 整数型
.局部变量 目的z, 整数型
x = (x - 400) × 10
y = (y - 550) × 10
z = z × 10
被还原数 = 到字节集 (到小数 (x))
目的x = 取字节集数据 (被还原数, #整数型, )
被还原数 = 到字节集 (到小数 (y))
目的y = 取字节集数据 (被还原数, #整数型, )
被还原数 = 到字节集 (到小数 (z))
目的z = 取字节集数据 (被还原数, #整数型, )
' 输出调试文本 (x)
' 输出调试文本 (y)
' 输出调试文本 (z)
置代码 ({ })
pushad ()
mov_eax_ptr (十六进制到十进制 (#内存基址))
mov_eax_ptr_eax加整数 (十六进制到十进制 (“1c”))
mov_eax_ptr_eax加整数 (十六进制到十进制 (“20”))
mov_ebx_eax ()
mov_ecx_ptr_ebx加整数 (十六进制到十进制 (“bcc”))
push_常数 (1)
mov_eax_常数 (十六进制到十进制 (“45DDA0”)) ' CALL1
call_eax ()
mov_edi_eax ()
mov_eax_常数 (目的x)
mov_ptr_ecx加字节_eax (十六进制到十进制 (“0”))
mov_eax_常数 (目的z)
mov_ptr_ecx加字节_eax (十六进制到十进制 (“4”))
mov_eax_常数 (目的y)
mov_ptr_ecx加字节_eax (十六进制到十进制 (“8”))
push_ecx ()
push_常数 (0) ' 这个地方改成1的话就是飞行了
mov_ecx_edi ()
mov_eax_常数 (十六进制到十进制 (“4617D0”)) ' CALL2
call_eax ()
push_常数 (0)
push_常数 (1)
push_edi ()
mov_ecx_ptr_ebx加整数 (十六进制到十进制 (“bcc”))
push_常数 (1)
mov_eax_常数 (十六进制到十进制 (“45E1A0”)) ' CALL3
call_eax ()
popad ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
.子程序 技能call
.参数 技能位置, 整数型
.局部变量 技能位置基址
.局部变量 代码, 字节集
角色技能基址 = 读内存整数 (人物基址 + 十六进制到十进制 (“BF0”))
技能位置基址 = 读内存整数 (角色技能基址 + 4 × 技能位置)
置代码 ({ })
pushad ()
mov_eax_常数 (读内存整数 (角色技能基址 + 4 × 技能位置))
mov_ebx_常数 (十六进制到十进制 (“492EFA”))
call_ebx ()
popad ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
.子程序 招出宠物CALL
.局部变量 代码, 字节集
置代码 ({ })
pushad ()
mov_eax_常数 (0)
mov_ptr_ecx加字节_eax (十六进制到十进制 (“8”))
' mov_ecx_常数 (人物基址)
' mov_edx_常数 (宠物基址)
' mov_eax_edx ()
' mov_eax_ptr_eax加字节 (8)
mov_eax_常数 (十六进制到十进制 (“493fa0”))
' mov_ebx_常数 (十六进制到十进制 (“493fa4”))
' call_ebx ()
jmp_eax ()
popad ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
.子程序 使用物品call
.参数 技能位置, 整数型
.局部变量 技能位置基址
.局部变量 代码, 字节集
角色技能基址 = 读内存整数 (人物基址 + 十六进制到十进制 (“BF0”))
技能位置基址 = 读内存整数 (角色技能基址 + 4 × 技能位置)
置代码 ({ })
pushad ()
mov_eax_常数 (读内存整数 (角色技能基址 + 4 × 技能位置))
mov_ebx_常数 (十六进制到十进制 (“492EFA”))
call_ebx ()
popad ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
.子程序 按键招出宠物CALL
.局部变量 代码, 字节集
置代码 ({ })
pushad ()
' mov_eax_常数 (游戏基址)
' push_esi ()
' mov_esi_常数 (0)
mov_ecx_常数 (317019752)
' mov_edx_常数 (宠物基址)
' mov_eax_edx ()
' mov_eax_ptr_eax加字节 (8)
mov_ebx_常数 (十六进制到十进制 (“493fa0”))
call_ebx ()
popad ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
.子程序 发包CALL
.参数 发包内容, 字节集
.局部变量 发包内容, 字节集
.局部变量 发包内容地址, 整数型
.局部变量 代码, 字节集
.局部变量 外部操作, 内存共享类
.局部变量 发包长度, 整数型
发包长度 = 取字节集长度 (发包内容)
发包内容地址 = 外部操作.内存创建 (取字节集长度 (发包内容))
内存写字节集 (进程, 发包内容地址, 发包内容)
置代码 ({ })
pushad ()
mov_eax_ptr (十六进制到十进制 (“9271B4”))
mov_ecx_ptr_eax加字节 (十六进制到十进制 (“20”))
push_常数 (发包长度)
push_常数 (发包内容地址)
mov_eax_常数 (十六进制到十进制 (“58d7f0”)) ' 发包CALL
call_eax ()
popad ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
外部操作.内存释放 (发包内容地址)
.子程序 打开NPCCALL
.参数 NPCID
.局部变量 代码, 字节集
置代码 ({ })
pushad ()
mov_eax_ptr (十六进制到十进制 (“9271B4”)) ' 基址 可写为mov_eax_常数 (游戏基址)
mov_ecx_ptr_eax加字节 (十六进制到十进制 (“20”))
push_常数 (6)
push_常数 (NPCID)
mov_eax_常数 (十六进制到十进制 (“58d7f0”)) ' (5822448) ' 发包CALL
call_eax ()
popad ()
ret ()
代码 = _取代码 ()
调用游戏call (代码)
http://yunpan.cn/QX2umkmry6f6X |
|