如何提取游戏中的文字[详进]

skyku 2008-08-03 11:37:51
问题一:想把网络游戏里面公会里的人员名单读出来!想弄出来复制到我们公会网站,不想一个个打,因为实在太多,打不完,而且它经常变动!
所以我就想,公会人员列表既然已经显示在屏幕上了,就证明他放在内存中了!现在就是不了解它具体在内存的哪个地放,泪求高手指点!

问题二: 想做个程序,功能是自动把 网络游戏中 世界频道 的发言保存到数据库!

两个问题应该是同一个本质.求大家帮帮忙!!!!!!
...全文
1365 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyku 2008-09-29
  • 打赏
  • 举报
回复
我已经苦苦啃<WIN程序设计>好几天了,由于里面太多的生名词啃不懂,硬啃,最后在今天,面对着书里的一个个在VC++6.0调试不通过的代码,我还是放弃了...伤心...这种失落,有谁能体会?
yanlongwuhui 2008-08-27
  • 打赏
  • 举报
回复
Spy++只是个辅助开发的工具,不是仅仅C++开发才能用的。
[Quote=引用 33 楼 skyku 的回复:]
上次为了学这些买了本WINDOWS核心编程,但里面都是C++代码.
[/Quote]
这点我还不如你,我没有系统的学习过WINDOWS核心编程。其实通过资料的查找就可以知道这些API函数的使用,就能解决对外部程序的处理和控制。
会用才是关键,在知识膨胀的时代,不是所有知识都需要去掌握和精通的(个人想法,希望不会误导大家)。
true_guowei 2008-08-27
  • 打赏
  • 举报
回复
我对搂住说:
以上各位的发言:
当然是分析控件的容易了--如果可行的话:1,2个月你就能学会怎么搞
分析内存的难--即使可行的话:你需要1,2年能学会搞、保守说至少1年吧

还有一种办法:拦截网络通信,这个恐怕就很固定了,如果可行的话--比内存的可能执行效率要高。具体方法比内存那种还难,我就不显摆了:网上有一些文章。
skyku 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 true_guowei 的回复:]
我对搂住说:
以上各位的发言:
当然是分析控件的容易了--如果可行的话:1,2个月你就能学会怎么搞
分析内存的难--即使可行的话:你需要1,2年能学会搞、保守说至少1年吧

还有一种办法:拦截网络通信,这个恐怕就很固定了,如果可行的话--比内存的可能执行效率要高。具体方法比内存那种还难,我就不显摆了:网上有一些文章。
[/Quote]
封包的要涉及到解密,这个难度应该比较高吧,而且也没接触过加密解密方面的知识!分析控件的没接触,不知道如何入手去学习分析控件,请指教!
skyku 2008-08-26
  • 打赏
  • 举报
回复
Spy++是C++的工具吧?可是我没学过C++,做这个软件需要去学C++吗?学了C++之后呢?还需要学什么知识,VB.NET已经给了我教训了,VB C++只是语言,懂了语言,但是我不懂原理,我没有思路...FindWindow,FindWindowEx,GetWindowText,EnumChildProcDelegate,EnumChildWindows这些我都没接触过~ 上次为了学这些买了本WINDOWS核心编程,但里面都是C++代码.
yanlongwuhui 2008-08-26
  • 打赏
  • 举报
回复
通过Spy++可以分析程序的窗口以及子窗口,利用API函数FindWindow,FindWindowEx,GetWindowText,EnumChildProcDelegate,EnumChildWindows等可以对窗体以及控件进行处理。
yanlongwuhui 2008-08-26
  • 打赏
  • 举报
回复
通过Spy++可以窗口,利用API函数FindWindow,FindWindowEx,GetWindowText,EnumChildProcDelegate,EnumChildWindows等应该可以进行处理。
通过这些去控制某个外部程序倒是做过,不过就是没试过去对游戏做控制处理。
skyku 2008-08-26
  • 打赏
  • 举报
回复
特别感谢yanlongwuhui和chillystar 你们两位的方法不同,但都很有道理~相对来说后者的方法我比较能理解,前者的问题我知识所限无法具体理解!
yanlongwuhui的方法是分析控件,对于一个只会点VB.NET的我来说,我不会分析控件,也不知道如何入手,我不知道从何入手!
chillystar的方法是读内存,您的方法我看懂了,但是具体如何去分析内存的分布,我不会,因为我不了解内存!您说"应该多想想如果让你设计这游戏,您会怎样做?然后您自然会知道要从这游戏中读取数据要怎样读。 " 是不是要去充分理解了游戏的设计原理?如果是的话,那需要去研究的时间,长矣...我会努力看书,但是我现在真的不知道看什么书...
Windows API程序设计参考大全 我去找本看看,不知道我能看懂不!
yanlongwuhui 2008-08-22
  • 打赏
  • 举报
回复
慢慢摸索吧,没那么容易,估计要费不少力气
skyku 2008-08-21
  • 打赏
  • 举报
