Вы находитесь на странице: 1из 8

1997 - Hackers Iniciantes em Linguagem C 1997 - RoyalBug - thedarkage@geocities.com 1997 - The Black Church MANUAL C 01 ================ 1997 - http://www.pcs.usp.

br/~peasilva/ 1997 - http://www.geocities.com/SiliconValley/Way/5441/ 1. PROLOGO ========== Este manual foi desenvolvido para iniciantes em programacao em C e C++. Quem ja conhece alguma linguagem de programacao nao-visual tera facilida de com C e C++. Primeiramente irei ensinar C; todo codigo neste manual tera uma indicacao se esta em C, C++ ou utiliza recursos de ambos. Para pegar os outros numeros deste manual entre em algum destes sites oficiais: http://www.pcs.usp.br/~peasilva/ http://www.geocities.com/SiliconValley/Way/5441/ 2. SECOES ========= Nesta secao, descrevo cada uma das outras secoes deste manual: 3. Novidades As novidades no mundo da programacao underground Minhas novidades 4. Usando graficos em C/C++ Como usar graficos de baixo nivel em C/C++ 5. Programa: Variavel Como usar todos os tipos de variaveis 6. CONIO.H Efeitos especiais nos seus programas 7. Especial: WordMake.exe - Criador de Wordlists Todo o codigo do MEU criador de wordlists! 8. Tabela: fopen Varias maneiras de abrir um arquivo 9. Algoritmo: Numeros Aleatorios Como gerar numeros aleatorios 10. Dica Rapida Funcao scanf 11. Duvidas/Sugestoes/Reclamacoes Seu espaco 12. Proxima edicao Na proxima edicao voce vera... 13. Criador/Editor/Colaboradores Nem precisa falar As secoes deste "curso" tem um modelo pre-definido (foi mudado): 1. Introducao ao curso 2. Descricao das secoes do arquivo 3. Novidades 4. Material sobre alguma coisa 5. Programa Exemplo 6. Especial 7. Especial 8. Tabela sobre alguma coisa 9. Algoritmo 10. Dica Rapida 11. Duvidas/Sugestoes/Reclamacoes 12. Na proxima edicao

13. Criador/Editor/Colaboradores 3. NOVIDADES ============ As novidades desde que saiu o royalc01 sao grandes. Mas tenho algumas mais importantes: - descoberto o programa JOHN, crackeador mais rapido que o JACK - estou desenvolvendo um "juntor" de wordlists (meio que inutil!) - descoberto o programa DATAS, cria uma wordlist com todas as datas do seculo 20. - estou pronto para receber materias de outros programadores/hackers - envie suas duvidas - caso more em sp e tenha algumas senhas para troca, me avisa, hehehe! 4. USANDO GRAFICOS EM C/C++ =========================== Gente, eu ate tentei! Mas ficou muito grande! Vou fazer o seguinte, vo explica GRAFICOS basicos para qualquer compilador em alguma revista especial. OK galera? Certo. 5. PROGRAMA: VARIAVEL ===================== Este nao eh bem um programa. Voce coloca os exemplos em um esqueleto. ESQUELETO <-----------Inicio----------> #include <stdio.h> int main(){ return(0); } <----------- Fim -----------> Coloque os exemplos na 3 linha. Provavelmente voce ja sabe pra que servem as linhas do programa acima (royalc01). EXEMPLO 1 <-----------Inicio----------> int a=0,b=1; printf("a=%d\nb=%d\na+b=%d\n",a,b,a+b); printf("a="); scanf("%d",&a); printf("b="); scanf("%d",&b); printf("a+b=%d",a+b); <----------- Fim -----------> Este exemplo mostra como usar variaveis INT. Na 1 linha declaramos a variavel "a" valendo 0 e a variavel b valendo "1". Na 2 linha eh mostrado na tela o valor de "a", "b" e de "a+b". Na 4 linha eh pedido um novo valor para "a". Repare no "&" na frente do "a". Significa para passar o endereco na memoria da variavel "a" para a funcao "scanf". Na 6 linha eh pedido um novo valor para "b". Na 7 linha eh revelada a soma de "a" e "b". EXEMPLO 2 <-----------Inicio---------->

