星星电脑技术论坛's Archiver

jinn0702 发表于 2007-7-22 10:04

用汇编语言写QQ任我聊

[url=http://bbs.cfan.com.cn/thread-384930-1-1.html][size=5][color=red]用汇编语言写QQ任我聊[/color][/size][/url]x,}0g Lm
7cP2arAl| |

1c3EaI3?/{L.G [size=4]转自电脑爱好者论坛,作者:zhangke  
]cWGN1PK W8j 原帖和可执行文件下载地址: [/size][url=http://bbs.cfan.com.cn/thread-384930-1-1.html][size=4][color=#0000ff]http://bbs.cfan.com.cn/thread-384930-1-1.html[/color][/size][/url][size=4] 8y-c`pH-w'[,{M
W*{5~5S"^,z&Q8K
Xgp#d"P9m n
[注意]原创,转载请注明!!![ [$M&I|7}p H9dX:k

7y~L$H N ct 呵呵!一个小工具而已,就是没加为好友也可以和别人聊天,临时会话!跟群里的和网站上的那种原理是一样的!
l#Hae%X{4n [img]http://bbs.cfan.com.cn/bbs-ad/luntan/tiezi/qq.jpg[/img]2X ]3||(R
原理解析:5C2nq3IbC
在Tencent的互动服务里面([/size][url=http://imis.qq.com/][size=4][color=#0000ff]http://imis.qq.com/[/color][/size][/url][size=4])可以为你生成网页代码放到自己的网页中,让别人在网站上点一下就可以给你留言!xC&^[[`1z ]
程序就是利用的这个生成的代码,直接在浏览器中输入
7N |#V&|2~J tencent://message/?uin=你想聊天的QQ号码&Site=im.qq.com&Menu=yes:f}/DrD_a7Q

*A9c&f9W.]$` 就可以和别人聊天了,取消临时会话的用户不行(这个就是临时会话嘛!)
)j^tD \#M*t 下面是汇编程序源代码:-}xA;O4T1i4?-M0TG
l0CSz.R8KE
.386+Tt| u,J:@*k
.model flat,stdcall  
4i NW}f#L U!f:fbT option casemap:none  
#Gx*BqA,R9I DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD3_? ]&~2in
include \masm32\include\windows.inc
$Vw wG]'j2Ix include \masm32\include\kernel32.inc
`p6{#fxT include \masm32\include\user32.inc
!tR2iEf include \masm32\include\masm32.inc$iLk(}k^m A e
include \masm32\include\shell32.inc
%q%H4c+z9P9~*M
4}(}Hx RT"X includelib \masm32\lib\kernel32.lib
)H-Ut3R~*m"v/_-p} includelib \masm32\lib\user32.lib
NQ2l1F/p/wVr { includelib \masm32\lib\masm32.lib
W/q p+O e#S1v includelib \masm32\lib\shell32.libl^G Hd t[K/Q
.data?4{9AFe#tJ0S
QQnum db ?
H#t!y)O%i _8q hInstance HINSTANCE ?
4Zg4_s)?8KjW swidth  dd ?OmI7~'b(~*D
sheight dd ?
^E!TAY p#w dwidth  dd ?      
n2II/@!M2k){Pfk dheight dd ?'~ W nFbb q
rect    RECT <>'U,Yp%Yp TKMw
mystr db ? ?"@8H'b"a_]4@N
szTemp1 db ?
~b` XN0vc szTemp2 db ?%h/f~l!\9A
.data A G(lQ9H-@
str1 db "tencent://message/?uin=",0
9m2Jn_x(Z/~'G~ str2 db "&Site=im.qq.com&Menu=yes",0
B8d:W(N"j(E-I E MainDialog db "MyDialog",0
6{#t!iB\X3]%y szMutex db "zhangkesqqtalker",0
/gQ9H X:L z M3e ErrorText db "Program already run...",0
$O7V8uQ W ErrorTitle db "Warning!!!",0
HYJ p$uWv'N {.`/TpH o9?
.const
"{4AQ)v!] BTNSTART equ 1003
Z(n%Q8Uv EDITNUM  equ 10024l-Kz0j4{-th
.code}0|2} i3^HDLS|:s
oP[4udXmL
start:%hc|tg

-i{(C7]G[ Main prockVB"v%w&T!~0NDJ)Z
    invoke GetModuleHandle,NULLL^up#q
    mov hInstance,eax
Pr(I|UL'|5G2W     invoke DialogBoxParam,hInstance,addr MainDialog,NULL,addr DlgProc,NULL8m)~\&f!XAU H
    invoke ExitProcess,0u|%m-I-x)WQ
Main endp
6amc{u3g DlgProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAMh5GKxh5^
    .if uMsg==WM_INITDIALOG
1z9m2ND'pz$w         invoke CreateMutex,NULL,FALSE,addr szMutexA^${y2D6Rj
        invoke GetLastError,SkL%k2dq)o
        .IF eax == ERROR_ALREADY_EXISTShZS:n]$ZEa Z
            invoke MessageBox,NULL,addr ErrorText,addr ErrorTitle,MB_ICONWARNINGS9Kok,p4uH
            invoke ExitProcess,NULL
*c p~4P2~t9L(M }         .ENDIF
?j?;z$kTY2s         ;上面几行代码的作用的防止程序多开(即只能运行一个实例)
D$M(m+s+E)dVY)]         invoke GetSystemMetrics,SM_CXSCREEN     ;FBM q'Aub0L
        mov swidth,eax                          ;
7Is#\!N@H0U         invoke GetSystemMetrics,SM_CYSCREEN     ;C{X+F"k%q{
        mov sheight,eax                         ;
~ZD5M q \         invoke GetWindowRect,hWnd,addr rect     ;$@?JU2Y4P
        mov eax,rect.right                      ;这几行是为下面invoke SetWindowPos做准备
x:l%?+t3c _O6_jO         sub eax,rect.left                       ; @M;@jT0w7\3d
        mov dwidth,eax                          ;,{x9Vs0x$^;c;[Q)WG
        sub swidth,eax                          ;使窗体出现在屏幕中心xn!r$X[ Zm&M
        mov eax,rect.bottom                     ;0[T#E~#Mj?;vm%`UQy
        sub eax,rect.top                        ;
'}]'\Nq         mov dheight,eax                         ;其中不明白的地方看一下Platform SDK就可以了 B9[9c!q9G\2]
        sub sheight,eax                         ;,XJ*p{#Bz
        shr sheight,1                           ;
]];{:o Lx |         shr swidth,1                            ;
Pqds~j4\         invoke SetWindowPos,hWnd,HWND_NOTOPMOST,swidth,sheight,dwidth,dheight,SWP_SHOWWINDOW1C#bf,X$bs*dW$Z4V
    .elseif uMsg==WM_COMMAND p4k0r+w w
        mov eax,wParam
&y:~;a[i:s           .if ax==BTNSTARTb'x9x'L8ju F?TC
            invoke szCopy,addr str1,addr mystr
t/E?L p&K               invoke GetDlgItemText,hWnd,EDITNUM,addr QQnum,112L'{9\'qT#Lx i
            invoke szCatStr,addr mystr,addr QQnumW)h6A7Kd Cv2Ae
              invoke szCatStr,addr mystr,addr str2
O9~.c.u _n+xN tr Q               invoke ShellExecute,NULL,NULL,addr mystr,NULL,NULL,SW_HIDE[Z3i7lP2_#X,@5~
        .endif
l;^)SBDnF     .elseif uMsg==WM_CLOSE
[Vb%xa*d D*L         invoke EndDialog,hWnd,0
pT1y.rtX Rk i$g     .else2Yx U~:E9m
        mov eax,FALSEG;fk/Nzx~|
          retc5@S%@O3A E-x:D F
    .endif])O#LA^(y w
    mov eax,TRUEI\+B:l4j qe+ZP
    ret!mv)ZbV)L-s4I#B(u)I
DlgProc endp
yzX\-E4@ge/u#q ['l*yU#?/Rd8pw
end start
XXk3k/rY-l*W
|g+V$j#Yr O4s 忘了说!补充一句,使用工具为MASM32!!!.n6D(c:O B~!i Z;S
[/size]

页: [1]
手机号码所在地查询:
Google
IP地址:

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.