欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]QQ消息群发器

[原创]QQ消息群发器

很久没用汇编写程序了,昨天看到一哥们用易语言写的QQ消息群发器,感觉很好玩,手痒用汇编写了个,没什么技术含量,纯模拟键盘输入,游戏之作,欢迎大家拍砖 ^-^
核心代码:


;########################################################################

;                          QQ消息群发器V1.0  by  nohacks

; 

;                

;#####################################################

SendProc proc 

         LOCAL IsCheck,IsRet,Islen

         mov IsRet,40

         ;检查循环设置

         invoke SendDlgItemMessage,AppHwnd,IDC_CHK,BM_GETCHECK,0,0 

          mov IsCheck,eax

         ;检查展开设置

         invoke SendDlgItemMessage,AppHwnd,IDC_CHK_LEN,BM_GETCHECK,0,0 

          mov Islen,eax       

         ; 取用户输入

          invoke GetDlgItemText,AppHwnd,IDC_EDT ,addr lpText,1024  

          ;invoke LinkText,addr lpText,CTEXT(" 本消息由AiQQ发送 ")     ;加点尾巴,^-^

         start1:

         invoke  SetWindowForeground,QQHwnd  ;QQ获取焦点

               .if  !eax

                    jmp exit

              .endif

         start2:

            .if  IsExit

                 jmp exit

            .endif

           invoke SimulateKey,IsRet,NULL,NULL,NULL  ;向下或向上移动一次

           .if IsCheck==0  && IsRet==38        ;如果循环设置关闭且光标向上就结束操作

                   jmp exit

            .endif

	 invoke SendReTurn  

	 invoke Sleep,1000    ;等待窗口载入

	 invoke GetForegroundWindow    ;取前台窗口

	 .if eax==QQHwnd              

	       invoke SendReTurn ;没有创建新窗口,遇到分组,再回车下还原现场

                ;我们下移回车看下是否有窗口创建

	       invoke SimulateKey,IsRet,NULL,NULL,NULL ; 

               invoke Sleep ,100

               invoke SendReTurn 

               invoke Sleep,100  

                invoke GetForegroundWindow   

	        ;下移回车后有3种情况:

	                     ;1,不在QQ窗口,为展开的分组

	                     ;2,在QQ窗口,没有展开

	                     ;3.到尾部   

  	         .if eax==QQHwnd                 ;没有窗口创建,说明分组没有展开,我们后退之前的操作

		           invoke SendReTurn  ;回车   

		          .if  IsRet==40  && Islen        ;注意必须为向下时

		                ;invoke SendReTurn  ;回车 

		                invoke Sleep,100 

		                invoke SimulateKey,38,NULL,NULL,NULL ;上移

		                ;展开分组

                                invoke SendReTurn

		           .endif

                      ;检查是否到尾部

                       invoke SimulateKey,IsRet,NULL,NULL,NULL   ;按IsRet移动上或下方向键

                       invoke SendReTurn 

                       invoke Sleep,1000

                        invoke GetForegroundWindow 

                        .if eax==QQHwnd    ;判断到达尾部  IsRet=取反(IsRet)

                               .if IsRet==40

                       	            mov IsRet,38

                                 .else

                       	           mov IsRet,40

                                  .endif

                          jmp  start2

                         .endif

	        .endif

	.endif

       start3:

	invoke SetClipboardText,addr lpText   ;设置输入到剪切板

	invoke Sleep,100

	invoke SimulateKey,VK_CONTROL,VK_V,NULL,NULL  ;CTRL+V 粘贴

	invoke Sleep,100

	invoke SimulateKey,VK_MENU,VK_S,NULL,NULL   ;ALT+S  发送

	invoke Sleep,100

	;invoke SimulateKey,VK_MENU,VK_C,NULL,NULL   ;ALT+C  关闭

          invoke GetForegroundWindow

		.if eax!=QQHwnd

		   invoke SimulateKey,VK_MENU,VK_F4,NULL,NULL   ;ALT+F4

		.endif

	invoke Sleep,1000

        jmp start1

   exit:

  invoke SendDlgItemMessage,AppHwnd,IDC_EDT,WM_ENABLE,TRUE,0

   ret

SendProc endp


  上面的代码逻辑上可能有点错误,待修正!
另外看下面的代码,QQ的版本不同就需要修改,QQ版不同本默认焦点可能不同!

;窗口显示并获取焦点

SetWindowForeground proc hwnd

    ; LOCAL pornt:POINTAPI 

     ;invoke ClientToScreen ,hwnd,addr pornt             

    ; add pornt.x ,200

     ;add pornt.y,200

   ; invoke SetCursorPos,pornt.x  ,pornt.y

     invoke IsWindow,hwnd

     .IF !eax

     	  mov eax,0

          ret

     .endif

     invoke ShowWindow,hwnd,SW_SHOW

     invoke SetForegroundWindow ,hwnd

     ;invoke mouse_event,2,0,0,0,0

     ;invoke mouse_event,4,0,0,0,0

     invoke Sleep,200 

     invoke SimulateKey,VK_TAB,NULL,NULL,NULL

     invoke Sleep,200

     invoke SimulateKey,VK_TAB,NULL,NULL,NULL

      mov eax,TRUE      

 ret

SetWindowForeground endp



然后是完整的原代码:(RADasm+MASM)

上传的附件 QQSendTool.rar
QQ群发工具.jpg

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功