float a=0,b=1; printf("a=%f\nb=%f\na+b=%f\n",a,b,a+b); printf("a="); scanf("%f",&a); printf("b="); scanf("%f",&b); printf("a+b=%f",a+b); <----------- Fim -----------> Este exemplo eh identico ao primeiro, mas com variaveis "float". EXEMPLO 3 <-----------Inicio----------> char a='a',b='n',c="o"; printf("%c%c%c\n",a,b,c); printf("a="); scanf("%c",&a); printf("b="); scanf("%c",&b); printf("c="); scanf("%c",&c); printf("%c%c%c",a,b,c); <----------- Fim -----------> Este exemplo usa variaveis de caracteres. Na 1 linha sao declaradas 3 variaveis: "a", "b" e "c", cada qual com seu valor. Na 2 linha eh mostrado o valor das 3 seguidas: "ano". Nas linhas 4,6,8 sao pedidos novos valores para as 3 variaveis. Na ultima linha eh mostrado os 3 valores. EXEMPLO 4 <-----------Inicio----------> char a[21]="RoyalBug RULEZ\0"; printf("%s\n",a); printf("a="); scanf("%s",a); printf("%s",a); <----------- Fim -----------> Este exemplo eh algo que voce nunca viu? Certo, entao vou explicar devagarinho... Seguinte, a primeira linha ta criando uma variavel char. Ela nao eh uma variavel comum. Ela se constitui de vinte e umas variaveis char. Entendeu? Ela eh inicializada como "RoyalBug RULEZ\0". O "\0" significa o fim dessa colecao de caracteres. Essa colecao eh chamada de matriz. O "\n" poderia indicar o fim tambem. Essa matriz possui 21 espacos para serem preenchidos, o que significa que vao desde o 0 ate o 20; completando 21 espacos. Sempre comeca no 0! Voce tem os 20 primeiros espacos (0 ate 19) de uso livre para voce; o vigesimo primeiro espaco (20) deve ser o "\0" ou o "\n". Para acessar o 5 caracter da matriz de caracteres "a" basta usar o seguinte: "a[4]" A 2 linha usa o "%s" para mostrar a STRING (matriz de caracteres) "a". A 5 linha pede um novo valor para "a" (maximo de 20 caracteres). 6. CONIO.H ========== Esta biblioteca eh usada para fazer coisas mais bonitas no seu programa. Quando comecei a programar em C (1995) fiz uma pequena biblioteca em portugues que usava somente o CONIO.H para colorir seu programa.

Esta biblioteca estara em um especialH sobre o proprio CONIO.H. 7. Especial: WordMake.Exe ========================= Eh isso ai! Meu criador de dicionarios! Feito em C! Todo o codigo pra voce! Se quiser mudar, mude! Mas deixe meus creditos! Caso mude mesmo, mande-me sua versao (o arquivo C) e colocarei creditos para voce tambem. Aproveitem e estudem ele porque nao vo te saco pra explicar ele! :) <-----------Inicio----------> #include <stdio.h> #include <conio.h> int numero_de_caracteres=0; char linhas[12][256]; char arquivo[20001]; inline void comeca(void){ char linha[256]; char numero_de_caracteres_char='0',temp='\n'; int x=0; FILE *file; clrscr(); printf("Arquivo a ser lido (- para sair): "); scanf("%s",arquivo); if(arquivo[0]=='-') exit(1); file=fopen(arquivo,"r"); if(file==NULL) return; numero_de_caracteres_char=fgetc(file); numero_de_caracteres=(int)numero_de_caracteres_char-48; if(numero_de_caracteres<1) return; temp=fgetc(file); for(x=0;x<numero_de_caracteres;x++){ fscanf(file,"%s",linha); strcpy(linhas[x],linha); } fclose(file); } inline void mostra(void){ int x=0; clrscr(); printf("Numero de caracteres: %d\n",numero_de_caracteres); for(x=0;x<numero_de_caracteres;x++){ printf("Caracteres %d possiveis: %s\n",x+1,linhas[x]); } } inline void pede_arquivo_para_salvar(void){ printf("Arquivo a ser gravado (- para sair): "); scanf("%s",arquivo); if(arquivo[0]=='-') exit(1); } inline void salva(void){ FILE *file; int caracter_atual[12]; int i;

