有点非主流……但还是想请教一下。

chenjiawei007 2011-10-24 07:59:15
和朋友玩游戏,但是苦于服务器很难进,然后就想做个挤线器,朋友在淘宝上买了这个软件,

但是自己却想实现下,

实现的原理比较简单,

获得游戏登陆窗口EXE 句柄,然后发送鼠标mousemove到指定位置,然后模拟点击

nRet =::SendMessage(hwnd, WM_LBUTTONDOWN, 0,0);
Sleep(100);
nRet =::SendMessage(hwnd, WM_LBUTTONUP, 0,0);

现在卡在最难的地方是,我点击后,游戏程序会向服务器请求连接,

如果有空位,就提示排上队伍。如果没空位,就提示服务器满员,然后我就继续模拟点击。

我现在就想知道如何获取这个提示字段!我看购买的程序,

因为游戏EXE,控件都是自绘的,用SPY++根本获得不到句柄,所以觉得是不是只能用HOOK,还是用汇编后注入?


请教一下:(
...全文
281 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenjiawei007 2011-10-26
  • 打赏
  • 举报
回复
分析了心跳包,可以区分出来。

截取屏幕对比,说说容易,有做过的朋友吗?感觉不好实现 而且这种技术也只是解决眼前问题,没什么好应用。

现在对数据包有两种思路。

1.hook sock.dll api 中的send,recv函数,想请教下朋友实现的难度。

2.虽然wireshark很好用,但是无法植入到自己的代码模块中去,一直想自己编写一个进程抓包工具,但是实现起来会比较消耗时间,不过这样的模块,以后自己会比较受用。
chenjiawei007 2011-10-26
  • 打赏
  • 举报
回复
MD 写了几百字,提交,服务器无法响应,想拷贝都没保存。
chenjiawei007 2011-10-26
  • 打赏
  • 举报
回复
游戏时网易的梦幻西游。

1:信息显示是固定窗口位置,截取屏幕DC,对比文字好分析吗?我感觉说说容易,做起来不简单吧。

2:反汇编新手,这方面正在学习……

3:分析了游戏的心跳包,协议比较简单,是5字节数据

ox11 数据头 0xff(单字节循环自增) 0xff(类型:1.服务器繁忙,2.服务器排队) 0x00 0x00在登录过程中没有用。

如果排队列表完成,进入账号登录环节,会传送过来一大串的字符,感觉应该是加密后的XML字符。




要实现挤线器,可以从网络包下手,查了资料实现方式有2种:

3.1)HOOK 进程SEND,或者RECV API.... hook新手,打算问下朋友实现难度再考虑

3.2)虽然wireshark很好用,但是这些功能模块没办法植入自己的代码,所以打算自己编写一个进程抓包工具,以前打算做过,因为winpcap使用不熟,会消耗比较多的时间,不过做这样一个模块,以后一定用得着。


以上个人观点,有朋友的思路,请指教。
许文君 2011-10-25
  • 打赏
  • 举报
回复
LZ可以公布游戏了,有空帮你看下
许文君 2011-10-24
  • 打赏
  • 举报
回复
游戏是如何提示的?textout? messagebox?
更为好的方法其实LZ应该研究一下收到的报文
ouyh12345 2011-10-24
  • 打赏
  • 举报
回复
非窗口,也可以用mouse_event吧
chenjiawei007 2011-10-24
  • 打赏
  • 举报
回复
就是想监视显示内容,可是没有句柄,怎么去获得监视内容呢,

除非找到他临时存储的地址。:(
alpha.5 2011-10-24
  • 打赏
  • 举报
回复
一起学习了..
alpha.5 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chenjiawei007 的回复:]

引用 6 楼 alfacuton 的回复:

其一:觉得你这个挤线器意义不大啊.这样挤线比一般的登录优势在哪里呢?
其二:这个提示字段不是你的挤线器 返回的,而是游戏服务器返回的;但是你的挤线器会根据服务器的返回字段,做出相应的判断,所以肯定有相关功能处理部分的。
其三:你买了这个之后 还要反汇编,那就更没有必要了;——如果你是为了学习反汇编那就另当别论了。
关于反汇编,http://……
[/Quote]

