www.pudn.com > QQdizhu.rar > DemonLLKWG.cpp
/*------------------------------------------------------- /* 《加密与解密》 第6章 加密算法 /* ElGamal算法,签名算法在序列保护中的应用 /* (c) www.PEDIY.com by 段钢 2002.12 -------------------------------------------------------*/ /*-----------------------------------------------------------*/ /* 本程序调用了MIRACL v4.74 大数运算库,编译前请参考MIRACL目 */ /* 录里的说明文件MSVISUAL.TXT安装 MIRACL 。 */ /* 各命令用法参考MIRACL目录里的MANUAL.DOC */ /* MIRACL官方主页:http://indigo.ie/~mscott/ */ /*-----------------------------------------------------------*/ //////////////////////////////////////////////////////////////////// #include#include //#include "md5c.c" //#include "global.h" //#include #include #include "resource.h" /*-------------------------------------------------------------*/ /* 定义子程序与全局变量、常量 */ /*-------------------------------------------------------------*/ //连连看////////////////////////////////////////// char lzBuff[50]; ////////////////////////////////////////////////// #define ID_READYTIMER 1 #define ID_DOWNTIMER 2 HINSTANCE hInst; /*-------------------------------------------------------------*/ /* 函数声明 */ /*-------------------------------------------------------------*/ BOOL CALLBACK MainDlg (HWND, UINT, WPARAM, LPARAM) ; BOOL CALLBACK AboutDlgProc (HWND, UINT, WPARAM, LPARAM) ; /*-------------------------------------------------------------*/ /* WinMain - 基于WIN32的程序的入口 */ /*-------------------------------------------------------------*/ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { InitCommonControls(); hInst=hInstance; HANDLE hApp = CreateMutex(NULL,FALSE,"DemonQQ斗地主刷分外挂"); if(GetLastError() == ERROR_ALREADY_EXISTS) { MessageBox(NULL,TEXT("DemonQQ斗地主刷分外挂已经运行!"),TEXT("提示"),NULL); return FALSE; } //ShellExecute(NULL, NULL, "http://wg258.com", NULL, NULL, SW_SHOWNORMAL); DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_MAINDLG), NULL, (DLGPROC)MainDlg,0); return 0; } /*-------------------------------------------------------------*/ /* AboutDlgProc - 关于窗口 */ /*-------------------------------------------------------------*/ BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_LBUTTONDOWN: PostMessage(hDlg, WM_NCLBUTTONDOWN, HTCAPTION, 0); return TRUE ; case WM_COMMAND : switch (LOWORD (wParam)) { case IDOK : case IDCANCEL : EndDialog (hDlg, 0) ; return TRUE ; } break ; } return FALSE ; } /*-------------------------------------------------------------*/ /* MainDlg - 主对话窗口 */ /*-------------------------------------------------------------*/ BOOL CALLBACK MainDlg(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { static HWND hmain[6],hParent[6],hButton[6][20],htmp1,htmp2,htmp3,htmp4,htmp5,htmp6,htmp7,htmp8,hDeskTop; static int i,j,readydelay=500,downdelay=500; static RECT rect; /*********************************************************************************** hmain[6]游戏主窗口,hParent[6]关键句柄 hButton[6][20]游戏中用到的按纽 hButton[0][3]开始 hButton[0][2]三分 hButton[0][7]出牌 hButton[0][6]不叫 hButton[0][5]不出 ************************************************************************************/ switch (message) { case WM_TIMER: switch(wParam) { case ID_READYTIMER: /* htmp1=FindWindowEx(hDeskTop,0,"#32770","俄罗斯提示框"); while (htmp1) { htmp2=FindWindowEx(htmp1,0,"Button","确定"); PostMessage(htmp2,BM_CLICK,NULL,NULL); PostMessage(htmp2,BM_CLICK,NULL,NULL); htmp1=FindWindowEx(hDeskTop,htmp1,"#32770","俄罗斯提示框"); } */ htmp1=FindWindowEx(hDeskTop,0,"#32770","提示信息"); if(htmp1) { while (htmp1) { htmp2=FindWindowEx(htmp1,0,"Button","确定"); PostMessage(htmp2,BM_CLICK,0,0); PostMessage(htmp2,BM_CLICK,0,0); htmp1=FindWindowEx(hDeskTop,htmp1,"#32770","提示信息"); } return 0; } for(i=0;i<3;i++) { if(hmain[i]) { //PostMessage(hmain[i],WM_LBUTTONDOWN,1,0X01DE02DC); //PostMessage(hmain[i],WM_LBUTTONUP,0,0X01DE02DC); //PostMessage(hmain[i],WM_SETFOCUS,0,0); //PostMessage(hmain[i],WM_KEYDOWN,VK_F2,0); //PostMessage(hParent[i],BN_CLICKED ,GetDlgCtrlID(hButton[i][3]),(LONG)hButton[i][3]); //开始 if(IsWindowVisible(hButton[i][3])) PostMessage(hButton[i][3],BM_CLICK ,0,0); // PostMessage(hParent[i],WM_LBUTTONDOWN,0x1,MAKELONG(562,665)); // PostMessage(hParent[i],WM_LBUTTONUP,0x1,MAKELONG(562,665)); //PostMessage(hButton[i][3],WM_LBUTTONDOWN,0x1,0X70023); //PostMessage(hButton[i][3],WM_LBUTTONUP,0x0,0X70023); } else break; } break; case ID_DOWNTIMER: for(i=0;i<3;i++) { if(hmain[i]) { // PostMessage(hButton[i][6],WM_LBUTTONDOWN,0x1,0X70023); // PostMessage(hButton[i][6],WM_LBUTTONUP,0x0,0X70023); if(i==0) { htmp1=FindWindowEx(hDeskTop,0,"#32770","提示信息"); if(htmp1) { while (htmp1) { htmp2=FindWindowEx(htmp1,0,"Button","确定"); PostMessage(htmp2,BM_CLICK,0,0); PostMessage(htmp2,BM_CLICK,0,0); htmp1=FindWindowEx(hDeskTop,htmp1,"#32770","提示信息"); } for(j=198;j<600;j+=15) { PostMessage(hParent[i],WM_LBUTTONDOWN,0x1,MAKELONG(j,540)); //Sleep(100) } return 0; } for(j=198;j<600;j+=15) { PostMessage(hParent[i],WM_LBUTTONDOWN,0x1,MAKELONG(j,540)); //Sleep(100) } //出牌 PostMessage(hParent[i],WM_LBUTTONDOWN,0x1,0X02510169);//选牌 PostMessage(hParent[i],WM_LBUTTONUP,0x0,0X02510169);//选牌 // if(IsWindowVisible(hButton[i][7])) // PostMessage(hButton[i][7],BM_CLICK ,0,0); PostMessage(hParent[i],WM_RBUTTONDOWN,0x1,0X02510169);//选牌 PostMessage(hParent[i],WM_RBUTTONUP,0x0,0X02510169);//选牌 /* PostMessage(hParent[i],WM_LBUTTONDOWN,0x1,0X02510169);//选牌 PostMessage(hParent[i],WM_LBUTTONUP,0x0,0X02510169);//选牌 PostMessage(hParent[i],WM_LBUTTONDOWN,0x1,0X02510169);//选牌 PostMessage(hParent[i],WM_LBUTTONUP,0x0,0X02510169);//选牌 PostMessage(hParent[i],WM_RBUTTONDOWN,0x1,0X02510169);//选牌 PostMessage(hParent[i],WM_RBUTTONUP,0x0,0X02510169);//选牌 */ //Sleep(500); //出牌 //PostMessage(hParent[i],WM_LBUTTONDOWN,0x1,MAKELONG(367,500)); //PostMessage(hParent[i],WM_LBUTTONUP,0x0,MAKELONG(367,500)); //叫3分 if(IsWindowVisible(hButton[i][2])) PostMessage(hButton[i][2],BM_CLICK ,0,0); //PostMessage(hParent[i],WM_LBUTTONDOWN,0x1,MAKELONG(411,500)); //PostMessage(hParent[i],WM_LBUTTONUP,0x0,MAKELONG(411,500)); /* PostMessage(hButton[i][7],WM_LBUTTONDOWN,0x1,0X70023); PostMessage(hButton[i][7],WM_LBUTTONUP,0x0,0X70023); PostMessage(hButton[i][2],WM_LBUTTONDOWN,0x1,0X70023); PostMessage(hButton[i][2],WM_LBUTTONUP,0x0,0X70023); */ //PostMessage(hParent[i],BN_CLICKED ,GetDlgCtrlID (hButton[i][7]),(LONG)hButton[i][7]); //PostMessage(hButton[i][7],BM_CLICK ,0,0); //PostMessage(hButton[i][2],BM_CLICK ,0,0); //PostMessage(hParent[i],BN_CLICKED ,GetDlgCtrlID (hButton[i][2]),(LONG)hButton[i][2]); } else { //不叫 if(IsWindowVisible(hButton[i][6])) PostMessage(hButton[i][6],BM_CLICK ,0,0); //不出 if(IsWindowVisible(hButton[i][5])) { PostMessage(hButton[i][5],BM_CLICK ,0,0); } } } else break; } break; } return 0; case WM_HOTKEY: switch((UINT) HIWORD(lParam)) { case VK_F8: for(i=1;i<6;i++) { if(!hmain[i]) { SendMessage(hmain[i],WM_SETFOCUS,0,0); PostMessage(hmain[i],WM_KEYDOWN,0x00000028,0X1); } else break; //PostMessage(hmain[i],WM_LBUTTONDOWN,1,MAKELONG(733,486)); //PostMessage(hmain[i],WM_LBUTTONUP,0,MAKELONG(733,486)); //PostMessage(hmain[i],WM_KEYDOWN,VK_F2,0X0); } //PostMessage(hmain[0],WM_LBUTTONDOWN,1,MAKELONG(733,486)); //PostMessage(hmain[0],WM_LBUTTONUP,0,MAKELONG(733,486)); PostMessage((HWND)0X204DA,WM_KEYDOWN,VK_F2,0); break; case VK_F9: break; } return 0; case WM_CLOSE: EndDialog(hWnd,0); break; case WM_HSCROLL: if((HWND) lParam==GetDlgItem (hWnd, IDC_READYDELAY)) { readydelay=SendMessage(GetDlgItem (hWnd, IDC_READYDELAY),TBM_GETPOS,0,0); wsprintf (lzBuff, "%d",readydelay); SetDlgItemText (hWnd, IDC_TEXTREADYDELAY, lzBuff); if(KillTimer(hWnd,ID_READYTIMER)) SetTimer (hWnd, ID_READYTIMER,readydelay, NULL); } else { downdelay=SendMessage(GetDlgItem (hWnd, IDC_DOWNDELAY),TBM_GETPOS,0,0); wsprintf (lzBuff, "%d",downdelay); SetDlgItemText (hWnd, IDC_TEXTDOWNDELAY, lzBuff); if(KillTimer(hWnd,ID_DOWNTIMER)) SetTimer (hWnd, ID_DOWNTIMER,downdelay, NULL); } break; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_AUTOPLAY: if(SendMessage (GetDlgItem (hWnd, IDC_AUTOPLAY), BM_GETCHECK, 0, 0)) { hmain[0]=0; hmain[0]=FindWindowEx(hDeskTop,0,NULL,"斗地主"); /* htmp1=FindWindowEx(hmain[0],0,NULL,NULL); htmp1=FindWindowEx(htmp1,0,"Button",NULL); _itoa((int)hmain[0],lzBuff, 16); MessageBox(NULL,lzBuff,"",NULL); */ //找主窗口句柄 for(i=0;i<6;i++) { while (hmain[i]) { htmp1=FindWindowEx(hmain[i],0,"#32770",""); htmp2=FindWindowEx(htmp1,0,"Afx:400000:0",""); htmp3=FindWindowEx(htmp1,htmp2,"Afx:400000:0",""); htmp4=FindWindowEx(htmp1,htmp3,"Afx:400000:0",""); if(htmp1&&htmp2&&htmp3&&htmp1) break; else hmain[i]=FindWindowEx(hDeskTop,hmain[i],NULL,"斗地主"); } hParent[i]=htmp2; hmain[i+1]=FindWindowEx(hDeskTop,hmain[i],NULL,"斗地主"); //hButtonjf[i]=htmp2; if(!hmain[i+1]) break; } for(i=0;i<6;i++) { if(hmain[i]) { htmp1=FindWindowEx(hmain[i],0,"#32770",""); htmp1=FindWindowEx(htmp1,0,"Afx:400000:0",""); hButton[i][0]=FindWindowEx(htmp1,0,"Button",""); for(j=1;j<11;j++) { hButton[i][j]=FindWindowEx(htmp1,hButton[i][j-1],"Button",""); if(!hButton[i][j]) break; /* if(j==3) { _itoa((int)hButton[i][j],lzBuff, 16); MessageBox(NULL,lzBuff,"",NULL); } */ // _itoa((int)hButton[i][j],lzBuff, 16); // MessageBox(NULL,lzBuff,"",NULL); } } } /* _itoa((int)hmain[0],lzBuff, 16); MessageBox(NULL,lzBuff,"",NULL); _itoa((int)hmain[1],lzBuff, 16); MessageBox(NULL,lzBuff,"",NULL); _itoa((int)hmain[2],lzBuff, 16); MessageBox(NULL,lzBuff,"",NULL); _itoa((int)hmain[3],lzBuff, 16); MessageBox(NULL,lzBuff,"",NULL); _itoa((int)hmain[4],lzBuff, 16); MessageBox(NULL,lzBuff,"",NULL); _itoa((int)hmain[5],lzBuff, 16); MessageBox(NULL,lzBuff,"",NULL); */ SetTimer (hWnd, ID_DOWNTIMER,downdelay, NULL); SetTimer (hWnd, ID_READYTIMER,readydelay, NULL); } else { KillTimer(hWnd,ID_DOWNTIMER); KillTimer(hWnd,ID_READYTIMER); } // _itoa((int)hEdit[0],lzBuff, 16); // MessageBox(NULL,lzBuff,"",NULL); //hmain1=htmp2; // _itoa((int)i,lzBuff, 10); // MessageBox(NULL,lzBuff,"",NULL); /* hmain2=FindWindowEx(hDeskTop,hmain1,"#32770",""); while (hmain2) { htmp1=FindWindowEx(hmain2,0,"AfxOleControl42",""); htmp2=FindWindowEx(hmain2,0,"Edit",""); htmp3=FindWindowEx(hmain2,htmp2,"Edit",""); htmp4=FindWindowEx(hmain2,htmp3,"Static",""); if(htmp1&&htmp2&&htmp3&&htmp1) break; else hmain2=FindWindowEx(hDeskTop,hmain2,"#32770",""); } hmain2=htmp2; */ //找挂机需要用的句柄 // _itoa((int)hmain[0],lzBuff, 16); // MessageBox(NULL,lzBuff,"",NULL); // htmp1=FindWindowEx(hmain[0],0,"#32770",""); // _itoa((int)htmp1,lzBuff, 16); // MessageBox(NULL,lzBuff,"",NULL); break; case IDC_ABOUT : //SendMessage(hmain[0],WM_SETFOCUS,0,0); //SetForegroundWindow(hmain1); //SetActiveWindow(hmain1); //PostMessage(hmain[0],WM_KEYDOWN,0x00000053,0X00180001); /* PostMessage(hmain1,WM_KEYDOWN,0x0000004F,0X00180001); PostMessage(hmain1,WM_CHAR,0x0000006F,0X00180001); PostMessage(hmain1,WM_KEYUP,0x0000004F,0Xc0180001); PostMessage(hmain1,WM_KEYDOWN,0x0000004F,0X00180001); PostMessage(hmain1,WM_CHAR,0x0000006F,0X00180001); PostMessage(hmain1,WM_KEYUP,0x0000004F,0Xc0180001); PostMessage(hmain1,WM_KEYDOWN,0x0000004F,0X00180001); PostMessage(hmain1,WM_CHAR,0x0000006F,0X00180001); PostMessage(hmain1,WM_KEYUP,0x0000004F,0Xc0180001); PostMessage(hmain1,WM_KEYDOWN,0x0000004F,0X00180001); PostMessage(hmain1,WM_CHAR,0x0000006F,0X00180001); PostMessage(hmain1,WM_KEYUP,0x0000004F,0Xc0180001); */ DialogBox (hInst, MAKEINTRESOURCE (IDD_ABOUT), hWnd, AboutDlgProc) ; break; case IDC_EXIT: KillTimer(hWnd,ID_DOWNTIMER); KillTimer(hWnd,ID_READYTIMER); PostQuitMessage(0); } break; case WM_INITDIALOG: SendMessage(GetDlgItem (hWnd, IDC_READYDELAY),TBM_SETRANGE,1,(LPARAM) MAKELONG(50,1000)); SendMessage(GetDlgItem (hWnd, IDC_READYDELAY),TBM_SETPAGESIZE,0,50); SendMessage(GetDlgItem (hWnd, IDC_READYDELAY),TBM_SETLINESIZE,0,5); SendMessage(GetDlgItem (hWnd, IDC_READYDELAY),TBM_SETPOS,1,readydelay); wsprintf (lzBuff, "%d",readydelay); SetDlgItemText (hWnd, IDC_TEXTREADYDELAY, lzBuff); SendMessage(GetDlgItem (hWnd, IDC_DOWNDELAY),TBM_SETRANGE,1,(LPARAM) MAKELONG(50,1000)); SendMessage(GetDlgItem (hWnd, IDC_DOWNDELAY),TBM_SETPAGESIZE,0,50); SendMessage(GetDlgItem (hWnd, IDC_DOWNDELAY),TBM_SETLINESIZE,0,5); SendMessage(GetDlgItem (hWnd, IDC_DOWNDELAY),TBM_SETPOS,1,downdelay); wsprintf (lzBuff, "%d",downdelay); SetDlgItemText (hWnd, IDC_TEXTDOWNDELAY, lzBuff); SendMessage(hWnd,WM_SETICON,(WPARAM) 1,(LPARAM) LoadIconA(hInst,MAKEINTRESOURCE(IDI_ICON))); GetWindowRect(hWnd,&rect); SetWindowPos(hWnd,HWND_TOPMOST,0,0,rect.right-rect.left,rect.bottom-rect.top,SWP_NOMOVE|SWP_SHOWWINDOW); break; } return 0; }