lsj8924

 

终于可以开始我的C编程之旅了

之所以回到博客园是看到了一篇介绍连连看消除的算法,最近正在研究这个我发现对于我这种菜鸟编一个QQ连连看的外挂这么难。不过先慢慢来吧,等我完全弄懂了这个代码,就自己写一个连连看的外挂分析。


 1 #include <stdio.h>
 2 #include <windows.h>
 3 
 4 int click(HWND, int, int);
 5 int isclick(HWND, int, int);
 6 int main()
 7 {
 8         HWND hwnd;
 9         DWORD pid=0;// bt=0;
10         HANDLE hProcess;
11         DWORD base_address = 0x00129F78;
12         char map[210];
13         int x, y, x1, y1, i, j;
14 //       char *zixue7="\0\0\3\0\0\0\3\0\3\0\3\0\0\0\0\0\0\0\0"
15 //                                 "\0\3\0\0\0\0\0\3\3\3\0\0\0\0\0\3\0\0\0"
16 //                                 "\3\3\3\3\0\3\3\3\3\3\3\3\0\0\0\3\0\0\0"
17 //                                 "\3\0\0\3\0\3\0\0\0\0\0\3\0\0\0\3\0\0\0"
18 //                                 "\3\0\0\3\0\0\3\3\3\3\3\0\0\3\3\3\3\3\0"
19 //                                 "\3\0\0\3\0\0\0\0\0\3\0\0\0\0\0\3\0\0\0"
20 //                                 "\3\3\3\3\0\3\3\3\3\3\3\0\3\3\3\3\3\3\3"
21 //                                 "\3\0\0\3\0\0\0\0\3\0\0\0\0\0\3\0\0\0\0"
22 //                                 "\3\3\3\3\0\0\0\0\3\0\0\0\0\3\0\0\0\3\0"
23 //                                 "\3\0\0\3\0\0\3\0\3\0\0\0\3\3\3\3\3\3\3"
24 //                                 "\3\3\3\3\0\0\0\3\3\0\0\0\0\0\0\0\0\0\3";
25         hwnd  = FindWindow(NULL, "QQ游戏 - 连连看角色版");
26         if(!hwnd)
27         {
28                 printf("游戏未开始");
29                 return 1;
30         }
31         GetWindowThreadProcessId(hwnd, &pid);
32 
33         hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
34  //       WriteProcessMemory(hProcess, (LPVOID)base_address, zixue7, 209, &bt);
35  //       Sleep(2000);
36         while(1){
37 
38 
39                 for(i=0; i<209; i++)
40                 {
41                         memset(map, 0, sizeof(map));
42 
43                         if (!ReadProcessMemory(hProcess,(LPCVOID)base_address,map,209,NULL))
44                         {
45                                 printf("ReadProcessMemory 失败!");
46                                 return 2;
47                         }
48                         x = i%19;
49                         y = i/19;
50                         if(*(map+i) != 0)
51                         {
52                                 for(j=i; j<209; j++)
53                                 {
54                                         x1 = j%19;
55                                         y1 = j/19;
56 
57                                         if(*(map+j)!=0)
58                                         {
59                                                 if( i!=j && *(map+i) == *(map+j))
60                                                 {
61                                                         click(hwnd, x*31+30, y*35+195);
62                                                         click(hwnd, x1*31+30, y1*35+195);
63                                                 }
64                                         }
65 
66                                 }
67                         }
68                 }
69         }
70 
71 
72         return 0;
73 }
74 
75 int click(HWND h, int x, int y)
76 {
77 
78         PostMessage(h, WM_LBUTTONDOWN, 0, y<<16|x);
79         PostMessage(h, WM_LBUTTONUP, 0, y<<16|x);
80         return 0;
81 }

这个是最简单的外挂,但是到目前,这个外挂在QQ连连看会被检测到。很多次都不能成功。最近正在改进算法,不知道行不行。

posted on 2014-04-23 20:23  lsj8924  阅读(372)  评论(0)    收藏  举报

导航