Apostila de Criação de Badcoms

82

Transcript of Apostila de Criação de Badcoms

Page 1: Apostila de Criação de Badcoms
Page 2: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

II

Page 3: Apostila de Criação de Badcoms

Dr. Elek_Meag III

“ E disse Deus: Haja luz: e houve luz.”

Gênesis 1.3

Page 4: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

IV

Page 5: Apostila de Criação de Badcoms

Dr. Elek_Meag V

SumárioSumárioSumárioSumário

Advertências......................................................................................VIII

Editorial................................................................................................ X

Conselho ............................................................................................. XI

Introdução.........................................................................................XIII

Módulo I...........................................................................................XVII

Os Programas...............................................................................XVIII

O Primeiro Badcom ............................................................................. XX

Comando help ..................................................................................XXII

Os Comandos ..................................................................................XXIII

Comando ECHO: Escrevendo frases e... ..................................... XXIV

Comando PROMPT: Modificando o prompt................................... XXV

Comando REM: Fazendo comentários......................................... XXVI

Comando PAUSE: Pausando a execução ....................................XXVII

Comando EXIT: Concluindo a execução.....................................XXVII

Comando CLS: Limpando a tela................................................XXVIII

Comando DEL: Apagando arquivos............................................. XXIX

Comando RD: Excluindo pastas .................................................. XXXI

Comando MOVE: Movendo arquivos ..........................................XXXII

Comando COPY: Copiando arquivos .........................................XXXIII

Comando REN: Renomeando arquivos ..................................... XXXIV

Comando MD: Criando pastas ................................................... XXXV

Comando CD: Mudando a pasta aberta .................................... XXXVI

Recorte .....................................................................................XXXVII

Recapitulando..............................................................................XXXVIII

Módulo II ............................................................................................XL

O Assunto......................................................................................... XLII

Os Comandos ..................................................................................XLIII

Comando FORMAT: Formatando uma unidade............................XLIII

Comando LABEL: Nomeando Unidades.........................................XLV

Page 6: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

VI

Comando SUBST: Associando pastas a unidades ........................ XLVI

Comando TIME: Modificando a hora.......................................... XLVII

Comando DATE: Modificando a data ........................................XLVIII

Comando AT: Agendando tarefas ............................................... XLIX

Comando ATTRIB: Modificando atributos de arquivos ..................... LI

Comando COMP: Comparando arquivos .......................................LIII

Comando FIND: Encontrando texto .............................................. LIV

Comando TYPE: Mostrando o conteúdo de arquivos .......................LV

Comando CALL: Executando um outro arquivo de lotes ................ LVI

Comando GOTO: Pulo incondicional ............................................ LVII

Comando IF: Pulo condicional ....................................................LVIII

Comando SET: Variáveis em prompt de comando ......................... LIX

Comando FOR: Executando comandos em arquivos...................... LXI

Redirecionamento de I/O .................................................................. LXII

Explorando o Registro ......................................................................LXIII

Chaves e valores especiais:........................................................ LXXI

Vírus .............................................................................................. LXXII

FOR – Transformando badcoms em vírus .................................... LXXIII

Compilando Badcoms.......................................................................LXXV

Recapitulando............................................................................... LXXVII

Conclusão........................................................................................LXXX

Page 7: Apostila de Criação de Badcoms

Dr. Elek_Meag VII

Page 8: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

VIII

AdvertênciasAdvertênciasAdvertênciasAdvertências

Esta é uma publicação que têm apenas fins educativos. Não quero nem

desejo incitar ninguém a cometer atos de destruição de dados em

microcomputadores, meu objetivo ao escrever esta apostila é claro: mostrar

como funcionam e como são escritos os badcoms. Se o conhecimento aqui

aprendido for utilizado para fins ilícitos ou maliciosos, a responsabilidade será de

quem cometeu tais atos absurdos e inaceitáveis. O material aqui contido poderá

ser usado para manter a ordem, com técnicas de prevenção e proteção contra

badcoms, porém, também poderá ser utilizado para causar danos, deixo bem

claro que os atos que o conhecimento aqui compartilhado permite

dependem da índole do leitor.

Novamente, me isento de todo e qualquer ato ilícito, criminoso, antiético

e imoral que leitores mal intencionados podem cometer, e me isento de

qualquer dano causado com o uso do conhecimento proveniente desta

publicação.

Como tal, também peço que desconsidere qualquer apologia a tais atos

que eu eventualmente possa fazer em minha publicação. Se em qualquer parte

ou local desta publicação for encontrado qualquer indício de apologia ao crime

peço que desconsidere, sem hesitar. Deixo aqui bem claro que meu objetivo não

é cometer crimes ou incitar meus leitores a cometê-los, mas é compartilhar meu

extenso conhecimento sobre os badcoms, embora, sem intenção, eu possa errar

e fazer algum tipo de apologia criminosa. Aviso aqui também que esta se trata

de uma publicação gratuita, e em nenhum momento ela poderá ser

comercializada. Embora gratuita, é fechada e não permite modificações, embora

citações e cópias sejam permitidas, sendo necessário o apontamento da fonte.

Transcrever textos sem citar a fonte é um ato imoral, tanto em hacking como na

vida “lá fora”. Peço carinhosamente que os leechers se mantenham afastados!

Obrigado pela atenção e boa leitura.

Page 9: Apostila de Criação de Badcoms

Dr. Elek_Meag IX

Page 10: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

X

EditorialEditorialEditorialEditorial

lá. Você já deve me conhecer, meu nick é Dr. Elek_Meag e

escrevo uma revista chamada Revista UnderHack. Como

prometido na seção EOF da segunda edição, a mais recente,

um presente de Natal seria dado aos meus leitores. Por isso você já deve me

conhecer. ☺

No início fiquei indeciso sobre o que abordar; pensei em escrever sobre

personalização de computadores, desisti da idéia; pensei em escrever um

programa, um criador de badcoms, mas abandonei a intenção: é melhor ensinar

a pescar do que dar o peixe. Uma apostila que aborda este assunto tem de ser

um tanto extensa se quiser abordá-lo (quase) integralmente, visto que os

comandos são poucos, mas as oportunidades são muitas.

Escolhi esse assunto por dois motivos principais: é uma área do hacking

que conheço muito bem e que utilizo, ou pelo menos, entendo há muito tempo

e também, é claro, pelo fato de que abordei superficialmente o assunto na

última edição da Revista UnderHack, dando assim continuidade ao tema.

Gostaria de avisar que criar badcoms não é para qualquer um. Os

badcoms são como os vírus, são uma arte, só que, no entanto, é escrita e a

maioria não aprecia, por assim dizer (é óbvio, como vai apreciar uma “bost* que

fod* com essa merd* de PC” ?!)... Para criar badcoms, antes de saber os

comandos, é preciso ter criatividade e engenhosidade. Ter experiência com o

prompt do Windows, ou com o antigo MS-DOS ajuda. Resumidamente, é preciso

ser um hacker integral, é preciso ter o modo de pensar apropriado e necessário

aos hackers. Por isso digo que criar badcoms não é para qualquer um; criar

badcoms só é para o hacker que sabe ser hacker, por assim dizer.

Pois bem, aqui deixo meu presentinho de Natal. Filosofia

“elekmeaguiana”: é um paradoxo, afinal Natal é tempo de paz e paz é a última

coisa que os badcoms podem trazer, mas tudo bem... A paz será trazida ao

criador de badcoms, que dará boas gargalhadas. ☺

O

Page 11: Apostila de Criação de Badcoms

Dr. Elek_Meag XI

ConselhoConselhoConselhoConselho

omo eu disse anteriormente, criar badcoms é uma arte. Uma

arte bela, porém, incompreendida. Digo que é uma arte porque

um badcom bem feito... Sejamos realistas, um badcom por

mais podre que seja, traz felicidade. Tanto na hora de ver uma janela de

prompt que rapidamente desaparece causar danos muitas vezes irreversíveis,

quanto na hora em que concluímos nosso trabalho de escrevê-lo, mesmo não

sendo um livro ou revista.

Criar badcoms pode levar tempo. Um bom badcom, um que já não tenha

mil cópias criadas “distintamente” ao redor do mundo, um badcom único e

exclusivo pode ter a escrita trabalhosa e demorada. Por mais que um badcom

possa ser destrutivo, eu, Dr. Elek_Meag, aconselho que não seja

utilizado. Isso acontece devido ao fato de que a minha ética pessoal não o

permite, embora a ética possa ser quebrada. Porém, são da sua

responsabilidade os danos que podem eventualmente ser causados.

Sabe, escrever badcoms pode ser um trabalho lucrativo. Alguns chamam

de vender a alma, eu chamo de lucrar com o conhecimento. Outro dia, eu

mesmo ganhei quinze “real” para escrever um badcom. Quando acabei meu

“trabalho” percebi que mesmo um código de 136 bytes pode ser muito

destrutivo. Porém, um código mais elaborado pode render mais lucro. Isso

sendo apenas badcom. Imagine quanto se pode ganhar escrevendo vírus,

trojans ou keyloggers. Claro que para isso é necessário, ou pelo menos,

aconselhável, dominar alguma linguagem de programação como Delphi ou C.

Por mais paradoxal que pareça, o programa que menos traz danos ao PC é o

mais caro. Já chega!

Resumindo: o conselho que dou é que não utilizem os badcoms para, de

fato, fude* com a vida de outra pessoa, aconselho que não vá para o lado

negro da força. Hacking, antes de poder ser vandalismo, é obrigatoriamente

saber.

C

Page 12: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XII

Page 13: Apostila de Criação de Badcoms

Dr. Elek_Meag XIII

Page 14: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XIV

IntroduçãoIntroduçãoIntroduçãoIntrodução

sta será uma pequena introdução ao ambiente em que

