source: trunk/TOOLS/TEST/TESTVIR!.ASM@ 28

Last change on this file since 28 was 28, checked in by Ben Rietbroek, 14 years ago

Morphed old v1.01 into new v1.06+ structure, main sources only.
This revision is not buildable.
It serves as the base for the sourceforge merge in the next revision.

File size: 2.6 KB
Line 
1
2; Bad Test-Virus (c) Martin Kiewitz - For test of AiR-BOOT ANTIVIR
3
4JUMPS
5
6; First all Equs
7
8ExecBaseSeg equ 00000h
9ExecBasePtr equ 07C00h
10BootBaseSeg equ 8000h
11BootBasePtr equ 0h ; We put our MBR to this location
12BootBaseExec equ BootBasePtr+offset MBR_RealStart
13StackSeg equ 7000h
14
15 .386p
16 model large, basic
17
18code_seg segment public use16
19 assume cs:code_seg, ds:nothing, es:nothing, ss:nothing
20 org 0000h
21
22
23;---------------------------------------------------------------------------
24air_boot: cld
25 mov ax, ExecBaseSeg
26 mov ds, ax
27 mov si, ExecBasePtr
28 mov ax, BootBaseSeg
29 mov es, ax
30 mov di, BootBasePtr
31 mov cx, 256
32 rep movsw
33 db 0EAh
34 dw BootBaseExec
35 dw BootBaseSeg
36 ; jmp far ptr BootBaseSeg:BootBaseExec
37
38; In: SI - Pointer to begin of string (EOS is 0)
39; Destroyed: SI
40MBR_Teletype Proc Near Uses ax bx cx
41 mov ah, 0Eh
42 mov bx, 7
43 MBR_Teletype_Loop:
44 lodsb
45 or al, al
46 jz MBR_Teletype_End
47 int 10h
48 jmp MBR_Teletype_Loop
49 MBR_Teletype_End:
50 ret
51MBR_Teletype EndP
52
53MBR_Virus_Message db 'I''m a little MBR non-stealth virus...Come and get me', 13, 10, 0
54;---------------------------------------------------------------------------
55MBR_RealStart: mov ax, StackSeg
56 mov ss, ax
57 mov sp, 7FFFh
58 mov ax, es
59 mov ds, ax ; Set DS to new segment
60 ; Lade den fehlenden Part von der Festplatte
61
62 mov si, offset MBR_Virus_Message
63 call MBR_Teletype
64
65 mov ax, 8600h
66 xor cx, 100
67 xor dx, dx
68 int 15h ; Wait to display message
69
70 mov ax, ExecBaseSeg
71 mov es, ax
72 mov bx, ExecBasePtr
73 mov dx, 0080h ; Erste HD, Sektor 50
74 mov cx, 0032h
75 mov ax, 0201h ; 1 Sektor lesen
76 int 13h
77
78 db 0EAh
79 dw ExecBasePtr
80 dw ExecBaseSeg
81
82code_seg ends
83 end air_boot
Note: See TracBrowser for help on using the repository browser.