我们找到的无论是周围数组还是数组套链表结构里
都没有发现NPC名称
那么我们在不能直接观察得到的时候
只有单独去找名称属性了
找一个NPC搜索其名称

得到10几个
那么我们尝试修改看看是哪一个

发现是14这个地址
到DO中去看一下


发现周围全是其他的各种字符串
那这里应该是一个名称库了(由于OD的小BUG 有些字符显示会出现错误,可以拿CE等其他工具辅助查看字符串具体内容)

字符串的处理
我们直接到堆栈中其最先出现的位置

发现是这个call的第一个参数

那么我们跳过去继续分析即可
继续追EAX

发现eax是变化的
属于正常情况,因为该处是遍历,周围数组的所有名称应该都会访问这里
![]()
![]()
![]()
其中NPC头上2个字符串 都在这个结构里
另外一个是我们自己的名称字符串

继续往上追

应该是 这个位置可以返回到很多不同的库中
名称在一个库
新手指引那种字符串应该又再另外一个库里
当然以后还可能发现其他的库
怎么发现的?因为返回以后 看遍历的时候发现只有2个字符串了,才回来发现的
这里面先只追名称库



进入来源函数
分析函数内代码得到公式
要获得一个对象的名称字符串
取他252*4+550的属性值
等于0情况1 不等于0情况2
情况1 猜测人物玩家字符串
[[0FBE0FC]+n*4] 对象 n通过汇编算法计算获得
对象+30链表
名称 [对象+4+4]
情况2 猜测NPC字符串
[[0FBE0eC]+n*4] 对象 n通过汇编算法计算获得
对象+30链表
名称 [对象+4+4]
算法内联汇编抄写即可
或则也可以直接调用函数获得名称字符串

由于函数内部没有复杂的调用
所以我们可以放心的直接调用取名称字符串也是不错的。



















