【天刀系列】商城物品遍历

[复制链接]
查看: 29   回复: 0

41

主题

41

帖子

271

积分

超级版主

Rank: 8Rank: 8

积分
271
发表于 2021-5-27 20:06:18 | 显示全部楼层 |阅读模式
商城物品由于其特殊性,分析的突破口很少,我们无法通过购买商品去分析参数,因为成本比较高,也无法改变商品的某些属性,所以只能通过物品名字去分析。
在《天涯明月刀》中,商城分为很多页,但是通过发包函数我们可以得出翻页并不会发包,也就是说购买商品遍历很有可能是不需要分页的一个完整的库。
随便选择一个物品用CE进行扫描,这里扫描的是UTF-8的字节集,得到较少的结果(如图)
1.png
C:\Users\AKM\AppData\Local\YNote\data\qq4EBD6EA8DB709B20B5FA91D19DC75C0E\581aa7a325b64a889da7b6f97f9e15db\1.png

很容易判断,第一个地址就是我们要找的地址,因为其可以改变物品名字的本地显示。
通过OD对这个地址下访问断点,游戏很快断下(如图)
2.png


C:\Users\AKM\AppData\Local\YNote\data\qq4EBD6EA8DB709B20B5FA91D19DC75C0E\5ffe9e4b5e21441ba99f34976c7364b9\2.png
执行到返回后,分析第二个参数的来源,得到+94偏移(如图)
3.png


C:\Users\AKM\AppData\Local\YNote\data\qq4EBD6EA8DB709B20B5FA91D19DC75C0E\815e5eca62ba45eb999f09b96c920add\3.png
继续向上分析得到来源于009D2B03 处的call    01574AC0的返回值(如图)
4.png


C:\Users\AKM\AppData\Local\YNote\data\qq4EBD6EA8DB709B20B5FA91D19DC75C0E\97608e7a8952480dab2991007f984e5f\4.png
下F2断点后到函数内部进行分析,得到来源于01574B10 处的add     eax, edi,向上分析可以得到一个结构体数组,结构大小是0x118(如图)
5.png


C:\Users\AKM\AppData\Local\YNote\data\qq4EBD6EA8DB709B20B5FA91D19DC75C0E\7d9257a4ddbd44438c58bc50b8ac613a\5.png
继续向上分析可以得到+C偏移(如图)
6.png


C:\Users\AKM\AppData\Local\YNote\data\qq4EBD6EA8DB709B20B5FA91D19DC75C0E\ccd73abce3b24980840536da1007f04a\6.png
执行到返回后可以得到+590偏移和基地址(如图)
7.png


C:\Users\AKM\AppData\Local\YNote\data\qq4EBD6EA8DB709B20B5FA91D19DC75C0E\1567e58d31214cfeba73b7d5105055fc\7.png
对公式进行整理如下
[[414A7A8]+590]+C        商城物品数组起始地址
[[414A7A8]+590]+10        商城物品数组结束地址
[[[414A7A8]+590]+C]+118*n                商城物品ID
[[[[414A7A8]+590]+C]+118*n+94]        商城物品名字


来亦何哀, 去亦何苦?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4 © 2001-2018 Comsenz Inc.