for(i=0;i<12;i++)caracter_atual[i]=0; file=fopen(arquivo,"w"); for(caracter_atual[0]=0;(linhas[0][caracter_atual[0]]=='~')==0;caracter_atual[ 0]++){ if(numero_de_caracteres!=1){ for(caracter_atual[1]=0;(linhas[1][caracter_atual[1]]=='~')==0;caracter_atual [1]++){ if(numero_de_caracteres!=2){ for(caracter_atual[2]=0;(linhas[2][caracter_atual[2]]=='~')==0;caracter_atua l[2]++){ if(numero_de_caracteres!=3){ for(caracter_atual[3]=0;(linhas[3][caracter_atual[3]]=='~')==0;caracter_atu al[3]++){ if(numero_de_caracteres!=4){ for(caracter_atual[4]=0;(linhas[4][caracter_atual[4]]=='~')==0;caracter_at ual[4]++){ if(numero_de_caracteres!=5){ for(caracter_atual[5]=0;(linhas[5][caracter_atual[5]]=='~')==0;caracter_a tual[5]++){ if(numero_de_caracteres!=6){ for(caracter_atual[6]=0;(linhas[6][caracter_atual[6]]=='~')==0;caracter_ atual[6]++){ if(numero_de_caracteres!=7){ for(caracter_atual[7]=0;(linhas[7][caracter_atual[7]]=='~')==0;caracter _atual[7]++){ if(numero_de_caracteres!=8){ for(caracter_atual[8]=0;(linhas[8][caracter_atual[8]]=='~')==0;caracte r_atual[8]++){ if(numero_de_caracteres!=9){ for(caracter_atual[9]=0;(linhas[9][caracter_atual[9]]=='~')==0;caract er_atual[9]++){ if(numero_de_caracteres!=10){ for(caracter_atual[10]=0;(linhas[10][caracter_atual[10]]=='~')==0;ca racter_atual[10]++){ if(numero_de_caracteres!=11){ for(caracter_atual[11]=0;(linhas[11][caracter_atual[11]]=='~')==0;c aracter_atual[11]++){ fprintf(file,"%c%c%c%c%c%c%c%c%c%c%c%c\n",linhas[0][caracter_atual [0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracte r_atual[3]],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]],linhas[6][ caracter_atual[6]],linhas[7][caracter_atual[7]],linhas[8][caracter_atual[8]],lin has[9][caracter_atual[9]],linhas[10][caracter_atual[10]],linhas[11][caracter_atu al[11]]); } } else fprintf(file,"%c%c%c%c%c%c%c%c%c%c%c\n",linhas[0][caracter_atu al[0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][carac ter_atual[3]],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]],linhas[6 ][caracter_atual[6]],linhas[7][caracter_atual[7]],linhas[8][caracter_atual[8]],l inhas[9][caracter_atual[9]],linhas[10][caracter_atual[10]]); } } else fprintf(file,"%c%c%c%c%c%c%c%c%c%c\n",linhas[0][caracter_atual[ 0]],linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter _atual[3]],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]],linhas[6][c aracter_atual[6]],linhas[7][caracter_atual[7]],linhas[8][caracter_atual[8]],linh as[9][caracter_atual[9]]); } } else fprintf(file,"%c%c%c%c%c%c%c%c%c\n",linhas[0][caracter_atual[0]]

,linhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_at ual[3]],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]],linhas[6][cara cter_atual[6]],linhas[7][caracter_atual[7]],linhas[8][caracter_atual[8]]); } } else fprintf(file,"%c%c%c%c%c%c%c%c\n",linhas[0][caracter_atual[0]],li nhas[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual [3]],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]],linhas[6][caracte r_atual[6]],linhas[7][caracter_atual[7]]); } } else fprintf(file,"%c%c%c%c%c%c%c\n",linhas[0][caracter_atual[0]],linha s[1][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3] ],linhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]],linhas[6][caracter_a tual[6]]); } } else fprintf(file,"%c%c%c%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1 ][caracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3]],l inhas[4][caracter_atual[4]],linhas[5][caracter_atual[5]]); } } else fprintf(file,"%c%c%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][c aracter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3]],linh as[4][caracter_atual[4]]); } } else fprintf(file,"%c%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][cara cter_atual[1]],linhas[2][caracter_atual[2]],linhas[3][caracter_atual[3]]); } } else fprintf(file,"%c%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracte r_atual[1]],linhas[2][caracter_atual[2]]); } } else fprintf(file,"%c%c\n",linhas[0][caracter_atual[0]],linhas[1][caracter_a tual[1]]); } } else fprintf(file,"%c\n",linhas[0][caracter_atual[0]]); } fclose(file); } inline void apresenta(void){ textmode(C80); textcolor(12); cprintf("WordMake.Exe "); textcolor(10); cprintf(" -> "); textcolor(14+BLINK); cprintf(" RoyalBug\n"); textcolor(12); gotoxy(1,2); cprintf("Versao 1.0 "); textcolor(10); cprintf(" -> "); textcolor(14+BLINK); cprintf("thedarkage@geocities.com\n"); gotoxy(1,1);

delay(2000); } inline void fim(void){ textmode(C80); textcolor(12); cprintf("WordMake.Exe "); textcolor(10); cprintf(" -> "); textcolor(14+BLINK); cprintf(" RoyalBug\n"); textcolor(12); gotoxy(1,2); cprintf("Versao 1.0 "); textcolor(10); cprintf(" -> "); textcolor(14+BLINK); cprintf("thedarkage@geocities.com\n"); gotoxy(1,1); delay(1500); } int main(){ apresenta(); comeca(); mostra(); pede_arquivo_para_salvar(); salva(); fim(); return(0); } <----------- Fim -----------> Eu sei que ele eh lento e tudo mais mas na proxima versao vai usar 8 mega ram: rapidinho... 8. TABELA: fopen ================ Modos de abrir um arquivo: /-------------------\ |r Leitura | |w Gravacao | |a Acrescentar| \-------------------/ Voce pode acrescentar "b" para abrir em modo binario. Tambem pode acrescentar "t" para abrir em modo texto (default). 9. ALGORITMO: NUMEROS ALEATORIOS ================================ Voce quer gerar um numero qualquer? Quer jogar dois dados? Aqui esta um algoritmo que joga dois dados de 6 lados: <-----------Inicio----------> time_t t; float dado1=0,dado2=0; srand((unsigned) time(&t)); dado1=random(6)+1;