挤线器 对 重客户端是有意义的..
ndy_w 2011-10-24
  • 打赏
  • 举报
回复
可以监视显示内容。按键精灵就可以这么搞。
chenjiawei007 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 alfacuton 的回复:]

其一:觉得你这个挤线器意义不大啊.这样挤线比一般的登录优势在哪里呢?
其二:这个提示字段不是你的挤线器 返回的,而是游戏服务器返回的;但是你的挤线器会根据服务器的返回字段,做出相应的判断,所以肯定有相关功能处理部分的。
其三:你买了这个之后 还要反汇编,那就更没有必要了;——如果你是为了学习反汇编那就另当别论了。
关于反汇编,http://www.harvest-sh.cn 有些资料 没准……
[/Quote]

意义?到也没有,篡改游戏本来就是违反别人利益,只是纯粹想提高下自己C++方面的技术。

网络游戏为什么是重客户端? 因为很多特效都是在客户端实现的,

比如你要一个很炫的装备,服务器控制你的人物数据,每次登录时根据你账号信息,然后发送给客户端。

客户端根据服务器返回数据,确定给你展现如何的装备效果,这里就会有一个间隙,

你如果截获服务端数据,然后传入客户端,就达到你的效果,

服务端肯定会做心跳检测,你再篡改,还原心跳数据,这样作为服务器你怎样防御?



所以如何注入,就显得比较关键啊,当然你说要有什么意义,你可以说你有防火墙,你有杀毒软件,

但这都是一种攻防的策略,不会攻的人,防守也注定不好。

撤远了,自己也一直在摸索,会点的朋友指教下,不会的大家一起学习,不感兴趣的,可以直接绕过。

tzxx 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 xiaopoy 的回复:]
可以每秒截图几次并屏幕取色,跟按键精灵一样嘛。
[/Quote]
位置固定的话,可以考虑截图做对比,前提是提示画面有规律性
dahaiI0 2011-10-24
  • 打赏
  • 举报
回复
关注,顶一下
alpha.5 2011-10-24
  • 打赏
  • 举报
回复
其一:觉得你这个挤线器意义不大啊.这样挤线比一般的登录优势在哪里呢?
其二:这个提示字段不是你的挤线器 返回的,而是游戏服务器返回的;但是你的挤线器会根据服务器的返回字段,做出相应的判断,所以肯定有相关功能处理部分的。
其三:你买了这个之后 还要反汇编,那就更没有必要了;——如果你是为了学习反汇编那就另当别论了。
关于反汇编,http://www.harvest-sh.cn 有些资料 没准能帮你..
演地 2011-10-24
  • 打赏
  • 举报
回复
vs还是hf对战平台?
gold_water 2011-10-24
  • 打赏
  • 举报
回复
不懂,帮顶下
用户 昵称 2011-10-24
  • 打赏
  • 举报
回复
俺不玩游戏,以前玩过两天灌水机,俺从来 他是否能进入,只管是否已经进入了。
xiaopoy 2011-10-24
  • 打赏
  • 举报
回复
可以每秒截图几次并屏幕取色,跟按键精灵一样嘛。
chenjiawei007 2011-10-24
  • 打赏
  • 举报
回复
怕没把问题说清楚,再说一遍。


游戏是个对话框!

进行一个按钮点击,会出发一个消息,然后在窗口上显示操作结果。

因为显示窗口是无句柄的自绘,我外部进程如何能够获得这个提示内容。


对HOOK,反汇编,代码注入是菜鸟,请问如果要实现,用了哪些技术?

我看注入,很多都需要DLL,但是我买的程序,看他实现,并没有附带DLL。
spring1990 2011-10-24
  • 打赏
  • 举报
回复
很好,求指教。
加载更多回复(6)

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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