Página 2 de 2 PrimeiroPrimeiro 12
+ Responder ao Tópico



  1. BUUAAAAA.....pq q aki eu nunca gero um core dumped???? eu compilo o programa do um overflow (colocando uns 20 caracter onde soh podem 10) ai ele soh fala "Segmentation Fault", eu tenho q estorar a memoria de um intero pra gerar um core dump???? ops:

  2. #7
    kappalinux
    hehehe calma calma SDM nao se desespere cara!!!
    pra gerar um core eh facil
    vc compila o programa da seguinte maneira..

    [bash$ ]ulimit -c 1234567

    [bash$ ] gcc -o programa programa.c

    ae assim q vc der um segmentation fault ele vai gerar um core dump e ae vc analise o core.
    eu analiso o core com o gdb
    gdb programa

    se vc kiser desassemblar o programa vc compila o mesmo da seguinte maneira..
    [bash$ ] gcc -o programa -static -ggdb programa.c

    soh nao me pergunte o pq doi 1234567 eu ainda nao sei estou procurando saber!
    continuando...
    ae vc entrando no gdb vc pode ver o seu programa em assembly
    eh soh digitar no gdb:

    por exemplo para desassemblar a main()
    (gdb) desassemble main

    para desassemblar a funcao exit() por exemplo
    (gdb) desassemble _exit

    para desassemblar a funcao execve por exemplo
    (gdb) desassemble execve

    .................

    e assim por diante..espero q fike feliz em gerar um core..
    ehehehe
    []'s
    falooow cara ateh++
    ;-)



  3. #8
    kappalinux
    aaaa entao..falando a respeito da sua outra duvida q eu eskeci..
    hehehe..
    tipo tem varias maneiras de vc causar overflow (estourar a memoria, ultrapassar a quantidade de dados q sua variavel suporta).
    tem, buffer overflow -> quando vc ultrapassa o buffer q seu caractere ou sua string pode suportar.
    format string eh outra categoria de overflow - quando vc passa formatação de dados para uma string geralmente quando executa o programa. Essa tecnica geralmente eh aplicada quando vc tem um teste -> if(). para chegar o tamanho a quantidade de caracteres da string mas agora imagine a situacao.

    char buffer[8] -> uma variavel do tipo char q suporta 8 caracteres.
    ou aproximadamente 8 bytes = 64 bits.
    agora vc faz a verificacao com strlen para verificar se a string tem realmente 8 caracteres.
    int verifica = strlen(buffer);

    o strlen vai atribuir o valor 8 ao verificacao. Mas por tras disso tudo a string buffer[8] vai ter um buffer dentro dela muito maior do q o suportado na realidade..

    se vc fosse tentar passar pela verificacao da seguinte maneira
    [bash@#] ./prog1 `perl -e 'print "A"x128'` ele nao passaria na verificacao do strlen()

    mas agora no nosso segundo exemplo:
    [bash@#] ./prog1 %pABC
    provavelmente armazenou no buffer uma formatacao para ponteiro e entao o tamnho do buffer serah muito maior do q o suportado. passando pela checagem de strlen com apenas 4 caracteres e um argumento formatado (%p). Se nao ocorrer o segmentation fault eh apenas aumentar o tamanho da formatacao %p..
    ficaria assim :
    [bash@#] ./prog1 %8pABC
    [bash@#] ./prog1 %14pABC

    e assim por diante..

    esse programinha abaixo vc pode gerar um segmentation fault por format string e gerar um overflow

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

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

    char buffer[8];
    int verifica;

    if(argc != 2)
    {
    printf("Sem trapaca\n"); /* apenas para nao haver trapaca */
    exit(1);
    }

    verifica = strlen(argv[1]);

    if(verifica <= 8)
    {
    printf("Ola..muito bem passou pela verificacao\n");
    sprintf(buffer,argv[1]);
    printf("seu buffer = %s\n",buffer);
    }
    else
    printf("Tente novamente, vc ainda nao consegui estourar o buffer\n");
    return 0;
    }

    alem dessas categorias de overflow ainda tem integer overflow, heap overflow e as q eu nao conheco..
    espero ter ajudado..
    falooow cara
    ateh++
    []'s

  4. po valeu pela ajuda.....ja fonuncio aki.....desculpae ter invadido teu topico



  5. #10
    kappalinux
    q nada cara relaxa...pega nada!!!
    ;-)
    faloow
    []'s
    ateh++






Tópicos Similares

  1. Conversão Binario->Decimal->Hexadecimal
    Por crisirado no fórum Linguagens de Programação
    Respostas: 3
    Último Post: 05-04-2006, 13:40
  2. Hexadecimal para Decimal
    Por doidoht no fórum Servidores de Rede
    Respostas: 1
    Último Post: 19-04-2005, 13:34
  3. Decimal p/ Hexadecimal
    Por doidoht no fórum Servidores de Rede
    Respostas: 4
    Último Post: 15-04-2005, 14:53
  4. Servidor para servicos ...
    Por MarcelScan no fórum Servidores de Rede
    Respostas: 1
    Último Post: 09-04-2002, 22:39
  5. Passos para conf de uma estacao linux ..
    Por MarcelScan no fórum Servidores de Rede
    Respostas: 1
    Último Post: 04-04-2002, 22:40

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L