zhang_game 发表于 2014-6-2 21:58:43

诛仙走路call + 清风模块.rar

诛仙走路call
下bp send断点返回几次到
00484A07   > \50                  push    eax                                          ;eax=0EA0FE64; Case E0 of switch 00484986
00484A08   .E8 A3AF0100         call    0049F9B0                                     ;鼠标点击对象
进这个call在头部下断,一步步走下函数尾

004A02XF|.D81D 6869BC00 fcomp   dword ptr
004A02D5|.DFE0          fstsw   ax
004A02D7|.F6C4 41       test    ah, 41
004A02DA|.0F85 F4040000 jnz   004A07D4
004A02E0|.8B7C24 14   mov   edi, dword ptr
004A02E4|.6A 01         push    1
004A02E6|.8B8F D4150000 mov   ecx, dword ptr       ;edi=基址]+1C]+2C]
004A02EC|.E8 XFDE0000   call    004AE1C0                         ;走路call_1
004A02F1|.8BF0          mov   esi, eax
004A02F3|.8D4424 34   lea   eax, dword ptr
004A02F7|.50            push    eax
004A02F8|.6A 00         push    0                              ;0为忽略Z坐标
004A02FA|.8BCE          mov   ecx, esi
004A02FC|.E8 6F320100   call    004B3570                         ;走路call_2
004A0301|.8D8C24 A40000>lea   ecx, dword ptr
004A0308|.8D9424 980000>lea   edx, dword ptr
004A030F|.51            push    ecx
004A0310|.52            push    edx
004A0311|.8BCE          mov   ecx, esi
004A0313|.E8 88330100   call    004B36A0
004A0318|.8B8F D4150000 mov   ecx, dword ptr
004A031E|.6A 00         push    0
004A0320|.6A 01         push    1
004A0322|.56            push    esi
004A0323|.6A 01         push    1
004A0325|.E8 C6E30000   call    004AE6F0                         ;走路call_3
004A032A|.833D 50F7D000>cmp   dword ptr , 1
004A0331|.0F85 9D040000 jnz   004A07D4


                        mov eax, 0xD0EEC4
                        mov eax, dword ptr
                        mov eax, dword ptr
                        mov edi, dword ptr
                        push 1
                        mov ecx, dword ptr
                        mov eax, 0x4AE1C0
                        call eax
                        mov esi, eax
                        lea eax, dword ptr // 存放目标坐标的X的首地址
                        push eax
                        push 0      // 0为忽略Z坐标
                        mov ecx, esi
                        mov eax, 0x4B3570
                        call eax
                        mov ecx, dword ptr
                        push 0
                        push 1
                        push esi
                        push 1
                        mov eax, 0x4AE6F0
                        call eax
                        // 下面是修改目的地坐标
                        mov eax, dword ptr ds:
                        mov eax, dword ptr ds:
                        mov ecx, dword ptr ds:
                        mov eax, x
                        mov dword ptr , eax
                        mov eax, z
                        mov dword ptr , eax
                        mov eax, y
                        mov dword ptr , eax



// 走路call
void CallMouseGotoCoordinates(float x, float y, float z, int Fly)
{
      DWORD m_CALL_BASE_ADDR                = 0xD0EEC4;
      DWORD m_OFFSET_ONE_BASE                = 0x1C;
      DWORD m_OFFSET_ROLE_BASE      = 0x2C;
      DWORD m_CALL_WALK_OFFSET      = 0x15D4;
      DWORD m_CALL_WALK_ADDR_1      = 0x4AE1C0;
      DWORD m_CALL_WALK_ADDR_2      = 0x4B3570;
      DWORD m_CALL_WALK_ADDR_3      = 0x4AE6F0;
      __try
      {
                __asm
                {                        
                        mov eax, m_CALL_BASE_ADDR
                        mov edi, dword ptr
                        mov eax, m_OFFSET_ONE_BASE
                        mov edi, dword ptr
                        mov eax, m_OFFSET_ROLE_BASE
                        mov edi, dword ptr
                        push 1
                        mov eax, m_CALL_WALK_OFFSET
                        mov ecx, dword ptr
                        mov eax, m_CALL_WALK_ADDR_1
                        call eax
                        mov esi, eax
                        lea eax, dword ptr // 存放目标坐标的X的首地址
                        push eax
                        mov eax, Fly
                        push eax // 0为忽略Z坐标
                        mov ecx, esi
                        mov eax, m_CALL_WALK_ADDR_2
                        call eax
                        mov eax, m_CALL_WALK_OFFSET
                        mov ecx, dword ptr
                        push 0
                        push 1
                        push esi
                        push 1
                        mov eax, m_CALL_WALK_ADDR_3
                        call eax
                        // 下面是修改目的地坐标
                        mov eax, m_CALL_WALK_OFFSET
                        mov eax, dword ptr ds:
                        mov eax, dword ptr ds:
                        mov ecx, dword ptr ds:
                        mov eax, x
                        mov dword ptr , eax
                        mov eax, z
                        mov dword ptr , eax
                        mov eax, y
                        mov dword ptr , eax
                }
      }
      __except(1){}
}

再发个易的

