Virus 版 (精华区)
发信人: Kernel (Kermit), 信区: Virus
标 题: SEH 于病毒的应用(zz)
发信站: 哈工大紫丁香 (Sun Mar 14 20:30:56 2004), 站内信件
SEH 于病毒的应用
前话:
由于小弟技术很烂,有错的地方,请多多指正,不要客气。谢谢啦…这篇文章是我的第一
篇,可能会
错误百出,所以不要期待这是一篇好文章。希望能共同进步!
*这篇文章只出于研究病毒用途,请不要用此技术制造具有破坏性的病毒。谢谢!如有任何
人用此技术
造成任何破坏,于本人无关!
简介:
SEH 是什么?不知道是什么东东的话,就先去看看hume写的《SEH in ASM 的研究》或者
《Win32 Exception handling for assembler programmers by Jeremy Gordon》,再回来
看这篇
烂文章吧!
1.为什么要在病毒里使用seh呢?
任何程序都有可能有错误出现的,在我们的病毒里也是一样。病毒通常是用户在不知不觉
下
做手脚,如果我们的病毒出了错,那么就有可能弹出一个个讨厌的错误信息框,这样一来
我们的病毒
就没有什么意思了。不被用户察觉是十分重要的,所以我们要用SEH来处理我们病毒里有可
能出现的错
误。这是 SEH 于病毒中的应用之一,相信你在看完成SEH 的文章后,应该知道怎样使用S
EH去处理在
病毒里所产生的异常。
在我们的病毒里还有一样很重要的是--避免被侦察到,不然我们的病毒在开始运行的时候
就被
发现和杀掉,那么我们的心血就泡汤了!所以我们要令我们的病毒不容易给 反病毒引擎
发现。
当一个程序运行时,反病毒引擎会仿真程序的代码,如果它找到的疑点多的话,那么这个
程序
大多是被病毒感染了!这时反病毒引擎会做出适当的处理。所以我们可以在病毒里使用SE
H设计一个陷阱
给AVs的Emulator。这样就可避免被捕!哈哈!
2.如何用SEH于你的病毒去搞定Emulator?
o当!o当!入正题!既然它那么喜欢要模拟我们的代码,我们就在病毒一开始就安装一个
SEH,
该处理异常程序就是我们的病毒,然后制造一个异常。这样就进入异常处理程序(我们的病
毒)继续执行
。而仿真器却会以为是这是个普通异常处理程序,但是有些AVs会在遇到错误代码之后试图
继续模拟下一
个指令,那么我们就让它进入一个死循环!哈哈!How? 看看下面的代码:
*部分代码是引用benny's polymorphic engine
start:call Set_SEH;这句其实就是 push offset CONTINUE
; JMP Set_SEH
CONTINUE:mov esp, [esp+8];恢复堆栈, 当一个异常产生时,系统会挂起程序,并呼叫处
理程序,
;传送处理程序的参数里,在[ESP+8]处储存的是
旧的堆栈的地址
push offset Start_Virus ;----_ 把Start_Virus 的地址压进堆栈里,当作返回地址
ret;---- 跟着来一个ret,跳到Start_Virus去,是不是很magic?
Set_SEH:sub edx, edx ;Edx =0
;如果你使用的是masm,应该加下面一句,不然就会引起编译错误
;Assume fs:nothing
push dword ptr fs:[edx];把指去 _EXCEPTIONAL_REGISTRATION_RECORD 结构的指针压到
堆栈
mov fs:[edx], esp;安装一个seh 框架
mov [edx],edx;注意这里引起一个异常,因为edx=0, 所以会引起一个读写内存冲突的异常
,
;如果Emulator 不理会异常,不进入seh 处理程序(即 CONTINUE: ),继续模
;拟下个指令,也就是jmp start,那么就会进入一个死循环,这可能会造成当
jmp start ;机
Start_Virus: .....
.....
自己试试看吧!
明白了吗?不明白?没关系,没有什么人什么都懂,写信给我,我们来讨论一下吧!我的
qq:50527053,icq 72424549
email:henrynote@msn.com
*后话
SEH 的应用很广,不只是在病毒里有用(废话),最常用的当然是用来处理在可预知的异常
,SEH 技术也可以用于
返跟踪等等!
写这篇的文章的目的是为了和各位初学者分享学习结果,我也是初学者,希望能与大家一同
进步。
在这里要感谢很多人,所有帮助过我的朋友,有鼓励我写这篇文章的-老罗,还有很多大哥
。
------------------------------------------------------------------------------
--------------------------------
如需转载,请注明本文由henrynote着! Henry's WorkShop :http://hackit2000.virtual
ave.net
Thankyou For Very Much !
--
※ 来源:.哈工大紫丁香 bbs.hit.edu.cn [FROM: 219.82.103.154]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.543毫秒