魔域新端辅助 周围NPC数据的遍历

我要她爱而不得要她穷困潦倒  我要她桃花无数都不及我的好

我要她总被辜负尝尝有多煎熬   我要她枕边永远没有依靠

我要她付出真心转身就被丢掉  我要她爱上的人夜夜和她争吵

我要她带给我的伤全都经历一遭

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

入手点是 直接搜索NPC数量 可以从迷宫入口那里 用宝宝出征召回更改NPC数量 

然后得到NPC数量的基址+偏移    观察数据窗口就可以得到存放NPC数据的数组了

追踪笔记
mov ecx, dword ptr ds:[0x00E274A8]
0298D8D7 | 898D DCFEFFFF     | mov dword ptr ss:[ebp-0x124],ecx                      | ecx=034CAC68
0298D90E | 8B8D DCFEFFFF     | mov ecx,dword ptr ss:[ebp-0x124]                      |
023B1724 | 894D FC           | mov dword ptr ss:[ebp-0x4],ecx                        |
023B1727 | 8B4D FC           | mov ecx,dword ptr ss:[ebp-0x4]                        |
023B172A | 83C1 14           | add ecx,0x14                                          |
023D63C4 | 894D FC           | mov dword ptr ss:[ebp-0x4],ecx                        |
023D63C7 | 8B45 FC           | mov eax,dword ptr ss:[ebp-0x4]                        |
023D63CA | 8B40 2C           | mov eax,dword ptr ds:[eax+0x2C]                       |


 

然后XDBG 数据窗口中观察一下 [0x00E274A8]的值 发现+20的值是存放NPC对象的地方  

最终公式
        怪物数量=[[0x00E274A8]+0x14+0x2C]
        怪物对象 = [[[0x00E274A8]+0x20]+0*4]
        怪物ID   =  [怪物对象+0xFC]
        
        NPC名字解密可以在 
         符号 模块中选择 3drole.dll 中搜索getname
                       魔域新端辅助 周围NPC数据的遍历_第1张图片
02BEEDA7 | 8B0D 28F45A03     | mov ecx,dword ptr ds:[]    |
02BEEDAD | E8 6E428EFF       | call <3drole.?GetName@CRole@@QBEPBDXZ>                |
传入怪物对象 返回NPC名字

char* 使用解密NPC名功能(DWORD NPC对象)
{

    UINT32 返回值 = 0;
    __try
    {
        __asm
        {
            mov ecx,NPC对象;
            mov ebx,0x024D3020 // 这里call地址会发生变动 需要用特征码定位一下 每次启动游戏都会变 
            call ebx
            mov 返回值, eax
        }
    }
    __except (1)
    {
        //MessageBoxA(0, "ERROR", "解密背包对象名字", MB_OK);
    }
    char* ret32 = (char*)返回值;
    return ret32;
}

魔域新端辅助 周围NPC数据的遍历_第2张图片

你可能感兴趣的:(c++,c语言,lua,qt,c#)