estamos para desenvolver os badcoms e também, a toda essa

“história” de badcoms.

Para começar, como sempre, a etimologia. O termo badcom é uma

junção de dois outros termos de origem estadunidense, onde falam inglês

americano. “Bad” é um adjetivo e significa mau, isto é, o contrário de bom, já

“com” é uma abreviação de “command”, um substantivo que é traduzido como

comando. O resultado é algo como comando mau. O plural, como muito fazem,

não se faz com ’s, ficando badcom’s, lembrando que isso seria, em inglês, um

possessivo. O mais correto seria badcoms.

Badcoms podem ser feitos tanto em Windows como Linux, porém o

Windows é a plataforma dominante. Por isso, quando não se sabe o sistema

operacional, o Windows deve ser o S.O. alvo.

Há alguns anos atrás, é lançado o MS-DOS, um sistema operacional que

Bill Gates comprou da Seattle Computer Products e modificou um pouco.

Depois, com o surgimento do Windows, um sistema com interface gráfica (GUI),

isto é, com botões e campos ao invés de comandos em uma shell, o MS-DOS

era o gatilho para a iniciação do S.O. Quem já está mais tempo na informática

se lembra do comando win para inicializar o Windows. Mais um tempo se

passou e surgiu o Windows NT, essa versão já não precisava mais do MS-DOS

para bootar, a partir daí, o MS-DOS virou a shell do Windows em uma GUI:

tínhamos a possibilidade de usar a interface gráfica e de usar o prompt de

comando, como é chamada a shell no ambiente Windows. Assim, tudo o que

podia ser feito pela shell também podia ser feito através da interface gráfica e

vice-versa.

O antigo MS-DOS era um S.O. limitado: ele não permitia multitarefa nem

multiusuário, ou seja, o MS-DOS permitia que apenas um programa fosse

executado de cada vez e que apenas um usuário podia usar o S.O. Daí vem o

E

Page 15: Apostila de Criação de Badcoms

Dr. Elek_Meag XV

modo de execução de tarefas Batch, que executa uma tarefa após a outra.

Ainda podemos criar esses “scripts de execução” no Windows, utilizando-se dos

comandos do prompt de comando, desde que o arquivo receba a extensão .bat.

É notório que bat vem de batch e como todos sabem, bat significa morcego em

inglês, por isso, se eu me referir a morcegos é óbvio que se trata da extensão.

Eis uma imagem do prompt de comando:

É importante saber, também, sobre antigo modo de se referir aos

arquivos, que obedecia ao formato 8.3, isto é, um arquivo que tem um nome

com mais de oito caracteres é referido digitando-se os primeiros seis,

adicionando um til e o número respectivo. Por exemplo, um arquivo com o

nome assassino.txt; para me referir a ele, eu uso assass~1.txt. Arquivos que

tem como nome oito caracteres ou menos podem ter o nome escrito

integralmente. Nesse sistema antigo, não existiam espaços para nomes.

Alguns comandos do atual prompt de comando herdaram algumas das

fraquezas deste antigo sistema operacional. Na versão XP do Windows, alguns

comandos e opções perigosas foram removidos, mas podemos contornar esse

pé no saco vindo do Tio Bill. Porém, lembro-lhes que praticamente tudo o que

pode ser feito usando uma GUI pode ser feito utilizando uma shell, por isso,

badcoms são destrutivos e perigosos. Badcoms podem mudar a data ou apagar

arquivos. Podem criar um arquivo ou impossibilitar o boot.

Page 16: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XVI

Page 17: Apostila de Criação de Badcoms

Dr. Elek_Meag XVII

Page 18: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XVIII

Módulo IMódulo IMódulo IMódulo I

e você é iniciante, é importante que você se familiarize com os

programas que irá utilizar para escrever seus badcoms; o

segundo passo é conhecer os principais e mais básicos

comandos do prompt, afinal, é com eles que grande parte dos badcoms, mesmo

os mais pomposos, é escrita; e por fim, porém não menos importante, algumas

dicas para a escrita de badcoms: essas dicas você já conhece, foram abordadas

na Revista UnderHack #2.

Os ProgramasOs ProgramasOs ProgramasOs Programas

Escrever badcoms simples não exige nenhum programa adicional: tudo o

que precisamos já vem com o Windows, pelo menos nisso, o Tio Bill colaborou

com os hackers. Os programas que precisaremos serão o bloco de notas e o

prompt de comando. Você pode abrir esses programas através de Iniciar >

Todos os programas > Acessórios. Neste diretório estará o “prompt de

comando” e o “bloco de notas”.

Se você quiser fazer isso mais rapidamente, você pode abrir esses

programas a partir de Executar... Para abri-los daí, abra o menu Iniciar e clique

em Executar...

Esse executar é quase como o prompt de comando: permite executar

comandos, inclusive os do próprio prompt, porém, é gráfico e tem também o

botão .

S

Page 19: Apostila de Criação de Badcoms

Dr. Elek_Meag XIX

Ao clicar, uma janela como essa é aberta:

É no campo centrali que digitamos os comandos. Para abrir o bloco de

notas, digite notepad.exe, para o prompt de comando, digite cmd.exe.

Janela no bloco de notas:

Creio que o leitor se lembre de como é uma janela de prompt; se não

lembra, volte à página XV. Tente executar o bloco de notas e o prompt de

comando e estude-os um pouco.

Page 20: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XX

O PrimeiO PrimeiO PrimeiO Primeiro Badcomro Badcomro Badcomro Badcom

Na verdade, este é um exemplo muito simplório sobre como criar

badcoms. Este badcom nada tem de destrutivo, ele apenas exibe uma frase e

pede confirmação para continuar e fecha o programa. Aqui boto a carroça na

frente dos bois, por isso, não de muita bola para os comandos: eles serão

abordados e estudados, não se preocupe, don’t worry... Vamos lá!

Com o bloco de notas aberto, digite o seguinte código:

Depois de digitado o código, abra o menu Arquivo e clique em Salvar:

Aparecerá uma janela de salvamento de arquivo padrão do Windows.

@echo off

echo Meu primeiro badcom.

pause

exit

Page 21: Apostila de Criação de Badcoms

Dr. Elek_Meag XXI

Aqui, ela está ilustrada:

Não salve nada ainda! Vê o campo Salvar como tipo, seguido de

Documentos de texto (*.txt)? Pois bem, clique nesse campo e selecione a opção

Todos os arquivos.

No campo Nome do arquivo, digite o nome que deseja dar ao badcom

(aconselho que o leitor crie uma pasta e lá salve os seus badcoms), seguido da

extensão .bat. Isso é muito importante, pois é só através da extensão que o

Windows reconhecerá que o arquivo deve ser executado em modo batch.

Pronto, agora é só executar o “badcom” e ter a linda frase “Meu primeiro

badcom.” Escrita na janela do prompt, seguida da frase “Pressione qualquer

tecla para continuar...”. Ao clicar a janela some.

Lembro novamente que este é um exemplo bem simplório: mas serviu

para mostrar como deve ser efetuado o salvamento dos badcoms.

Page 22: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XXII

Comando helpComando helpComando helpComando help

Preferi excluir este programa da lista dos comandos usados em badcoms,

até pelo fato de que é quase impossível que se encontre o help em um.

O help (ajuda, em inglês) é utilizado para duas coisas: para listar os

comandos e para obter informações deles. Supondo que eu digite o comando

help no prompt de comando, ele exibirá uma janela desse tipo:

Note que quando executo o help, ele exibe os comandos do prompt.

Execute-o e leia o nome dos comandos e a sua descrição, pode até executar os

mais seguros, isto é, os que não podem trazer danos aos seus dados.

Depois de ter efetuado a leitura, execute o seguinte comando no prompt:

help cls. Como você já leu, o comando cls serve para limpar a tela. Quando

você executa o help, com mais um comando na frente, ele serve como um

assistente, que mostra a utilidade do programa e as suas opções de

funcionamento. Isso é muito importante, já que todo o badcom bem feito

exige, ao menos, um comando com opções. Imagine ter que lembrar de todos

os comandos e ainda por cima, de todas as opções, de cada comando. Por isso

há o comando help. Outro ponto de mérito ao Tio Bill...

Page 23: Apostila de Criação de Badcoms

Dr. Elek_Meag XXIII

Os Comandos Os Comandos Os Comandos Os Comandos

Se você executou o help e leu todas as descrições dos comandos, deve

ter notado que alguns podem ser potencialmente perigosos. Alguém com uma

real mente hacker já teria dado help nos comandos e os mais aventureiros,

teriam testados, mesmo sem saber os reais danos que poderiam ser causados.

Pois bem, entre os comandos do prompt de comandos, estes serão

abordados no módulo I:

cd

cls

copy

del

echo

exit

md

move

pause

prompt

rd

rem

ren

Estes são os comandos básicos para se escrever um badcom. Todo

badcom tem pelo menos um destes comandos. Eles servem para várias coisas,

que você já teve ter conhecido e/ou experimentado através do comando help;

servem para apagar e renomear arquivos; servem para mover (recortar)

arquivos; servem para limpar a tela, usar comentários, exibir uma frase, enfim,

fazem bastante coisa, mesmo não sendo muitos.

Page 24: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XXIV

Comando ECHO: Escrevendo frases e...Comando ECHO: Escrevendo frases e...Comando ECHO: Escrevendo frases e...Comando ECHO: Escrevendo frases e...

Algumas vezes, é necessário enviar alguma frase ao usuário e também

pode ser divertido enviar uma mensagem dizendo que os dados foram perdidos

ao usuário. E mais: na hora H, ninguém quer ver quais os comandos que o

badcom está executando, pois um usuário mais experiente pode fechar a janela

e interromper o andamento do badcom.

Usando o comando echo podemos mostrar frases na tela, tal é a sintaxe:

echo FRASE

