Win32下病毒设计入门
本文假定你对dos下的病毒和386PM有一定的了解。
1、感染任何一个病毒都需要有寄主,把病毒代码加入寄主程序中
(伴侣病毒除外)。
以下说明如何将病毒代码嵌入PE文件中,有关PE文件的结构请看以前的文章。 PE文件的典型结构: MZ Header DOS STUB CODE PE HEADER OPTIONAL HEADER SECTION TABLE SECTION 1 SECTION 2 ... IMPORT TABLE EXPORT TABLE 和DOS的可执行文件类似,PE的代码映象分为几个SECTION,在文件中会对齐
页边界(4K)。一般来说,文件会加载在400000h开始的空间,而之一个SECTION在401000h处,同时入口地址也是401000h。由高级语言编写的程序,每个SECTIO-N的长度不可能刚好是4K的倍数,因此在SECTION的末尾将会存在一段未用的空间 , 大小可由Section的PHYSICAL SIZE-VIRTUALSIZE得到,在文件中起始位置可由 PHYSICAL OFFSET得到,这段空间可以用来存放病毒代码。此外一般来说, MZ Header+DOS STUD+PE
HEADER+OPTIONAL HEADER+SECTION TABLE不过1K左右, 而SECTION 1由4K开始,空出来的地方足够存放一个设计精良的病毒。CIH就是将 代码存放在这些空闲空间里。
2、分配驻留所需内存
对于驻留形的病毒,分配驻留所需内存是必需的。在DOS下使用由于所有的 应用程序都映射在相同的线性地址空间里,使用一般的内存分配调用就足够了。而在WIN32下,每个应用程序都有自己的线性地址空间,必须使用特殊的函数分配2GB以上的系统地址。典型的如:VXD服务_PageAllocate,和kernel32的 VxDCALL
_PageReserve。_PageAllocate请参看win98ddk中的说明,VxDCall _PageReserve 请参看HPS源码中的注释。
3、截留FILE I/O操作 驻留型的病毒通过截留FILE I/O来激活,可以通过使用VXD服务
IF *** gr_Install-FileSystemAPIHook(如CIH)或截留VxDCall中的DOS Services callback(如HPS)。
在Win32下编写病毒不是一件困难的事。值得注意的有几件事:
一、Win32下的系统功能调用不是通过中断实现,而是由DLL中导出。
(直接使用VxD服务除外)。直接在病毒中得到API入口不是一件容易的事,可以通过以下这个变通的 *** 。
在同一个版本的Windows下,同一个核心函数的入口总是固定的
(指由Kernel32,gdi32,user32导出的函数)。因此可以用以下的 *** 得到函数入口:
.386p
.model flat,stdcall
extrn GetModuleHandleA:proc
extrn GetProcAddress:proc
extrn ExitProcess:proc
.data
szKernel db 'KERNEL32.DLL',0
szFindFirst db 'FindFirstFileA',0
szFindNext db 'FindNextFileA',0
szFindClose db 'FindClose',0
szGetCurrentDir db 'GetCurrentDirectoryA',0
szGetWinDir db 'GetWindowsDirectoryA',0
szGetSysDir db 'GetSystemDirectoryA',0
szGetFileAttrib db 'GetFileAttributesA',0
szSetFileAttrib db 'SetFileAttributesA',0
szlopen db '_lopen',0
szlread db '_lread',0
szlwrite db '_lwrite',0
szlclose db '_lclose',0
szllseek db '_llseek',0
hKernel dd 0
.code
;Initialize code
start:
push szKernel
call GetModuleHandleA
mov hKernel,eax
push szFindFirst
push hKernel
call GetProcAddress
mov FindFirstFile,eax
....
jmp VirusStart
InitExit:
push 0
call ExitProcess
VirusStart:
jmp Entry
HostEntry dd InitExit
FindFirstFile dd 0
FindNextFile dd 0
...
Entry:
...
end start
在Intialize Code得到要用的函数入口并将它填入病毒中,在病毒运行时可以直接使用了。
相信现在有很多的朋友们对于住房公积金提取计算金额的方法是什么都想要了解吧,那么今天小编就来给大家针对住房公积金提取计算金额的方法是什么进行一个介绍吧,希望小编介绍的内容能够为大家起到帮助哦 计...
肌肉量非常恐怖的人,是不是脾气也不好? ,如果是从没有过训练经验,建议每次训练时长不超过40分钟,每周不超过三次;持续一个月后可酌情增加训练量。这样的人不会有暴力倾向。因为他们比较热爱运动,而且热爱运...
手机一串代码秒变黑客微信怎么弄 苹果手机微信发送黑客代码:在微信任意聊天窗口输入//opentrace并发送。调出一个悬浮的类似音乐播放器中的播放/停止按钮。点击一下是开始。再点击一下结束。复制后粘贴...
耄耋之年是什么意思(耄耋之年是多少岁)年龄的叫法是一个十分重要的问题,一直以来受到人们的广泛关注,那么对于耄耋之年是多少岁呢?相信对于这个问题大家也很想知道答案,那么接下来我们就一起来看看耄耋之年是多...
当有朋友在问我关于久闻网的排名为什么如此之快,我自己也没办法正面回答,不太会现场给你解释太多,而今天在墨子学院听了一节免费公开课后,好像明白了自己优化的思路。 久闻网一个月的时间,上涨关键词库数...
眼看着冬天越来越近,气温是一点一点的降下来,有的餐厅的人气随着温度而下降,有的餐厅却火爆依旧? 那么冬天餐厅适合卖些什么美食?冬天餐厅卖什么最赚钱呢? 一.火锅 毋庸置疑,冬天与火锅更配哦!热辣...