.版本 2
.子程序 寻路call
.参数 目的地X坐标, 小数型, , 只能为小数型
.参数 目的地Y坐标, 小数型, , 只能为小数型
.参数 MapID, 整数型
.如果真 (dwPID ≠ 0)
    汇编 (“mov ebx, 00D21430”)
    汇编 (“mov eax, 0” + 十到十六 (取字节集数据 (到字节集 (目的地X坐标), #整数型, )))' 只能是 #整数型 别的会走到0
    汇编 (“mov dword ptr , eax”)
    汇编 (“mov esi, 4”)
    汇编 (“mov dword ptr , 0”)' 地图ID
    汇编 (“mov eax, 0” + 十到十六 (取字节集数据 (到字节集 (目的地Y坐标), #整数型, )))
    汇编 (“mov esi, 8”)
    汇编 (“mov dword ptr , eax”)
    汇编 (“mov eax, 00D0EEC4”)
    汇编 (“mov eax, dword ptr ”)
    汇编 (“mov edi, 1C”)
    汇编 (“mov eax, dword ptr ”)
    汇编 (“mov edi, 2C”)
    汇编 (“mov eax, dword ptr ”)
    汇编 (“mov edi, 3C”)
    汇编 (“lea edx, dword ptr ”)
    汇编 (“push 0”)
    汇编 (“push 0” + 十到十六 (MapID))
    汇编 (“push 00D21430”)
    汇编 (“push edx”)
    汇编 (“mov ecx, 00D0EE60”)
    汇编 (“mov eax, 004458D0”)
    汇编 (“call eax”)
    调用汇编 (dwPID)' 如果是DLL中使用可以不使用这句调用汇编,不使用这句的话,默认不使用远程调用call
.如果真结束

.子程序 走路call
.参数 目的地X坐标, 小数型, , 只能为小数型
.参数 目的地Y坐标, 小数型, , 只能为小数型
.参数 目的地Z坐标, 小数型, , 只能为小数型
.参数 Fly, 整数型
.如果真 (dwPID ≠ 0)
    汇编 (“mov eax, 00D0EEC4”)
    汇编 (“mov edi, dword ptr ”)
    汇编 (“mov eax, 1C”)
    汇编 (“mov edi, dword ptr ”)
    汇编 (“mov eax, 2C”)
    汇编 (“mov edi, dword ptr ”)
    汇编 (“push 1”)
    汇编 (“mov eax, 15D4”)
    汇编 (“mov ecx, dword ptr ”)
    汇编 (“mov eax, 004AE1C0”)
    汇编 (“call eax”)
    汇编 (“mov esi, eax”)
    汇编 (“mov eax, 34”)
    汇编 (“lea eax, dword ptr ”)' // 存放目的地坐标X的首地址
    汇编 (“push eax”)
    汇编 (“mov eax, 0”)
    汇编 (“push eax”)' // 0为忽略Z坐标
    汇编 (“mov ecx, esi”)
    汇编 (“mov eax, 004B3570”)
    汇编 (“call eax”)
    汇编 (“mov eax, 15D4”)
    汇编 (“mov ecx, dword ptr ”)
    汇编 (“push 0”)
    汇编 (“push 1”)
    汇编 (“push esi”)
    汇编 (“push 1”)
    汇编 (“mov eax, 4AE6F0”)
    汇编 (“call eax”)
    ' // 下面是修改目的地坐标
    汇编 (“mov eax, 15D4”)
    汇编 (“mov edi, dword ptr ds:”)
    汇编 (“mov eax, 30”)
    汇编 (“mov edi, dword ptr ds:”)
    汇编 (“mov eax, 4”)
    汇编 (“mov ecx, dword ptr ds:”)
    汇编 (“mov eax,0” + 十到十六 (取字节集数据 (到字节集 (目的地X坐标), #整数型, )))' 只能是 #整数型 别的会走到0
    汇编 (“mov dword ptr , eax”)
    汇编 (“mov eax,0” + 十到十六 (取字节集数据 (到字节集 (目的地Z坐标), #整数型, )))' 只能是 #整数型 别的会走到0
    汇编 (“mov dword ptr , eax”)
    汇编 (“mov eax,0” + 十到十六 (取字节集数据 (到字节集 (目的地Y坐标), #整数型, )))' 只能是 #整数型 别的会走到0
    汇编 (“mov dword ptr , eax”)
    调用汇编 (dwPID)
.如果真结束
我个人写的模块

这个走路call在上个寻路call第二天就找出来了,只是太忙就没时间发上来,希望给有用的人一点点帮助

潘多拉魔盒 发表于 2014-7-4 00:47:03

支持一下:lol

Sorry. 发表于 2014-7-16 16:55:39

我顶的不是帖子,是寂寞!

JenTan 发表于 2014-8-14 20:14:41

沙发!沙发!枪一个沙发

rg9695c36 发表于 2014-9-7 15:28:51

必须支持!!!!!!

卩s团团丨 发表于 2014-9-25 21:01:21

感谢楼主分享

vigilia°宝瓜 发表于 2014-10-13 02:32:11

看看 再说 拿分

______唯你懂我訫 发表于 2014-12-22 00:07:17

真是被感动的痛哭流涕……

古凝明 发表于 2014-12-24 03:40:22

沙发???

3642604393 发表于 2015-1-3 21:53:43

前排,哇咔咔
页: [1] 2
查看完整版本: 诛仙走路call + 清风模块.rar