Vistes, o comando funciona! Agora, quando quiser ocultar os comandos

que estão sendo executados, você executa echo off, isso desliga o eco, isto é,

a exibição dos comandos: apenas o que eles retornam, uma mensagem, por

exemplo, é exibido. Para esconder inclusive o echo off, você usa uma arroba

atrás: @echo off. Esse é o melhor jeito de fazer isso em badcoms, aí inclusive o

primeiro echo off fica escondido.

É aconselhável que se faça uso desse recurso apenas quando o badcom

estiver pronto e a melhor parte para colocar o @echo off é no início do código,

assim, todos os comandos executados ficam ocultos; não usando-o todos os

comandos seriam vistos na execução.

Page 25: Apostila de Criação de Badcoms

Dr. Elek_Meag XXV

Comando PROMPT: Modificando o promptComando PROMPT: Modificando o promptComando PROMPT: Modificando o promptComando PROMPT: Modificando o prompt

Através deste comando é possível modificar o prompt, isto é, o que

aparece antes de onde é digitado o comando. O prompt padrão é a pasta onde

o usuário está atualmente, mas isso pode ser modificado:

Note que o comando não tem opções, mas há alguns códigos de

caracteres para que eles sejam exibidos corretamente.

Pode ser usado qualquer tipo de texto como prompt, embora textos

curtos sejam recomendados, pela tamanha espalhafatosidade que têm.

Este comando é capaz de substituir o @echo off, afinal, se definir um

prompt pequeno, como apenas um traço, os comandos executados são

mostrados e não se ocupa muito espaço em tela com um discreto prompt, assim

podemos visualizar que comando está sendo executado.

Page 26: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XXVI

Comando REM: Fazendo comentáriosComando REM: Fazendo comentáriosComando REM: Fazendo comentáriosComando REM: Fazendo comentários

Quando o código é muito extenso ou muito difícil de compreender, é

comum linguagens de programação permitirem o uso de comentários para

especificar o que determinada função ou comando faz. O mesmo se aplica ao

prompt de comando.

Através do comando rem é possível deixar comentários, a sintaxe de uso

é bem simples:

rem comentários

Este comando não retorna nada: serve apenas para deixar comentários

no código, é apenas um indicativo de texto que é ignorado inclusive na hora da

execução: não aparece nada.

Porém, o comando aparece em um badcom se não haver o uso do

recurso citado na última página, o da desativação do eco.

Agora, depois destes dois comandos, serão abordados comandos mais

destrutivos do que estes dois: estes comandos conseguem apagar arquivos e

pastas. Peço que se tenha um cuidado especial por estes comandos, pois podem

causar grandes estragos dependendo do arquivo que elas atingirem: inclusive, o

Windows pode não mais rodar.

Page 27: Apostila de Criação de Badcoms

Dr. Elek_Meag XXVII

Comando PAUSE: Pausando a execuçãoComando PAUSE: Pausando a execuçãoComando PAUSE: Pausando a execuçãoComando PAUSE: Pausando a execução

Notavelmente e logicamente, quem escreve tenta tornar o badcom o

mais discreto possível, porém, um badcom dá um pouco de trabalho, toma

algum tempo e exige alguns testes.

Para pausar a execução do badcom podemos utilizar o comando pause,

que não tem opções. Isso serve para ver as mensagens que os comandos

devolveram, vendo assim, se o comando de teste foi concluído com êxito ou

não. É possível também usar o pause para parar a execução do badcom antes

de um comando nocivo, permitindo assim, o fechamento da janela.

O pause é utilizado quando se quer pausar a execução.

Comando EXIT: Concluindo a execuçãoComando EXIT: Concluindo a execuçãoComando EXIT: Concluindo a execuçãoComando EXIT: Concluindo a execução

Supondo que eu queira saber se determinado arquivo existe. Se ele

existir, o badcom continuará com a execução normalmente, mas se não existir,

irá para a execução.

Podemos fazer isso utilizando o comando exit, que tem algumas opções:

Estas opções não são usadas, portanto, não haverá explicação delas.

Page 28: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XXVIII

CCCComando CLS: Limpando a telaomando CLS: Limpando a telaomando CLS: Limpando a telaomando CLS: Limpando a tela

Pois bem, estamos quase acabando estes comandos iniciais que são úteis

para organização e teste de badcoms. Em um teste de um badcom muito

extenso, a tela pode ficar muito cheia e podemos utilizar o comando cls para

limpá-la, isto é, apagar o seu conteúdo e mostrar um novo prompt.

Este comando não oferece opções.

Acabamos, agora, estes comandos iniciais. Agora vem o “grosso”:

comandos que apagam, renomeiam, movem e copiam pastas e arquivos. Peço

cautela nesta parte, pois todos estes comandos, se mal utilizados ou utilizados

maliciosamente. Eles são simples e poderosos, mesmo alguns oferecendo várias

opções, o que os torna ainda mais perigosos.

Permita-me explicar melhor. Um badcom pequeno abre uma janela que

não dura nem um segundo na tela; isto significa que mesmo que o comando

nocivo esteja só no final do arquivo, não dará tempo de fechá-la. Se o arquivo

que foi excluído ou teve o nome modificado era importante e o computador for

reiniciado, é possível que o Windows nem inicie mais. Por isso tome cuidado, e

tome cuidado. Os avisos que dou são importantes e se forem ignorados podem

levar a danos irreversíveis nas informações no computador guardadas e nos

neurônios, causando uma forte dor de cabeça...

Page 29: Apostila de Criação de Badcoms

Dr. Elek_Meag XXIX

Comando DEL: Apagando arquiComando DEL: Apagando arquiComando DEL: Apagando arquiComando DEL: Apagando arquivosvosvosvos

Como vocês bem sabem, alguns arquivos são inúteis e é preciso apagá-

los para que não ocupem espaço no disco rígido indevidamente. Porém, quem

diferencia o arquivo útil do inútil é o usuário: o computador apaga os dois tipos

sem distinção.

O comando del, que vem de delete, nos permite apagar ou “deletar”

arquivos, mesmo os úteis; o del tem um sinônimo, um comando que executa

exatamente as mesmas coisas e tem as mesmas funções, o erase. Podemos

usar tanto um quanto outro quando o objetivo é apagar arquivos.

O del, porém, não é como os anteriores: ele tem opções que podem ser

utilizadas. Aqui está a janela de opções do del:

O leitor se lembra daquele papo de que os nomes de arquivos não

tinham espaços no antigo MS-DOS? Pois bem, ignore, pois quando você tiver

uma pasta ou arquivo que tem espaços no nome, coloque todo o endereço do

arquivo entre aspas, assim, ocorre a exclusão, por exemplo:

del “C:\a r q u i v o.txt”

Page 30: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XXX

As opções que o del / erase suportam são:

/P – pede confirmação para apagar para todos os arquivos;

/F – faz a exclusão de arquivos somente leitura;

/S – apaga os arquivos das subpastas do caminho especificado;

/Q – não pede confirmação no apagamento;

/A[:][R][H][S][A] – só apaga os arquivos que tenham os atributos

escolhidos, que podem ser:

R – arquivos somente leitura;

H – arquivos ocultos;

S – arquivos do sistema;

A – arquivos para arquivamento.

Geralmente, um badcom tenta causar danos discretamente, sem chamar

muito a atenção do usuário, por isso, não é aconselhável o uso da opção /P em

badcoms. Pode se usar del /F /S /Q arquivo, assim, ocorre a exclusão

mesmo se o arquivo for somente leitura, se for uma pasta, apaga todo o

conteúdo da pasta e o mais importante, não pede confirmação para

apagamento. Resumidamente, é perfeito.

Lembro-lhes que este comando só apaga arquivos: para apagar pastas,

você usa outro comando. Se for informada uma pasta e utilizado a opção /S,

apenas o conteúdo dela será perdido.

Este comando não é como o excluir da interface gráfica; não há lixeira e

se um arquivo é apagado, é perdido, a não ser que se use um recuperador de

arquivos excluídos, embora ele possa não recuperar o arquivo, ou recuperar um

arquivo corrompido.

Com ele também pode ser usado o caractere curinga *, o asterisco, para

excluir vários arquivos com a mesma extensão ou vários arquivos de mesmo

nome com extensões diferentes.

Novamente, recomendo que este comando seja utilizado com bastante

cautela para não causar dor de cabeça a quem está escrevendo seu badcom.

Page 31: Apostila de Criação de Badcoms

Dr. Elek_Meag XXXI

Comando RD: Excluindo pastasComando RD: Excluindo pastasComando RD: Excluindo pastasComando RD: Excluindo pastas

Normalmente, excluir um arquivo já é o bastante em um badcom e

dependendo do arquivo, o Windows pode não mais ser inicializado. Porém,

quando é do desejo uma abrangência de danos maior, embora não

recomendada, é possível apagar uma pasta.

Apagar pastas se torna possível através do comando rd, abreviação de

remove directory, remover diretório, já que pasta é apenas um apelido, visto o

ícone de um diretório em ambiente Windows.

Esse comando, assim como o del, exige bastante cautela!

Eis as opções do rd:

O rd é mais simples que o del, pois tem menos opções:

/S – Apaga os arquivos que estão dentro da pasta. Se a pasta tiver

arquivos e não for usada esta opção, a exclusão não será feita;

/Q – Não pede nenhuma confirmação para apagar a pasta.

Obviamente, quando ambas as opções estão unidas, elas têm grande

poder destrutivo e não chamam atenção do usuário. Podem ser excluídas pastas

como a Windows, que comporta o S.O. O sinônimo de rd é rmdir.

Pois bem, chegamos ao fim das exclusões, vamos agora aos comandos

de movimentação e de cópia.

Page 32: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XXXII