dado2=random(6)+1; <----------- Fim -----------> Eh necessario incluir alguns arquivos com os seguintes comandos: #include <stdlib.h> #include <time.h> Este codigo nao funciona com o DJGPP. 10. DICA RAPIDA =============== A funcao scanf pode pegar duas variaveis de uma so vez da seguinte maneira: scanf("%d%d",&inteiro1,&inteiro2); 11. DUVIDAS/SUGESTOES/RECLAMACOES ================================= PINy (sem e-mail) Ta legal, poderia colocar mais programas exemplos e falar alguma coisa para quem quer usar C em UNIX. RoyalBug Seguinte cara, se eu coloco 2 programas exemplos, vai ficar muuuuito grande. Se voce quer usar C em UNIX use o GCC. Ei gente, ve se coloca um mail pra reply! Esse ai eu fiquei sem responder! Essa foi a unica sugestao... contribui ai... 12. PROXIMA EDICAO ================== -> Criando arquivos de cabecalho (.H) -> Matrizes -> Basico de Mouse em C 13. Criador/Editor/Colaboradores Criador: RoyalBug - thedarkage@geocities.com Editor: RoyalBug - thedarkage@geocities.com Colaborador: Sacanagem! Ninguem! _____________________________________________________________________________ 1997 - RoyalBug - thedarkage@geocities.com 1997 - HardLoKi - peasilva@pcs.usp.br 1997 - The Black Church THKS

Вам также может понравиться