注册 登录
编程论坛 VB6论坛

求VB的读取网游内存字符串数据,例如显示网游中的游戏角色名字等等

cnsunstars 发布于 2016-09-24 12:00, 6692 次点击
求VB的读取网游内存字符串数据,例如显示网游中的游戏角色名字等等?
17 回复
#2
xiangyue05102016-09-24 16:28
真会做梦……
#3
风吹过b2016-09-24 21:41
不同的网游有不同的方法,有些网游有办法,有些网游没办法。
同意2楼的观点,真会做梦。
#4
xzlxzlxzl2016-09-25 11:28
这应该算不上做梦吧。
理论上存在本机的数据vb都可以访问修改的,早期很多大佬用vb做游戏内存修改器。不过如果网游数据最终需要提交,则可能提交过程中会有校验,因此导致修改后的数据不能通过校验提交。
补充:如果真的要达到访问或修改的目的,还是要有很多准备的,至少要有锲而不舍的精神、要有数据结构基础知识。如果文本加密了,还需要找到原程序的解密模块,即具备一定的汇编跟踪能力。
梦可以做,关键看你实现梦的决心并为之准备的能力够不够!

[此贴子已经被作者于2016-9-25 11:52编辑过]

#5
xiangyue05102016-09-25 13:16
回复 4楼 xzlxzlxzl
如果你年纪不是很小的话,可能还用过金山游侠之类的,那种软件也不能应对网络游戏,就是单机也需要好几次才能定位,比如修改金币,先搜索一次当前金币,再花掉一点搜索一次,这样才能逐步定位。
这个不是单机游戏,是实时的数据,并且一般都会转码。很多游戏为了避免作弊器,都是加壳、加密处理的,要想定位数据位置很难
对于VB要做的话,不能说完全不可能,是十分十分的困难。
最后,现在网游都是有数据库的,如果只是查看也就罢了,要是修改数据,和数据库的匹配不上,代价反正是玩家付出的

[此贴子已经被作者于2016-9-25 13:22编辑过]

#6
cnsunstars2016-09-25 18:41
金山游侠,我十多年前就会用,我只是想编个程,读取,游戏里的综合信息,比如:BOSS死亡信息
#7
cnsunstars2016-09-25 18:46
说明白点,我就是想编个程序,当BOSS死亡时,系统会在综合里提示,这样我就能读出来了,我计算一下,它下一次刷新的时间,让我的程序提前一分钟或两分钟提示我,不修改游戏,我又不写外挂。
#8
xzlxzlxzl2016-09-25 23:47
回复 5楼 xiangyue0510
嗯,说的对,你也说了:不是不可能,只是难度很大。
我觉得我也表达了同样的意思,只不过我更愿意鼓励有兴趣的人积极探索下去:世上无难事,只怕有心人!反正我没这个兴趣,不费这个脑子了。
金山游侠是什么?是不是金山毒霸那个公司的产品?没用过,读小学时爸爸有一张金山毒霸的正版光盘,天天宝贝一样不让我动,印象深刻。
#9
a2513572016-09-26 00:08
我也来唠叨两句吧!..我只是菜鸟...针对游戏的数据包..也不是完完全全的都是时时的..比如网络游戏[地下城与勇士]
在游戏上线的时候.本地会生成一个数据包..数据包是明码!文件后缀:*.gol
可以从这里面下手:
用户信息序号:【059】--IP:【192.168.0.59】
【版本:V3.0(2012.03.04)】
QQ帐号:【251357***】
用户ID:【红色的血光√】
游戏路径:【E:\网络游戏\地下城与勇士\start\DNFchina.exe】
所在游戏大区:【[ServerSelection]
LastSelectName=广东9区
LastSelectISP=0】
#10
pengzhanggui2016-09-26 08:02
哈哈,楼上讨论的是一个论题,闲余时间比较充足的小牛们可以好好的琢磨一下,对提高编程思维有百利而无一害。
#11
xiangyue05102016-09-26 08:49
回复 9楼 a251357
人家是刷boss,你说的这种情况不适用的,
#12
xiangyue05102016-09-26 09:00
回复 7楼 cnsunstars
你说的很清楚了,但是还是不好搞。
网络游戏的话,内存、数据流中未必会出现什么boss的名字,可能只是一个编号,跟你自己和其他玩家的名字、血量、蓝这些混在一起,又是实时变化的。
boss死亡重置可能也只是一个指令发出。
你得先实现内存或者数据流的监控,然后不断的试验才行。
#13
风吹过b2016-09-26 19:51
我说一个方案。不一定可行,或者VB很难实现。
1,综合消息,应该是放在一块内存里的,很有可能是 链表 。C++ 喜欢用这种来做动态数据,VB只能用动态数组了。
2,链接首地址放在一个变量里, 有一定的机率是固定的一个地址。这个想不出怎么去找,要靠你自己找或想办法。
3,要知道这个链表的结构,用VB从首地址,一个链一个链的复制内容出来,然后分析。

如果不是链表,那就是固定大小的指针数组了,根据这个指针从内存里复制内容,然后分析。这种情况,知道数据起点的情况下,VB很好实现。
还有就是就是一块内存,规定多个字节为一行,没分任何数据个数,这种是最简单了,整体复制出来分析就是了。

你现在目前测试方向,使用内存编辑软件,打开这个软件的内存,搜索综合消息里那些内容在内存里是怎么样的保存,连续?不连续?有地址?无地址?有大片的空白,还是没空白?
内存编辑软件,我知道HXD 可以做这个事。

一伙人到这里猜想,是做不出来的,你必须试验,然后找出可行的方案。
如果是链表,找不到首地址的情况下,要么放弃吧,要么就全内存搜索并且期待游戏会把BOSS名保存到消息一起。
#14
xzlxzlxzl2016-09-28 09:11
回复 13楼 风吹过b
vb可用api查找进程内存地址和进程占用的内存大小的。网页游戏数据要不在ie里(取决于所用浏览器)、要不在与flash插件相关的dll里,有心人一定找的到。
#15
qq11055936812017-05-06 20:04
回复 4楼 xzlxzlxzl
那请问大神 一般修改简单的单机游戏 就随便修改内存地址比如 001464646  ce读出来 怎么去修改他呢
我最近也在研究这个 因为上课老师突然给我们看了一个外挂= =
所以我这个小白表示想了解一下
#16
zlym2017-05-14 13:38
如果只是想读取字符串信息判断怪物,是否死亡理论上应该是可以实现的.
1.简单点游戏的可以直接读取句柄标题信息来判断(人物信息应该可以,怪物估计不行)
2.通过句柄读取不行的,就得使用OD跟踪调试来找以怪物基址,再通过读取怪物血量值或是怪物名称(这个大多是加密的)来判断
PS:现在绝大数网游戏都有驱动保护,需要先过滤掉游戏驱动保护;否则OD,CE之类无法附加的
#17
ydzlouis2017-05-21 13:32
有意思
应该鼓励,代价大于需求就该考虑考虑或者提些建议觉得会好一些
#18
nmti1682017-06-04 10:52
完全可以,读取游戏角色名是可以的
1