Comando MOVE: Movendo arquivosComando MOVE: Movendo arquivosComando MOVE: Movendo arquivosComando MOVE: Movendo arquivos

Em ambiente Windows com interface gráfica, usamos o comando

recortar, que aparece em um menu quando clicamos com o botão auxiliar no

arquivo. Depois, nós “colamos” o arquivo em outra pasta. Essa operação nada

mais é do que mover o arquivo.

No prompt, o comando que nos permite mover arquivo é o move, um

nome bastante intuitivo:

As opções do comando move são:

/Y – Não pede confirmação para substituir arquivos se o arquivo de

destino especificado já existir.

/-Y – Faz o oposto de /Y: pede confirmação para substituir arquivos se o

arquivo de destino especificado já existir.

Page 33: Apostila de Criação de Badcoms

Dr. Elek_Meag XXXIII

Comando COPY: Copiando arquivosComando COPY: Copiando arquivosComando COPY: Copiando arquivosComando COPY: Copiando arquivos

No Windows, para copiar arquivos, isto é, duplicá-los, é necessário

executar o comando copiar e depois o comando colar, no lugar desejado, que

aparecem no menu que se abre quando se clica com o botão auxiliar sobre o

arquivo. No prompt, porém, a tarefa deixa de ser trabalhosa, usando-se do

comando copy, que também serve para fundir arquivos:

O copy tem as seguintes opções:

/A – O arquivo referenciado se trata de ASCII;

/B – O arquivo referenciado é binário;

/D – Dá permissão para criar arquivos copiados sem criptografia;

/V – Verifica a cópia para ver se foi feita corretamente;

/N – Dá o nome ao arquivo no formato 8.3;

/Y – Não pede confirmação para substituir arquivos, /-Y faz o oposto;

/Z – Copia arquivos de rede em modo reiniciável.

Page 34: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XXXIV

Comando REN: Renomeando arquivosComando REN: Renomeando arquivosComando REN: Renomeando arquivosComando REN: Renomeando arquivos

Renomear significa dar um novo nome, ou seja, nomear novamente e o

comando que faz isso, no prompt de comando, se chama ren:

O sinônimo do ren, como já deve ter percebido, é o rename.

Este comando não possui opções, mas nem por isso é tão seguro assim:

se um arquivo importante para o sistema operacional for renomeado, ele deixa

de ser reconhecido e o Windows apresentará problemas.

Finalizamos, agora, a parte dos comandos básicos mais perigosos. Agora,

restaram apenas dois comandos daquela lista: o md e o cd, que são seguros e

serão abordados.

Page 35: Apostila de Criação de Badcoms

Dr. Elek_Meag XXXV

Comando MD: Criando pastasComando MD: Criando pastasComando MD: Criando pastasComando MD: Criando pastas

Quando estamos em um ambiente gráfico Windows, para criar uma

pasta, é necessário, no local desejado, clicar com o botão auxiliar; um menu dali

se desdobra e quando passamos o mouse por Novo, abre-se um outro menu, e

ali, clicamos em Pasta.

No prompt de comando, o md resolve o problema. Md vem de make

directory, isto é, fazer diretório e um sinônimo é o mkdir. Não tem opções.

Como pode ser visto na imagem, para criar uma pasta, basta usar a

sintaxe md [unidade:]pasta, lembrando que é possível criar uma pasta dentro

de uma outra pasta que está para ser criada, obedecendo sempre a sintaxe de

md [unidade:]pasta\pasta. Novamente, se é necessário dar um nome com

espaços à pasta, usa-se aspas.

Page 36: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XXXVI

Comando CD: Mudando a pasta abertaComando CD: Mudando a pasta abertaComando CD: Mudando a pasta abertaComando CD: Mudando a pasta aberta

Acho que esta é a única tarefa que é menos trabalhosa em ambiente

gráfico do que em prompt, afinal, basta dar um clique duplo para que a pasta se

abra. No prompt, isso pode ser feito através do comando cd, que vem de

change directory e cujo comando de mesma função é chdir.

Se trata de um comando simples, sem opções que são freqüentemente

utilizadas. Uma tela com as opções do cd:

Nota-se que ele tanto serve para mudar a pasta atual como para exibi-la,

se for executado sem complementos que definam a pasta de destino. Também,

para pastas que tenham espaço(s) no nome, usam-se as aspas.

Aqui finalizamos os comandos da lista, mas ainda há mais por estudar.

Page 37: Apostila de Criação de Badcoms

Dr. Elek_Meag XXXVII

RecorteRecorteRecorteRecorte

Retirado da Revista UnderHack #2, de Outubro de 2008, página 19:

Segurança para BadcomsSegurança para BadcomsSegurança para BadcomsSegurança para Badcoms Como eu já disse, badcoms podem ser extremamente perigosos, portanto,

valem algumas regras para quando estiver escrevendo um: 1. Salve inicialmente o badcom para um arquivo .txt, que não é perigoso; 2. Use, antes de cada comando potencialmente danoso o comando

“pause” para pedir confirmação de continuidade; 3. Não use opções de remoção de confirmação, que em alguns

comandos é apresentado com o nome de prompt; 4. Quando for escrever o badcom, deixe a parte destrutiva para o final,

faça primeiro o “fluxo”; Se forem tomadas essas quatro atitudes, criar badcoms não vai causar

nenhum problema. Caso deseje uma segurança adicional, use máquinas virtuais, programas que simulam um S.O. dentro de uma janela. Assim, se algo der errado, somente o S.O. virtual é danificado. Entre os principais programas de máquina virtual estão o VMware e o Virtual PC.

Page 38: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XXXVIII

RecapitulandoRecapitulandoRecapitulandoRecapitulando

Eis um pequeno resumo dos comandos abordados até agora:

echo – Exibe uma frase e pode ser usado para ocultar os comandos;

prompt – Modifica o prompt;

rem – Demarca um comentário;

pause – Pausa a execução do badcom;

exit – Interrompe a execução do badcom;

cls – Limpa a tela;

del – Apaga um ou mais arquivos;

rd – Apaga uma pasta;

move – Move um arquivo para outro lugar e pode ser usado para

renomear pasta;

copy – Copia um arquivo;

ren – Renomeia um arquivo;

md – Cria uma pasta;

cd – Modifica a pasta aberta.

Leia novamente a explicação dos comandos que não foram bem

compreendidos, saber esses comandos é o básico para fazer badcoms, sem uma

base não se constrói um prédio, ou se constrói um prédio que desaba com a

primeira brisa.

Page 39: Apostila de Criação de Badcoms

Dr. Elek_Meag XXXIX

Page 40: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XL

Page 41: Apostila de Criação de Badcoms

Dr. Elek_Meag XLI

Módulo IIMódulo IIMódulo IIMódulo II

reio que até agora nada de espalhafatoso ou esdrúxulo seja

abordado, portanto, porque não continuar?! O módulo I foi

apenas uma introdução básica à escrita dos badcoms, para se

escrever um bom badcom é preciso conhecer mais comandos. É por isso que

existe o nível II. Sinceramente, saber só aquele tiquinho quase que não dá para

fazer um badcom, e tentar só vai levá-lo à conclusão de que necessita de mais

conhecimento nessa área.

Esse um meio da publicação é muito importante, pois aqui estão os

comandos de fluxo, o redirecionamento de I/O, alguns comandos

importantíssimos e também, um pouco sobre compilação de badcoms.

Manipulação de tempo e tarefas, criação de arquivos e uma exploração do

registro para modificação de configurações. Digamos que aqui está uma

complementação e uma adição de malvadeza ao conhecimento...

Para a maioria dos usuários que querem criar seus badcoms, o fim do

interesse está na conclusão deste nível de conteúdo.

Retornando ao assunto, existe ainda um comando especial que

transforma o badcom em um vírus, não é nada do tipo virii badcom.bat, mas

pode ser útil, transformando essa apostila praticamente em uma odisséia sobre

criação de badcoms e de VÍRUS.

Mas chega de conversa e vamos direto ao assunto.

Aliás, qual é ele?!

C

Page 42: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XLII

O AssuntoO AssuntoO AssuntoO Assunto

Os comandos abordados no módulo II são:

at

attrib

call

comp

date

find

for

format

goto

if

label

set

subst

time

type

Além disso, há os seguintes assuntos:

• Redirecionamento de I/O;

• Exploração do registro;

• Transformando badcoms em vírus;

• Compilação de badcoms.

Como vemos, há bastante trabalho pela frente, vamos, então, começar

com os comandos.

Page 43: Apostila de Criação de Badcoms

Dr. Elek_Meag XLIII

Os ComandosOs ComandosOs ComandosOs Comandos

Nesse módulo, há mais comandos do que no primeiro: a questão é que

os comandos desse módulo permitem fazer coisas mais “espertinhas” deixando

o badcom mais temperado. Pois bem, comecemos a explicação. Algumas

imagens das opções dos comandos não poderão ser postas na integridade: a

ajuda do comando é tão grande assim. Porém como sempre não há muitas

opções, o tamanho se deve a explicações.

Comando FORMAT: FormatanComando FORMAT: FormatanComando FORMAT: FormatanComando FORMAT: Formatando uma unidadedo uma unidadedo uma unidadedo uma unidade

Quando o objetivo é de fato apagar todos os arquivos e pastas de uma

unidade, uma alternativa poderosa é o comando format, mas ele tem um

porém, ele sempre, sem exceção, pede confirmação, a desvantagem do format.

Felizmente, há um meio de contornar o problema que será abordado

posteriormente.

Eis as opções do format:

Note que não estão ali todas as opções do comando.

É aconselhável que o leitor cheque-as usando o help.

Page 44: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XLIV

As opções do format são as seguintes:

/FS:sistema_de_arquivos – Especifica o sistema de arquivos da

formatação, podem ser utilizados FAT, FAT32 ou NTFS;

