主题:如何让QQGame里面的象棋游戏的窗口响应我们的消息
天亮再见
[专家分:170] 发布于 2007-07-26 10:54:00
有谁研究过QQGame里面的象棋游戏的面板啊,向它发送消息,它怎么不响应呢?
最后更新于:2007-07-30 22:04:00
回复列表 (共9个回复)
沙发
华山论剑 [专家分:5310] 发布于 2007-08-01 13:58:00
我没有用过QQ象棋,但我写过一个简单的联众围棋的外挂,不知你要做什么,发送什么样的消息,详细一点,也许可以进一步讨论。
如果是模拟按钮点击类,首先要找对窗口的hndle,如果是找子窗口,要用FindWindowEx,消息要用WM_LBUTTONUP或者WM_COMMAND。
板凳
tanchuhan [专家分:15140] 发布于 2007-08-01 17:45:00
这是因为QQ和联众有反作弊系统,它通过一个键盘/鼠标驱动来判断消息是否真的由设备产生,还是其它程序发过去的,如果消息是假的,就不理会,所以你怎么发消息过去也没用.
3 楼
华山论剑 [专家分:5310] 发布于 2007-08-02 10:04:00
楼上的只是推测吧!
我做过的联众外挂是有用的,而且很好用。
4 楼
华山论剑 [专家分:5310] 发布于 2007-08-02 10:10:00
联众游戏漏洞很多,基本的功能有些地方都出毛病。
我在汇编下分析过联众围棋,是VC++ 6.0写的,PE文件连壳都没有加,很容易跟踪调试,没有什么太玄的东西。
5 楼
tanchuhan [专家分:15140] 发布于 2007-08-02 11:29:00
[quote]楼上的只是推测吧!
我做过的联众外挂是有用的,而且很好用。[/quote]
那当然只是推测而已! 但我可以明确的告诉你,QQ连连看和联众对对碰就采用了这种技术!
一些外挂是通过修改进程内存指令来达到它要的效果的,例如把"判断函数"的调用指令用nop替换,又或者修改函数的返回值,总是令它返回TRUE.
6 楼
tanchuhan [专家分:15140] 发布于 2007-08-02 11:35:00
[quote]联众游戏漏洞很多,基本的功能有些地方都出毛病。
我在汇编下分析过联众围棋,是VC++ 6.0写的,PE文件连壳都没有加,很容易跟踪调试,没有什么太玄的东西。[/quote]
一般,大公司写的软件都是不加壳的(例如Microsoft Office),加壳会有很多隐性的BUG,加壳并不代表就是"大玄的东西".
程序的确"很容易跟踪调试",但找出关键点并选择恰当的修改,并不是一两天的功夫就可以做得出来的.
7 楼
华山论剑 [专家分:5310] 发布于 2007-08-02 12:53:00
如果程序没加壳,又没有反跟踪代码和自解压代码(像我上面提到的程序一样),寻找并且修改一些关键点像我这样一两天功夫的人也很容易做到。
如果连Notepad是什么语言写的这些东西都没搞清楚的话,那是否“一两天”......
8 楼
tanchuhan [专家分:15140] 发布于 2007-08-02 13:28:00
[quote]如果程序没加壳,又没有反跟踪代码和自解压代码(像我上面提到的程序一样),寻找并且修改一些关键点像我这样一两天功夫的人也很容易做到。
如果连Notepad是什么语言写的这些东西都没搞清楚的话,那是否“一两天”......[/quote]
说得倒轻巧,你写个联众多开的源代码,马上汇500给你.
Notepad.exe是用C写的,至于用VC的哪个版本,我就不得而知,只知道它用了VC的动态运行库.
联众用到了MFC的动态库.
9 楼
天亮再见 [专家分:170] 发布于 2007-08-04 09:12:00
[quote]这是因为QQ和联众有反作弊系统,它通过一个键盘/鼠标驱动来判断消息是否真的由设备产生,还是其它程序发过去的,如果消息是假的,就不理会,所以你怎么发消息过去也没用.[/quote]
你说的那种技术我也听说过
但是中国象棋(QQGame)中的部分窗口会响应其他进程发给他的消息,比如设定时间的窗口;有些却又不能,比如开始按钮所在的窗口。
我来回复