30 12
发新话题
打印

[其他] 用汇编语言写QQ任我聊[原创]

用汇编语言写QQ任我聊[原创]

[注意]原创,转载请注明!!!
呵呵!一个小工具而已,就是没加为好友也可以和别人聊天,临时会话!跟群里的和网站上的那种原理是一样的!

原理解析:
在Tencent的互动服务里面(http://imis.qq.com/)可以为你生成网页代码放到自己的网页中,让别人在网站上点一下就可以给你留言!
程序就是利用的这个生成的代码,直接在浏览器中输入
tencent://message/?uin=你想聊天的QQ号码&Site=im.qq.com&Menu=yes

就可以和别人聊天了,取消临时会话的用户不行(这个就是临时会话嘛!)
下面是汇编程序源代码:

.386
.model flat,stdcall  
option casemap:none  
DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\masm32.inc
include \masm32\include\shell32.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\shell32.lib
.data?
QQnum db ?
hInstance HINSTANCE ?
swidth  dd ?
sheight dd ?
dwidth  dd ?      
dheight dd ?
rect    RECT <>
mystr db ?
szTemp1 db ?
szTemp2 db ?
.data
str1 db "tencent://message/?uin=",0
str2 db "&Site=im.qq.com&Menu=yes",0
MainDialog db "MyDialog",0
szMutex db "zhangkesqqtalker",0
ErrorText db "Program already run...",0
ErrorTitle db "Warning!!!",0

.const
BTNSTART equ 1003
EDITNUM  equ 1002
.code

start:

Main proc
    invoke GetModuleHandle,NULL
    mov hInstance,eax
    invoke DialogBoxParam,hInstance,addr MainDialog,NULL,addr DlgProc,NULL
    invoke ExitProcess,0
Main endp
DlgProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
    .if uMsg==WM_INITDIALOG
        invoke CreateMutex,NULL,FALSE,addr szMutex
        invoke GetLastError
        .IF eax == ERROR_ALREADY_EXISTS
            invoke MessageBox,NULL,addr ErrorText,addr ErrorTitle,MB_ICONWARNING
            invoke ExitProcess,NULL
        .ENDIF
        ;上面几行代码的作用的防止程序多开(即只能运行一个实例)
        invoke GetSystemMetrics,SM_CXSCREEN     ;
        mov swidth,eax                          ;
        invoke GetSystemMetrics,SM_CYSCREEN     ;
        mov sheight,eax                         ;
        invoke GetWindowRect,hWnd,addr rect     ;
        mov eax,rect.right                      ;这几行是为下面invoke SetWindowPos做准备
        sub eax,rect.left                       ;
        mov dwidth,eax                          ;
        sub swidth,eax                          ;使窗体出现在屏幕中心
        mov eax,rect.bottom                     ;
        sub eax,rect.top                        ;
        mov dheight,eax                         ;其中不明白的地方看一下Platform SDK就可以了
        sub sheight,eax                         ;
        shr sheight,1                           ;
        shr swidth,1                            ;
        invoke SetWindowPos,hWnd,HWND_NOTOPMOST,swidth,sheight,dwidth,dheight,SWP_SHOWWINDOW
    .elseif uMsg==WM_COMMAND
        mov eax,wParam
          .if ax==BTNSTART
            invoke szCopy,addr str1,addr mystr
              invoke GetDlgItemText,hWnd,EDITNUM,addr QQnum,11
            invoke szCatStr,addr mystr,addr QQnum
              invoke szCatStr,addr mystr,addr str2
              invoke ShellExecute,NULL,NULL,addr mystr,NULL,NULL,SW_HIDE
        .endif
    .elseif uMsg==WM_CLOSE
        invoke EndDialog,hWnd,0
    .else
        mov eax,FALSE
          ret
    .endif
    mov eax,TRUE
    ret
DlgProc endp

end start

忘了说!补充一句,使用工具为MASM32!!!

有任何问题请与我联系:zk_invincible@163.com

[ 本帖最后由 zhangke 于 2006-8-20 16:05 编辑 ]
附件: 您所在的用户组无法下载或查看附件
本帖最近评分记录
  • davelv 现金 +10 原创内容 2006-8-20 16:29

TOP

没有必要用汇编写吧?不过当然要支持一下~
其实用C++或Basic要简单很多
FlowerCode 保留随时编辑此帖的权利,恕不另行通知。本帖可能包括一些技术上的不准确性或打字错误。FlowerCode “按原样”提供本帖,不包括任何明示或暗含的保证,包括但不限于适销性或适用于某种特殊用途的保证。
欢迎光临 0GiNr技术论坛

TOP

呵呵,当然了,语言只是一个工具而已!才学汇编不久,在研究逆向方面的东西,所以就用汇编写了,最喜欢的地方就是写出来的东西很小!

TOP

哦~~支持支持~~鼓励鼓励~~

TOP

引用:
原帖由 zhangke 于 2006-8-20 16:21 发表
呵呵,当然了,语言只是一个工具而已!才学汇编不久,在研究逆向方面的东西,所以就用汇编写了,最喜欢的地方就是写出来的东西很小!
逆向……这个名字很优雅……呵呵~
我也喜欢写很小的东西,可惜不会汇编
FlowerCode 保留随时编辑此帖的权利,恕不另行通知。本帖可能包括一些技术上的不准确性或打字错误。FlowerCode “按原样”提供本帖,不包括任何明示或暗含的保证,包括但不限于适销性或适用于某种特殊用途的保证。
欢迎光临 0GiNr技术论坛

TOP

给你汇编书,我电脑上有好几本,选了经典的给你
第一个为英文的PC Assembly Language(个人感觉写的很好)
第二个主要讲Win32汇编语言编程,API方面的,没讲汇编基础
看完这两个,相信能写出不错的汇编程序了.........
附件: 您所在的用户组无法下载或查看附件
本帖最近评分记录
  • davelv 现金 +4 我很赞同 2007-4-23 16:18

TOP

呵呵,原理很简单,终于能在论坛看到有人用win32asm了,有机会大家多交流一下。

TOP

看了你的代码,并没有使用IDE,你是不知道写汇编程序也有集成开发环境还是你不想使用?RadAsm用过吗?

TOP

呵呵,我就用Masm32提供的QEditor
RadAsm我只用它的资源编辑器,比VC的方便好多~~~~~~

TOP

引用:
原帖由 FlowerCode 于 Aug/20/2006 04:16 PM 发表
没有必要用汇编写吧?不过当然要支持一下~
其实用C++或Basic要简单很多
同意

TOP

大学目前还有汇编课程呢!只要是计算机系的就得学!

TOP

引用:
原帖由 davelv 于 2006-8-21 14:51 发表
大学目前还有汇编课程呢!只要是计算机系的就得学!
是哦,而且我们就在学,而且三级PC上机也是考汇编滴。

TOP

引用:
原帖由 jhkdiy 于 2006-8-20 19:30 发表
呵呵,原理很简单,终于能在论坛看到有人用win32asm了,有机会大家多交流一下。
同意 那个想交流的 不凡搞个群来玩玩
奉献与共享是一种境界,有的人永远无法理解...

TOP

我的QQ权限很低,没办法搞个Win32asm讨论的群。

TOP

你真是额滴神啊。。最近在看汇编,为了应付3级PC。。。汗。。
不知道谁有给自学汇编菜鸟看的书,我中文系的没老师教,PC书上写的又太跳跃不详细,受不了

TOP

 30 12
发新话题