/V:nome – Dá um nome à unidade;

/Q – Executa formatação rápida;

/C – Para NTFS: os arquivos serão compactados automaticamente;

/X – Força a desmontagem do volume;

/A:tamanho – Especifica tamanho de alocação de dados;

/F:tamanho – Especifica tamanho do disquete;

/T:trilhas – Especifica o número de trilhas por lado de disco;

/N:setores – Especifica o número de setores por trilha.

A sintaxe é:

format volume [opções]

Sobre a formatação rápida. A formatação normal primeiramente limpa o

HD dos arquivos antigos e depois disponibiliza o espaço na tabela de endereços

de arquivos. Já a formatação rápida apenas disponibiliza o espaço na tabela.

Sendo assim, os arquivos continuam lá.

Para uma maior garantia de que os arquivos não poderão ser

recuperados, deve ser executada a formatação normal. Para apagar

definitivamente, é preciso várias formatações.

Digo isso porque existem programas especializados em recuperação de

dados, softwares esses muitas vezes eficientes, conseguindo o usuário

(avançado) recuperar os dados.

Normalmente, não é necessário utilizar as opções /A, /F, /T e /N, pois o

“comando” já detecta automaticamente estes dados para uma formatação

correta.

Para utilizar a opção /FS é preciso saber um pouco sobre os sistemas de

arquivos utilizados na família Windows. O mais antigo que pode ser usado é o

FAT e o mais recente o NTFS. A partir do NT, o padrão é o NTFS.

Page 45: Apostila de Criação de Badcoms

Dr. Elek_Meag XLV

Comando LABEL: Nomeando UnidadesComando LABEL: Nomeando UnidadesComando LABEL: Nomeando UnidadesComando LABEL: Nomeando Unidades

Não é necessário formatar toda a unidade e fazer uma cópia de todos os

dados para dar um nome a ela. No prompt de comando podemos utilizar o

comando label para isso.

Eis as opções do comando:

Como podem ver, a única opção deste comando é a /MP, que

normalmente não é utilizada.

Para nomear um unidade, basta seguir a seguinte sintaxe:

label [unidade:][rótulo]

Supondo que eu tenha executado label C:NOME, a unidade terá a

seguinte aparência em Meu Computador:

É um comando meio inútil quando se está escrevendo um badcom, mas

serve para fazer algumas brincadeirinhas com o nome das unidades, como usar

palavras chulas ou bobagens como nome de unidade.

Page 46: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XLVI

Comando SUBST: Associando pastas a unidadesComando SUBST: Associando pastas a unidadesComando SUBST: Associando pastas a unidadesComando SUBST: Associando pastas a unidades

Provavelmente o leitor já teve vontade de ter um acesso mais rápido a

determinadas pastas, sem o uso de atalhos. Na verdade, o objetivo era

“transformar” essa pasta em uma unidade, para que aparecesse em Meu

Computador.

É para essa tarefa que existe o comando subst.

As opções de subst:

Como é visível, a única opção é /D, que serve para apagar uma unidade

virtual, isto é, desfazer esse vínculo entre unidade/pasta.

Esse comando tem a seguinte sintaxe:

subst [unidade1: [unidade2:]caminho]

Sendo que unidade1 é a unidade a que será atribuída a unidade2, e o

caminho, se houver. Por exemplo, para vincular a pasta C:\Windows à unidade

Z:, usa-se subst Z: C:\Windows.

O nome da unidade virtual é o mesmo que o da real a que foi vinculada,

assim sendo, o label não consegue modificá-lo. Outra limitação é que não é

possível vincular uma pasta à outra unidade já existente. É possível formatar

essas unidades virtuais.

Page 47: Apostila de Criação de Badcoms

Dr. Elek_Meag XLVII

Comando TIME: MComando TIME: MComando TIME: MComando TIME: Modificandoodificandoodificandoodificando a hora a hora a hora a hora

É evidente que todos os usuários, inclusive os novatos, conhecem o

relógio do Windows: ele faz basicamente o que relógio de parede faz, marca as

horas. :P

Acontece que essas horas podem ser mudadas, ou então, exibidas,

através do comando time, tempo em inglês, um nome bem sugestivo...

A tela... :

Notavelmente, o comando tem apenas uma função, /T, que seve para

apenas mostrar a hora, já que originalmente time serve para modificar a hora.

A hora nova, que o sistema assumirá depois da execução do comando,

deve obedecer ao padrão horas:minutos, com o dois pontos servindo como

divisão.

Não é permitido o uso de 24:00, o correto é utilizar 00:00, para indicar a

meia-noite.

Esse comando é praticamente inútil, mas pode ser usado para fazer uma

brincadeirinha de mau gosto com o usuário, a de modificar a hora para que ele

se atrase no trabalho, ou algo assim...

Page 48: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

XLVIII

Comando DATE: Modificando a dataComando DATE: Modificando a dataComando DATE: Modificando a dataComando DATE: Modificando a data

O relógio do Windows, além de marcar as horas, também tem um

calendário. Para ver a data atual, basta deixar o cursor em cima do calendário.

Se quisermos fazer uma brincadeirinha, de mudar a data, é possível faze-

la através do comando date, data em inglês, outro comando bem sugestivo.

A tela de opções do date:

Como pode-se notar, a única opção, assim como no comando time, é a

/T que serve para apenas exibir a data atual.

A nova data, se o comando for utilizada para modificá-la, deve obedecer

ao padrão dd/mm/aaaa, isto é, dois caracteres, primeiro, para o dia, uma barra,

dois caracteres para o mês, segundo, um barra e por último, quatro caracteres

para ano, como em 11/12/2008.

Datas inválidas são automaticamente recusadas, portanto, não adianta

tentar mudar a data para trinta de fevereiro, nem para dia trinta e um de meses

que têm apenas trinta dias.

Page 49: Apostila de Criação de Badcoms

Dr. Elek_Meag XLIX

Comando AT: Agendando tarefasComando AT: Agendando tarefasComando AT: Agendando tarefasComando AT: Agendando tarefas

Você já pensou em executar automaticamente alguma tarefa em seu

computador na quinta-feira, por exemplo? Não seria interessante agendar o

apagamento de um arquivo apenas um mês depois da execução do badcom,

para eliminar suspeitas? Agendar tarefas é possível através do comando at.

O at é um comando com algumas opções:

Estas opções, obviamente, servem para especificar melhor como e

quando a tarefa desejada deve ser executada.

Esta “agenda” de tarefas fica guardada e é visível ao usuário se for

aberta através do Painel de Controle, em Tarefas agendadas, uma fraqueza,

mas como a maioria dos usuários não checa, pode “por fé”.

Infelizmente, não é tão completo como na interface gráfica, que permite

executar comandos ao iniciar do computador, entre outras coisas, mas pode ser

utilizado.

Page 50: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

L

As opções do at são:

\\computador – Especifica em que computador executar a tarefa. Se o

computador em que o badcom for executado estiver em rede, este comando

permite agendar tarefas em outros computadores da rede;

id – Especifica o número de identificação da tarefa;

/DELETE – Apaga alguma tarefa;

/YES – Usado com o comando para cancelar todos os trabalhos quando

nenhuma confirmação adicional for necessária;

/INTERACTIVE – Permite que o usuário consiga interagir com a tarefa.

Por exemplo, que ele consiga usar um programa que é executado;

/EVERY:data[,...] – Especifica a freqüência de execução. Pode conter

uma data ou mais;

/NEXT:data[,...] – Especifica a próxima execução da tarefa.

Estas opções já são suficientes para eliminar qualquer suspeita sobre

qualquer execução de badcom...

Page 51: Apostila de Criação de Badcoms

Dr. Elek_Meag LI

Comando ATTRIB: Modificando atributos de arquivosComando ATTRIB: Modificando atributos de arquivosComando ATTRIB: Modificando atributos de arquivosComando ATTRIB: Modificando atributos de arquivos

Chegamos à “manipulação” de arquivos. Isso é muito importante, pois

permite fazer muitas pegadinhas. ☺

Para quem não está familiarizado, ainda, com o Windows, os arquivos

podem assumir atributos especiais. É um modo de classificá-los e ordená-los. Os

arquivos podem ser classificados como:

• Arquivos de somente leitura;

• Arquivos de leitura-gravação;

• Arquivos de sistema;

• Arquivos ocultos.

Os arquivos com o atributo de somente leitura permitem apenas a

abertura e não permitem que haja modificação. Os arquivos com o atributo de

leitura-gravação permitem a abertura e a modificação. Os arquivos de sistema

são os arquivos importantes que pertencem ao Windows e normalmente não

são visíveis. Os arquivos ocultos, obviamente, são ocultos ao usuário.

A “utilidade” de attrib é a de que ele pode tornar todos os arquivos de

uma pasta importante, como a Meu Documentos, que é onde estão documentos

e planilhas como somente leitura, impossibilitando a modificação. Permite

também ocultar todos os arquivos do HD.

Se for do seu desejo ver os arquivos ocultos, faça o seguinte:

Abra o Meu Computador, vá no menu Ferramentas e clique no botão

Opções de pasta..., lá, clique na guia Modos de exibição e desça a barra de

rolagem de Configurações avançadas até embaixo, lá irá aparecer a opção, em

Pastas e arquivos ocultos, Mostrar pastas e arquivos ocultos:

Isso tornará os arquivos ocultos visíveis, que terão o ícone com uma

aparência semi-transparente, ao contrário dos outros arquivos, que têm

aparência sólida.

Estas são as opções do comando attrib:

Page 52: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LII

/S – Aplica os atributos à pasta e aos arquivos e subpastas;

/D – Aplica os atributos também a pastas.

Para ativar, usa-se + e para desativar - antes da letra relacionada ao

atributo, que podem ser:

• R para atributo de somente leitura;

