对网上一个开源的 QQ 连连看外挂分析
找到一个 VB 写的,而且还是前一两个月发布的,直接编译后可以使用,于是对其源码进行了分析并做了总结。
首先是利用 FindWindow 函数获取游戏窗口,如果存在,再获取游戏开始后的画点,如果存在则表明游戏已经开始。程序中定义连连看中每个方块的类型、坐标、方块大小、方块矩阵,然后是方块的图案,连连看方块图案定义如下:
If color1 = 16294952 Then .Type = 1 ElseIf color1 = 10344 Then .Type = 2 ElseIf color1 = 4230280 Then .Type = 3 ElseIf color1 = 48360 Then .Type = 4 ElseIf color1 = 16303256 Then .Type = 5 ElseIf color1 = 1050664 Then .Type = 6 ElseIf color1 = 10505360 Then .Type = 7 ElseIf color1 = 3697816 Then .Type = 8 ElseIf color1 = 6828032 Then .Type = 9 ElseIf color1 = 12083200 Then .Type = 10 ElseIf color1 = 13681792 Then .Type = 11 ElseIf color1 = 1068160 Then .Type = 12 ElseIf color1 = 3685440 Then .Type = 13 ElseIf color1 = 248 Then .Type = 14 ElseIf color1 = 3702840 Then .Type = 15 ElseIf color1 = 8951920 Then .Type = 16 ElseIf color1 = 1606816 Then .Type = 17 ElseIf color1 = 10529896 Then .Type = 18 ElseIf color1 = 3676184 Then .Type = 19 ElseIf color1 = 11019432 Then .Type = 20 ElseIf color1 = 0 Then .Type = 21 ElseIf color1 = 3686496 Then .Type = 22 ElseIf color1 = 13160664 Then .Type = 23 ElseIf color1 = 15783056 Then .Type = 24 ElseIf color1 = 1050792 Then .Type = 25 ElseIf color1 = 6864120 Then .Type = 26 ElseIf color1 = 12611656 Then .Type = 27 ElseIf color1 = 4211936 Then .Type = 28 ElseIf color1 = 232 Then .Type = 29 ElseIf color1 = 15251592 Then .Type = 30 ElseIf color1 = 40184 Then .Type = 31 ElseIf color1 = 16312496 Then .Type = 32 ElseIf color1 = 40992 Then .Type = 33 ElseIf color1 = 5805216 Then .Type = 34 ElseIf color1 = 10312 Then .Type = 35 ElseIf color1 = 13682864 Then .Type = 36 ElseIf color1 = 9474192 Then .Type = 37 ElseIf color1 = 1579256 Then .Type = 38 ElseIf color1 = 16317688 Then .Type = 39 ElseIf color1 = 7404792 Then .Type = 40 ElseIf color1 = 5800144 Then .Type = 41 ElseIf color1 = 4247760 Then .Type = 42 ElseIf color1 = 14681336 Then .Type = 43 ElseIf color1 = 12619832 Then .Type = 45 Else .Type = 44 End If
然后获得游戏中方块的图案和坐标,如果两个图案相等并且为空,就循环模拟鼠标按下并弹起,其实现了自动消减方块,其中的算法也就是连连看游戏玩法,在这里就不多写了。