回复
谨记各位教诲,只是不知道要多久才做得出~
chillystar 2008-08-06
  • 打赏
  • 举报
回复
其实没必要想太复杂,计算机是人类知识的产物并不是自然产物,设计一个工具或一个软件,肯定是为了更方便而不是搞复杂去搬石头砸自己的脚,当然也有人因为想卖弄而将简单的软件搞复杂,但那种情况存在的并不多。在楼主的问题中,您应该多想想如果让你设计这游戏,您会怎样做?然后您自然会知道要从这游戏中读取数据要怎样读。
就楼主的要求,建议楼主有一本《Windows API程序设计参考大全》的工具书,里面有大部分API命令,掌握进程与内存之间关系的知识,以上为基础;对于您的要求有点像外挂,建议您看看http://blog.csdn.net/zltpc007/archive/2008/03/25/2217118.aspx的文章。
yanlongwuhui 2008-08-04
  • 打赏
  • 举报
回复
“人员名单”应该是一屏显示不下,需要拖到滚动条;而“世界频道 的发言”应该是滚屏的吧,拷图估计更麻烦
skyku 2008-08-04
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 taick 的回复:]
楼主知道现在网站或游戏中防自动注册自动连接的原理吗?
就是用验证码,而且还要在图片上加上不固定的底色.
你可以把图抓下来
写代码对图片的点一点一点的分析
从上面读出固定颜色的文字
当然读出来的结果准确率就看你写的代码了
[/Quote]
这招我想过,不过感觉太麻烦了啊,要拷图又要找软件去图文转换,我自己也不懂得编写图文转换的代码
Boy_Wish 2008-08-04
  • 打赏
  • 举报
回复
是很烦的 做得好,关系到游戏API的HOOK了 ,替换游戏里用到的文字输出函数
然后分析截到的文字内容(就象金山词霸那样)

taick 2008-08-04
  • 打赏
  • 举报
回复
楼主知道现在网站或游戏中防自动注册自动连接的原理吗?
就是用验证码,而且还要在图片上加上不固定的底色.
你可以把图抓下来
写代码对图片的点一点一点的分析
从上面读出固定颜色的文字
当然读出来的结果准确率就看你写的代码了
chillystar 2008-08-04
  • 打赏
  • 举报
回复
做起来很复杂,语言不限,用VB6或者VB.NET就可以。大概原理就是:
提升程序自身权限(能读另一进程内存)-->打开目标进程的地址空间-->搜索目标地址空间(这一步如果从头到尾地搜索比较慢,但可以通过其他工具先找出其偏移地址)-->取出该地址段的内容分析
关键是前2步,如果做到了,后面的事情就可以自己发挥。提升自身权限使用四个API函数,分别是:GetCurrentProcess、OpenProcessToken、LookupPrivilegeValue和AdjustTokenPrivileges;另外还最好使用administrator用户登录,不然系统禁止了用户权限,再努力也提升不了。
访问目标内存基本上就是打开进程、读取内存、关闭目标进程三个API函数组成的步骤,函数用法在网上或VB6带的API查询器有具体介绍。
读到需要的数据后如何处理楼主自己发挥好了,如果需要具体代码就是项目洽谈阶段啦 :-P
yanlongwuhui 2008-08-04
  • 打赏
  • 举报
回复
句柄操作跟语言没什么关系。你可以通过API列出的子窗体的标题名分析是哪个子窗体对应你自己需要的,如果分析不出来,你可以试着用API函数一个个关闭子窗体,试到那个子窗体操作会关闭“人员名单”和“世界频道 的发言”所在的窗口,那就是它们所在的子窗口了,接下来就可以分析具体在哪个控件上了。
skyku 2008-08-04
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yanlongwuhui 的回复:]
没试过,你可以考虑通过API函数获取游戏程序的句柄,分析“人员名单”和“世界频道 的发言”各自所在的子窗体,然后获取其对应的句柄,再遍历窗体上控件的句柄,找到“人员名单”和“世界频道 的发言”各自对应的控件,然后把内容读取出来。
[/Quote]
也是一条方法,不知道可行不,这条路走起来很复杂吧,而且也不是VB.NET所能做到的吧?游戏的控件是C++做的吧,要分析他的控件需要C++知识吧?
yanlongwuhui 2008-08-04
  • 打赏
  • 举报
回复
没试过,你可以考虑通过API函数获取游戏程序的句柄,分析“人员名单”和“世界频道 的发言”各自所在的子窗体,然后获取其对应的句柄,再遍历窗体上控件的句柄,找到“人员名单”和“世界频道 的发言”各自对应的控件,然后把内容读取出来。
Jash_Qi 2008-08-04
  • 打赏
  • 举报
回复
外挂么?学习了。..

CE...听都没听过的一个东西。..

这些操作可以通过VB.NET完成么?
加载更多回复(17)

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