• A para atributo de leitura-gravação;

• S para atributo de arquivo de sistema;

• H para atributo de arquivo oculto.

É possível também que se defina mais de um atributo de uma vez,

exceto, se a combinação de letras resultante tiver R e A, pois os dois atributos

são opostos, de resto, não há restrições.

Page 53: Apostila de Criação de Badcoms

Dr. Elek_Meag LIII

Comando COMP: CoComando COMP: CoComando COMP: CoComando COMP: Comparando arquivosmparando arquivosmparando arquivosmparando arquivos

Não é muito útil, exceto quando se está a escrever vírus, mas de

qualquer modo, será estudado.

O comp serve para comparar arquivos, descobrir se dois ou mais arquivos

são iguais e se não são, descobrir suas diferenças. Eis uma janela com suas

opções:

As opções são:

/D – Mostra as diferenças em formato decimal;

/A – Mostra as diferenças em ASCII;

/L – Mostra números de linha para cada diferença;

/N=número – Compara somente o número de linhas especificado, no

início do arquivo;

/OFF[LINE] – Não ignora arquivos off-line.

Não é um comando que seja muito utilizado, nem em badcoms, nem para

outros propósitos.

Page 54: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LIV

Comando FIND: Encontrando textoComando FIND: Encontrando textoComando FIND: Encontrando textoComando FIND: Encontrando texto

Normalmente, quando estamos em uma página e queremos localizar

algum termo, usamos a pesquisa do navegador, as teclas de atalho geralmente

são Ctrl+F ou F3.

Podemos usar esse recurso também no prompt de comando, através do

comando find, encontrar em inglês. Este comando nos permite, quando

estamos fazendo vírus, encontrar assinaturas de infecção, isto é, saber se

determinado arquivo já está infectado. Fora isso, não é muito útil.

A janela de opções do find é esta:

O comando tem algumas opções:

/V – Mostra as linhas que não contêm o texto desejado;

/C – Mostra as linhas que têm o texto desejado;

/N – Mostra números de linha;

/I – Ignora diferença entre maiúsculas e minúsculas;

/OFF[LINE] – Não ignora arquivos off-line.

É um comando simples...

Page 55: Apostila de Criação de Badcoms

Dr. Elek_Meag LV

Comando TYPE: Mostrando o conteúdo de arquivosComando TYPE: Mostrando o conteúdo de arquivosComando TYPE: Mostrando o conteúdo de arquivosComando TYPE: Mostrando o conteúdo de arquivos

Este comando é bem simples e não tem opções: ele serve apenas para

mostrar o conteúdo de arquivos. A janela de ajuda dele é esta:

A sua sintaxe é algo paupérrimo:

type [unidade:][caminho]arquivo

Mesmo assim, ele pode servir para encher o HD, se utilizado

maliciosamente, coisa já abordada na Revista UnderHack #2. Isso é feito

através de um loop infinito, o type, e redirecionamento de I/O.

Também pode ser útil para ver o conteúdo de um arquivo, quando não

há vontade de usar o bloco de notas...

Page 56: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LVI

Comando CALL: Executando um outro arquivo de lotesComando CALL: Executando um outro arquivo de lotesComando CALL: Executando um outro arquivo de lotesComando CALL: Executando um outro arquivo de lotes

Suponha que eu queira fazer um badcom, mas que tenha uma estrutura

grande, que tenha vários arquivos que são executados em Batch e em

determinado momento, eu queira, chamar outro arquivo em lotes.

Para esse tipo de tarefa, o comando call é utilizado.

Eis uma janela reduzida sobre o comando, já que a ajuda dele é extensa:

Esse é um comando sem opções, porém, é bastante elaborado pelo fato

de que permite enviar parâmetros de execução ao arquivo de lotes de destino.

Também permite chamar rótulos, coisa que será abordada mais adiante.

A sintaxe do comando é:

call [unidade:][caminho]arquivo [parâmetros]

É óbvio que é preciso, sempre ao fim do rótulo, um exit para retornar à

execução inicial, e no final dos rótulos também.

É possível também executar programas com interface gráfica a partir

desse comando.

Normalmente, é pouco usado, mas um badcom grande (e poderoso,

geralmente) utiliza-o.

Page 57: Apostila de Criação de Badcoms

Dr. Elek_Meag LVII

Comando GOTO: Pulo incondicionalComando GOTO: Pulo incondicionalComando GOTO: Pulo incondicionalComando GOTO: Pulo incondicional

Toda linguagem de programação tem seus comandos de manipulação de

fluxo, condicional e incondicional, isto é, que preenche a um requisito ou que

não preenche, mudando o fluxo sempre.

Em “linguagem” de prompt de comando, não poderia ser diferente, o

comando de “pulo” incondicional é goto.

Como percebe, o comando goto pula para um rótulo. Um rótulo é uma

palavra ou conjunto de caracteres que “nomeia” determinada parte do código. É

uma referência para o pulo do goto, afinal, ninguém pula de uma cadeira se não

souber onde vai cair. Um rótulo sempre é indicado com dois pontos que o

precedem, como em :rotulo.

O goto é um comando sem opções, por isso, é muito simples. Em alguns

casos, quando se quer usar parâmetros geralmente, o goto é substituído pelo

call. Sua sintaxe também é muito simples:

goto rotulo

Sendo que em goto não se põe dois pontos antes do rótulo, como no

exemplo. Para executar um loop infinito, cria-se um rótulo (, executa algum

comando) e cria-se um goto para o rótulo logo a cima, repetindo o loop até a

janela ser fechada, ou ser teclado Ctrl+C.

Page 58: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LVIII

Comando IF: Pulo condicionalComando IF: Pulo condicionalComando IF: Pulo condicionalComando IF: Pulo condicional

Ao contrário do goto, o if é um comando de pulo condicional, comum a

todas as linguagens de programação, inclusive as direcionadas à web. Ele

permite modificar o fluxo se determinado requisito preenchido; se o requisito

não é preenchido, nada acontece.

Aqui está uma janela sobre o if:

É um comando importante, pois permite que o badcom “saiba” várias

coisas. Tem vários operadores, por isso, é um comando muito complexo e

requer um estudo profundo, coisa que não é possível de ser feita em uma

apostila sucinta.

Não existe uma só sintaxe, visto que há vários operadores e também

várias partículas de negação, de existência de arquivos, de checagem de retorno

de comandos e programas...

É possível, através desse comando em conjunto com o comando set,

montar um jogo, um quiz que apaga algum arquivo se o usuário erra a questão.

É simplesmente indescritível, pelo menos para esta apostila.

Novamente, um estudo profundo é recomendado, para total utilização

dos recursos que o if fornece.

Page 59: Apostila de Criação de Badcoms

Dr. Elek_Meag LIX

Comando SET: Variáveis em prompt de comandoComando SET: Variáveis em prompt de comandoComando SET: Variáveis em prompt de comandoComando SET: Variáveis em prompt de comando

Este comando é muito importante e pode ser muito utilizado, tanto em

badcoms como em vírus. Ele serve para criar e excluir variáveis, além de

mostrar as que já estão ativas.

Apesar da simplicidade, é muito útil. A utilidade das variáveis é extensa,

pois pode guardar várias coisas. Mas o principal uso (que dou) é o de guardar

endereços virtuais de arquivos. Assim, não é necessário digitar todo o endereço

a cada vez que quiser se referir a determinado arquivo.

É também, um comando com um “help” bem grande, e sua leitura é

aconselhada.

A sintaxe para definir uma variável através do set é:

set [variável=[caracteres]]

Para utilizar variáveis, coloca-se o nome delas entre sinais de

porcentagem, como em %VAR%.

Quando o SET é executado sozinho, sem definição de variáveis, ele exibe

as que já estão ativas. O Windows já dá algumas variáveis prontas que se

referem a pastas e unidades chave do sistema, algo muito bom para quem

escreve badcoms.

Page 60: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LX

Estas são as principais*:

ALLUSERSDATA

Pasta onde ficam guardados os dados dos usuários do

computador.

Geralmente fica em C:\Documents and Settings\All Users .

COMPUTERNAME Nome do computador.

Depende do usuário na hora da instalação do Windows.

ProgramFiles Pasta onde ficam os dados dos programas instalados.

Geralmente fica em C:\Arquivos de programas .

SystemDrive Unidade onde está instalado o Windows.

Geralmente fica em C:

SystemRoot Pasta onde está instalado o Windows

Geralmente fica em C:\Windows

USERPROFILE Pasta onde ficam guardados todos os dados do usuário que

está atualmente logado.

Há ainda algumas variáveis que podem ser úteis.

Quando se quer fazer algo que recebe um valor aleatório, há a RANDOM,

em uso, %RANDOM%. Cada vez que ela é referenciada, tem um valor numérico

diferente. É muito útil quando se quer renomear arquivos em massa ou quando

se quer modificar a senha do usuário.

Há também as %TIME% e %DATE%, ilustradas já em uso, que dão o

valor da hora e da data, respectivamente, no mesmo formato dos comandos

time e date.

Por último, entre outras dessas variáveis padronizadas, há a %CD%: a

pasta que está atualmente aberta.

Se quiser saber integralmente as possibilidades que o comando SET dá,

execute help set, embora esse texto seja bastante esclarecedor.

* A tabela foi retirada da Revista UnderHack #2 e foi aumentada.

Page 61: Apostila de Criação de Badcoms

Dr. Elek_Meag LXI

Comando FOR: Executando comandos em arquivosComando FOR: Executando comandos em arquivosComando FOR: Executando comandos em arquivosComando FOR: Executando comandos em arquivos

Esse comando, então, nem se fala.

De cara, já recomendo que seja feito um estudo profundo e aviso que

este comando não será totalmente abordado nesta apostila, até pelo fato de

que isso é praticamente impossível.

O for serve para deixar o programa mais compacto, sua funcionalidade é

a de executar o comando especificado para cada arquivo especificado. Uma tela

das suas opções:

A janela não está completa, por isso, help for.

Comecemos a explicação; “%variável” se trata da variável, obviamente,

que vai guardar temporariamente o nome do arquivo, presumo eu. Para

badcoms, devemos usar %%variável, invés de %variável.

“conjunto” é o arquivo ou arquivos que serão modificados, podem ser

utilizados curingas.

“comando”, obviamente, é o comando a que os arquivos inclusos em

conjunto serão submetidos. E “parâmetros” são as opções do comando.

Supondo que eu queira apagar os arquivos notepad.exe e calc.exe, isto é,

o bloco de notas e a calculador, eu executaria o for no seguinte formato:

for %f in (notepad.exe, calc.exe) do del %f /F /Q

Lembre que para arquivos de lotes, dobra-se o sinal de porcentagem.

Page 62: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LXII

Redirecionamento de I/ORedirecionamento de I/ORedirecionamento de I/ORedirecionamento de I/O

I/O é uma abreviação de Input/Output, em inglês, entrada/saída. Assim

sendo, redirecionamento de I/O também pode ser chamado de

redirecionamento de E/S...

Imagine uma tubulação, que tem um cano central, por onde, por padrão

a água entra e sai, e tem mais outras duas saídas e duas entradas, que são

normalmente vedadas, por ali não passa água. Podemos se quisermos

redirecionar a entrada, fazendo a água entrar por dos dois outros canos de

entrada. Também podemos fazer a água sair por um cano diferente.

É nisso que se baseia o redirecionamento de I/O, mudar o curso padrão

das informações fazendo-as entrar por um lugar diferente, ou sair por outro

gargalo não-padronizado.

Esse recurso nos permite, por exemplo, fazer com que, por exemplo, um

arquivo seja fundido a outro, através do comando type, que exibe o conteúdo

do primeiro arquivo. Isso inutilizaria os dois...

O redirecionamento de I/O funciona a partir de quatro operadores, são

eles <, >, << e >>. O destino da informação depende da direção para qual a

seta aponta: quando a seta aponta para a direita, segue a lógica de

transferência origem > destino, quando a seta aponta à esquerda, a lógica é

destino < origem.

Se fosse executado o comando echo Hello World! > arquivo.txt, o arquivo arquivo.txt seria criado, se não existisse, todo seu conteúdo seria apagado (se existisse) e no lugar, seria posto “Hello World!”.

Já, se fosse executado o comando echo Hello World! >> arquivo.txt, com o operador duplo, o arquivo arquivo.txt seria criado se não existisse, e seria adicionado ao final do arquivo “Hello World!”. Perceberam a diferença? Um substitui, o outro inclui.

O leitor se lembra do comando format, em que não era possível formatar sem

pedir confirmação? “Seus problemas acabaram!”, é possível contornar esse “bug” a

partir do redirecionamento de I/O. Para isso, é preciso ter um arquivo com as respostas

às confirmações e enviá-las ao format, como em format C: < file.txt.

Page 63: Apostila de Criação de Badcoms

Dr. Elek_Meag LXIII

Explorando o RegistroExplorando o RegistroExplorando o RegistroExplorando o Registro

O registro é uma área na família Windows que serve para guardar as

informações dos programas instalados e das configurações estabelecidas.

Portanto, ele é muito importante.

Através da modificação de valores do registro, é possível fazer diversas

peripécias: trocar os botões do mouse, mudar o papel de parede, fazer o

teclado ficar acelerado ou devagar, enfim, muitas coisas engraçadas podem ser

feitas através do registro.

Para editar o registro através da interface gráfica, utilizamos um

programa que pode ser aberto se digitarmos regedit em Executar..., mas em

prompt de comando, um programa (veja bem, não um comando) dá conta

dessa tarefa, o reg. Esta é a sua ajuda:

Page 64: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LXIV

Existem cinco abreviaturas das chaves principais, são elas:

HKLM para HKEY_LOCAL_MACHINE;

HKCU para HKEY_CURRENT_USER;

HKCR para HKEY_CLASSES_ROOT;

HKU para HKEY_USERS;

HKCC para HKEY_CURRENT_CONFIG.

Note que, ao contrário dos comandos, o reg usa palavras ao invés de

opções, e são essas palavras que têm opções. Estas palavras são:

QUERY – Retorna o valor da chave especificada:

As opções de reg query são:

/v VALOR – Retorna o valor especificado (VALOR é o nome da chave,

caso não seja informado, todos os valores da chave são exibidos);

/ve – Retorna o valor padrão, ou valor sem nome;

/s – Retorna todas as sub-chaves e valores.

Page 65: Apostila de Criação de Badcoms

Dr. Elek_Meag LXV

ADD – Cria valor na chave especificada:

/v – Nome do valor a ser criado;

/ve – Adicionar valor sem nome;

/t – Tipo de dado (ver figura), por padrão é REG_SZ;

/s – Caractere de separador para valores REG_MULTI_SZ, \0 é o padrão;

/d – Dados a serem atribuídos ao valor;

/f – Forçar substituição sem confirmação.

Page 66: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LXVI

DELETE – Apaga valor na chave especificada:

As opções do comando são:

/v VALOR – Valor a ser excluído;

/ve – Excluir valor sem nome;

/va – Excluir todos os valores da chave;

/f – Força a exclusão sem confirmação.

Cautela com esse comando, pois como já se sabe, ele apaga valores, e o

valor apagado pode ser crucial para o funcionamento do sistema.

Page 67: Apostila de Criação de Badcoms

Dr. Elek_Meag LXVII

COPY – Copia valor(es):

As opções de reg copy são:

/s – Copia todas as sub-chaves e valores da chave especificada;

/f – Força a cópia sem confirmação.

Não chega a ser perigoso, mas pode ser utilizado para carregar o registro

com informações inúteis.

Page 68: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LXVIII

SAVE (EXPORT) – Salva uma chave de registro para arquivo:

Não tem opções, pode ser útil para fazer backups do registro, assim

como para lotar o HD com arquivos com partes do registro como conteúdo.

LOAD (IMPORT) – Carrega um arquivo de registro (criado com SAVE):

Não tem opções e não é perigoso a não ser se no arquivo for inclusos

valores e chaves inválidos ou maliciosos.

Page 69: Apostila de Criação de Badcoms

Dr. Elek_Meag LXIX

UNLOAD – Descarrega uma chave (carregada com LOAD):

Não tem opções nem tem perigo.

RESTORE – Grava arquivos de registro (criados com SAVE) no registro:

Não tem perigos, a não ser em caso de substituição de chave/valor por

algo malicioso. Não tem opção alguma.

Page 70: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LXX

COMPARE – Compara dois valores/chaves ou mais:

As opções são:

/v – Define o nome do valor a ser comparado;

/ve – Compara o valor sem nome;

/s – Compara todas as sub-chaves e valores;

/oa – Retorna as diferenças e combinações;

/od – Retorna as diferenças;

/os – Retorna as combinações;

/on – Não retorna nada.

Page 71: Apostila de Criação de Badcoms

Dr. Elek_Meag LXXI

Chaves e valores especiais:Chaves e valores especiais:Chaves e valores especiais:Chaves e valores especiais:

Existem algumas chaves e valores que podem servir para pegadinhas:

CHAVE

HKEY_CURRENT_USER\Control Panel\Mouse

Valor Descrição

DoubleClickSpeed [900~200] Velocidade do clique duplo

MouseSensivity [1~20] Sensibilidade do mouse

MouseSpeed [0/1] Aprimora precisão do ponteiro

MouseTrails [0~7] Exibe rastro do mouse

SwapMouseButtons [0/1] Troca botões do mouse

CHAVE

HKEY_CURRENT_USER\Control Panel\International

Valor Descrição

s1159 Sinalizador de AM

s2359 Sinalizador de PM

sCountry País

sCurrency Unidade monetária

sLanguage Sigla da linguagem

CHAVE

HKEY_CURRENT_USER\Control Panel\Appearance

Valor Descrição

SelectedStyle [1~21] Estilo gráfico selecionado

A chave guarda a localização dos programas que devem ser executados

no boot; para executar algum programa no boot, basta adicionar um valor e por

o endereço do programa como dados do valor:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

Page 72: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LXXII

VírusVírusVírusVírus

Estamos, aos poucos, chegando ao fim do módulo, ainda falta abordar o

assunto dos vírus e falar sobre a compilação de badcoms.

A diferença entre vírus e badcoms é, na verdade, muito simples: os vírus

se reproduzem, os badcoms não. Um badcom pode ser transformado em vírus

muito facilmente, embora esse tipo de vírus não seja muito contagioso, afinal,

ele é escrito em “linguagem” de prompt de comando, o que não permite

mandar o vírus por e-mail, por exemplo. Até há como enviar por e-mail, mas

enviar para qual e-mail, já que é difícil alguém guardar e-mails em formatos que

o vírus possa “ler”?

As possibilidades extremamente limitadas de transmissão reduzem a

infecção a se copiar para outros arquivos .bat, ou sobrescreve-los com seu

código, o que com certeza é mais eficiente. A questão é que ninguém usa mais

a extensão .bat. É possível compilar o badcom para .exe, mas não há ganho

significativo, o vírus consegue apenas sobrescrever outros programas, muda a

extensão, apenas. A verdade é que é preciso ser muito engenhoso para

escrever vírus em prompt de comando.

Simplesmente é uma tarefa difícil.

Já isolei um vírus em batch que se copiava para todos os drivers, foi

assim que o contrai, através de um pen drive. Felizmente, ele não era destrutivo

e consegui detê-lo. De qualquer modo, ele era muito bem feito. Mas não passa

disso.

Como deixei vocês curiosos e esse recurso também pode ser utilizado

para ir “corroendo” as informações pouco a pouco, ensinarei como transformar

os badcoms em vírus.

É preciso, antes, saber um pouco mais da natureza dos vírus. Todos os

vírus bons, sem exceção, têm uma incubação. Incubação é o período em que o

vírus fica inativo, para conseguir se replicar. Depois da incubação vêm os danos.

E o comando que transforma vírus em badcoms é...

Page 73: Apostila de Criação de Badcoms

Dr. Elek_Meag LXXIII

FOR FOR FOR FOR –––– Transformando badcoms em vírus Transformando badcoms em vírus Transformando badcoms em vírus Transformando badcoms em vírus

Até que enfim, este é o comando que pode ser utilizado para transformar

vírus em badcoms, o nosso for. A função de for é repetir um mesmo comando

para vários arquivos diferentes, então podemos usá-lo para infectar outros

arquivos, espalhando o nosso vírus.

Há uma coisa importante que o leitor tem de saber. Quando estamos

fazendo vírus em arquivos de lotes, para nos referir ao arquivo do próprio vírus,

usamos %0.bat. Se você compilar o seu vírus .bat para .exe, é necessário

mudar a extensão, no código-fonte, para .exe, senão o vírus não se replicará,

não encontrando nenhum arquivo com seu nome, mas com a extensão .bat.

Bom, voltemos o assunto. Esse é um exemplo de rotina bem básica de

infecção de vírus:

Porém, esse código tem dois grandes problemas. O primeiro é que

mesmo um arquivo já estando infectado, o vírus se copiará novamente. O

segundo é que supondo que eu tenha um arquivo .bat, o vírus se copiará para o

final do arquivo, e há chances de que o .bat tenha o comando exit, ou seja, a

execução será abortada e o vírus nem será executado.

A solução seria, para o primeiro problema, deixar uma assinatura para

que possamos reconhecer depois, com o comando find, e abortar a re-infecção

e para o segundo problema, podemos criar um arquivo temporário, para o qual

copiamos nosso badcom, depois, copiamos o código do outro arquivo .bat e

substituímos o arquivo temporário pelo arquivo que queríamos infectar.

É óbvio que não conseguiremos resolver o segundo problema se o nosso

vírus .bat for compilado para .exe, pois seria necessária uma adaptação e

mesmo com ela, o executável final não rodaria.

...

:INFECTA

for %%f in (*.bat) do copy %0.bat %%f

...

Page 74: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LXXIV

Voltemos ao assunto principal. Porém, não podemos usar mais de um

comando no mesmo for, então temos que salvar os nomes dos arquivos em

outra variável para podermos utilizá-los com mais calma.

Assim, este seria a rotina de infecção melhorada:

Infelizmente, essa rotina tem, também, dois bugs. O primeiro é que ele

não irá copiar o vírus para todos os arquivos .bat, mas sim apenas para o último

que o for achar. O segundo é que, quando infectamos um hospedeiro e o vírus

quiser se reproduzir, o hospedeiro que foi infectado irá “junto”. Mas sem

problemas.

As vezes, também funciona utilizar apenas %0, sem a extensão atrás.

Eu avisei que fazer vírus em batch era algo escroto e bem básico, mas

enfim...

E não se esqueçam, se de fato, forem fazer vírus em batch, de que um

bom vírus tem um período de incubação para que possa se reproduzir. E mais,

lembre-se que vírus .bat compilados para .exe podem dar problemas.

@ECHO OFF

REM [virii]

type %0 > filetmp

for %%f in (*.bat) do set file=%%f

find "[virii]" %file%

if not errorlevel 1 exit

type %file% >> filetmp

echo.>> filetmp

del %file%

ren filetmp %file%

exit

Page 75: Apostila de Criação de Badcoms

Dr. Elek_Meag LXXV

Compilando BadcomsCompilando BadcomsCompilando BadcomsCompilando Badcoms

Normalmente, em programação compilamos um código-fonte para que

ele possa rodar: depois da compilação ele se torna, de fato, um executável.

Embora o processo receba o mesmo nome, a compilação (que também pode ser

chamado de “conversão”, embora não estejamos convertendo nenhum badcom

ao cristianismo) de badcoms não tem nada a ver com a compilação de códigos-

fonte.

A função de compilar um badcom ou um arquivo de memória batch

qualquer é a de que não podemos ver o código. Isso se torna muito útil quando

o badcom é enviado para um usuário intermediário ou avançado. Na verdade,

só saber uns comandinhos do prompt já ajuda a impedir a execução de um

badcom. A questão é que com a compilação, não é mais possível ver o código e

o usuário ficará no mínimo curioso. Para alguns, a curiosidade é uma fraqueza e

vários dos muitos usuários acabariam por executar o badcom e por bater a

cabeça com a mesa no final da inutilização dos dados que estavam em seu HD.

Depois de compilar seu badcom, ele assumirá a aparência de um

executável: terá extensão .exe e se for especificado na hora da compilação,

pode assumir um ícone qualquer, é bom escolher um ícone de vídeo e colocar

como nome “amadoras”... ☺

Esse assunto eu já abordei na Revista UnderHack #2, mas não custa

nada (copiar e colar) tocar no tema novamente...

O programa que utilizaremos para compilar os badcoms é chamado de

Bat to Exe Converter e atualmente está na versão 1.4.1. sendo que já foi citado

anteriormente e o seu download já foi indicado. É possível encontrar o

programa em http://www.f2ko.de/downloads/Bat_To_Exe_Converter.zip.

Page 76: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LXXVI

Esta é uma ilustração da janela do programa:

Usá-lo é uma tarefa muito simples! Eis um passo-a-passo:

1. Coloque o endereço virtual do arquivo .bat que deseja compilar no campo Batchfile, podendo usar o botão ...;

2. Passo opcional: coloque o endereço virtual do ícone, usando a extensão .ico, que deseja que o arquivo .bat compilado para .exe apresente, em Iconfile, podendo usar o botão ...;

3. Passo opcional: coloque o endereço virtual do arquivo .exe, que será o destino do arquivo .bat já compilado, em Save as, através do botão ...;

4. Passo opcional: preencha as informações adicionais que ficarão no arquivo compilado, que se tornam disponíveis para modificação após o clique em Additional informations;

5. Passo opcional: mude o modo de compilação de Console application para Ghost application, apesar de que há comentários de que esta opção não funciona;

6. Por fim, clique no botão Compile, para compilar seu arquivo .bat.

Page 77: Apostila de Criação de Badcoms

Dr. Elek_Meag LXXVII

RecapitulandoRecapitulandoRecapitulandoRecapitulando

Vamos relembrar os comandos:

at – Agenda tarefas;

attrib – Modifica atributos de arquivos;

call – Chama outro arquivo de lotes;

comp – Compara dois arquivos;

date – Modifica ou exibe a data;

find – Encontra um seqüência de caracteres em um arquivo;

for – Executa um comando em vários arquivos;

format – Formata um disco;

goto – Pula para um rótulo;

if – Executa comando se requisito for preenchido;

label – Dá nome a uma unidade;

set – Define ou mostra variáveis;

subst – Cria unidade virtual vinculada a uma pasta;

time – Exibe ou modifica a hora;

type – Exibe o conteúdo de um arquivo.

Os operadores de redirecionamento de I/O são <, >, << e >>.

Use reg para modifica o registro. Seus “sub-comandos” são:

• QUERY;

• ADD;

• DELETE;

• COPY;

• SAVE (EXPORT);

• RESTORE (IMPORT);

• LOAD;

• UNLOAD;

• COMPARE.

Page 78: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LXXVIII

Page 79: Apostila de Criação de Badcoms

Dr. Elek_Meag LXXIX

Page 80: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LXXX

ConclusãoConclusãoConclusãoConclusão

Enfim, acabei essa apostila. Acho que os meus leitores gostaram da

leitura: foi presentão de natal. Mesmo para quem não é cristão... :P

Foi bom escrever... ah, vamos falar a verdade! Deu trabalho? Deu! Foi

legal? Foi. Claro que foi, afinal, chego aqui ao final da odisséia, uma apostila de

83 páginas. Quero dizer, isso já poderia ser praticamente um livro. Essa foi a

maior publicação que já escrevi. E tive menos tempo para escrever do que

normalmente meu prazo para a revista concede. Para deixar ainda mais

apimentado o desafio, comecei um curso de informática há algum tempo,

tomando ainda mais o meu tempo. Foram horas bem aproveitadas aqui.

É bom saber, ou pelo menos imaginar, que daqui a alguns anos essa

apostila será referência para quem está engatinhando no hacking, aprendendo

sobre vírus e badcoms. Isso se a informática nas nuvens permitir...

É bom saber, ou pelo menos imaginar, que os olhinhos de muitos

brilharam de alegria quando leram essa apostila.

Confesso! Ela deve ter ficado um pouco monótona. Mas também, como

não ser monótono com uma porrada de comandos para abordar. Uma coisa o

leitor não pode negar: a apostila estava muito bem ilustrada.

Aos poucos nós nos vamos despedindo do ano antigo, pois está

chegando o natal e o ano novo e mesmo assim eu continuo aqui, firme,

escrevendo a apostila que nem um doido, me esforçando ao máximo só para

cumprir minha promessa: fazer o natal de uma criança feliz... ☺

Agradeço de antemão a quem quis ler.

Ah, comentem lá no Fórum Invaders, solta o verbo que a coisa não foi

fácil aqui, mas eu consegui dar um sorriso no final da apostila.

Feliz Natal.

Hou! Hooou! Hoooooou!

Dr. Elek_Meag

Page 81: Apostila de Criação de Badcoms

Dr. Elek_Meag LXXXI

Page 82: Apostila de Criação de Badcoms

Apostila de Criação de Badcoms

LXXXII