Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    160

    [C] Domanda molto teorica sul concetto di 'buffer' e output video

    Ammetto di esser un novello programmatore....
    Spero di non essere troppo off topic ma in qualche forum dovevo postare questa domanda. Credo che il mio dubbio possa essere esteso un po' a tutti i linguaggi (penso ma potrei anche aver detto una stronzata !).

    Non riesco a capire come il concetto di 'buffer' sia legato all'ouput video. Una volta che i dati vengono elaborati dal server questo, prima di rispedirli al client, inserisce tutto in un buffer per poi farli partire?
    SCUSATE il linguaggio poco forbito ma, come detto sopra, non ho assolutamente le idee chiare!

    Ma non è tutto....se così fosse, i buffer hanno una capacità massima di dati che posono contenere?
    Infine.... cosa significa 'rischiare di avere un problema di over buffering' (o qualcosa di genere)? Frase che ho sentito da un sistemista che prefigurava possibili problemi legati all'elaborazione di una mole di dati abnorme per una query.

    E' possibile che abbia sparato una marea di str***ate in questo 3d come non se ne sono mai viste ( ) ma preferisco aver tirato fuori questa serie di dubbi perchè non riesco a trovare in giro risposte chiare e organiche.
    GRAZIE a tutti!

  2. #2
    Utente bannato
    Registrato dal
    Sep 2001
    Messaggi
    413
    leggiti qualche testo di informatica base, ti chiarirà le idee.

  3. #3
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    non è molto difficile da capire oda spiegare:

    il buffere non è altro che un bus pieno di codice "010010100101001001010010010111110000010010" ecc, ecc.
    è questi "0100101......." non devono superare la capacità del buffer contenitore, in quanto si andrebbe off limit...........
    un esempio e quando scrivi del testo in questo forum e lo invii, non fai altro che mettere in un buffer in memoria tutti i caratteri digitati e se infatti superi il limite dei caratteri il server di html.it anticipa l'errore del buffer overflow e ti scrive che devi eliminare tot caratteri dal tuo messaggio...........

    per quanto riguarda un file trasferito per esempio col controllo winsock, il file trasferito, non viene trasferito tutto insieme ma frazionato in tanti buffere fino ad arrivare all'ultimo pacchetto
    in genere in vb si usa il comando:

    Dim buffile As String
    LnFile = FileLen(DstPath)
    If LnFile > 8192 Then
    nLoop = Fix(LnFile / 8192)
    ' Stop
    nRemain = LnFile Mod 8192
    Else
    nLoop = 0
    nRemain = LnFile
    ' Stop
    End If

    open in binary #1 ecc, ecc
    while not eof(1)
    1 'per fart capire........ riprendendo un'altro buffer da spedire
    '............spedendo poi con
    winsock senddata msg
    'qui ritorni vai sopra alla riga 1

    wend

    ' qui il file è stato letto e spedito tutto....................


    questo è il classico e semplice modo che si usa sul web




    link
    homepage
    http://%77%77%77%2e%74%77%6f%72%6b%2...78%2e%61%73%70
    software
    http://%77%77%77%2e%74%77%6f%72%6b%2...programmi.html
    forum
    http://%77%77%77%2e%74%77%6f%72%6b%2...um/default.asp

    +--------------+
    |----by Ten--|
    +--------------+

  4. #4
    Utente di HTML.it L'avatar di mhmh
    Registrato dal
    Feb 2002
    Messaggi
    204
    I problemi di buffer overflow sono i più frequenti,e attualmente è il tipo di exploit più utilizzato contro i webserver.
    Sfruttano errori(o distrazioni) di programmazione per sovraccaricare un buffer e farlo straboccare,crashando il sistema.
    A quanto ne sappia,ad esempio sfruttano i buffer usati da funzioni di Input per stringhe(in C).
    Ad esempio,ho un buffer che ha spazio per 100 caratteri.Se io ne immetto 200,il mio buffer va in overflow,perchè nn è in grado di contenere l'input

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    160
    Esiste una capacità standard per un buffer oppure può essere configurata dall'admin del server?

  6. #6
    Utente bannato
    Registrato dal
    Sep 2001
    Messaggi
    413
    Originariamente inviato da mhmh
    I problemi di buffer overflow sono i più frequenti,e attualmente è il tipo di exploit più utilizzato contro i webserver.
    Sfruttano errori(o distrazioni) di programmazione per sovraccaricare un buffer e farlo straboccare,crashando il sistema.
    A quanto ne sappia,ad esempio sfruttano i buffer usati da funzioni di Input per stringhe(in C).
    Ad esempio,ho un buffer che ha spazio per 100 caratteri.Se io ne immetto 200,il mio buffer va in overflow,perchè nn è in grado di contenere l'input

    in quel caso è Stack overflow..

    è un'altra storia, ma analoga

  7. #7
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    Il buffer inoltre c'entra col video, eccome.
    Solitamente le API grafiche (ad esempio DirectX, ma anche openGL o SDL) sono pilotate in modo da scrivere prima le immagini su un buffer (un'area di memoria).
    Una volta completata l'immagine da visualizzare, avviene lo swap fra il backbuffer (quello che "non si vede") e il frontbuffer (quello che "si vede").
    A quel punto si puo' scrivere di nuovo nel backbuffer e poi ri-swapparlo, e cosi' via.
    Questa tecnica si chiama double-buffering.
    Scusate il linguaggio maccheronico ma volevo essere piu' chiaro possibile.
    ChReAn
    -------------------

    Slackware 9.1 powered

  8. #8
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    Originariamente inviato da Maldito



    in quel caso è Stack overflow..

    è un'altra storia, ma analoga
    Scusa ma mhmh non stava parlando di buffer overflow?
    In effetti l'attacco allo stack e' un particolare modo di sfruttare un buffer overflow, ma mhmh non ha menzionato lo stack.
    Pero', in effetti, solitamente un buffer overflow avviene quasi sempre tramite parametri passati a funzioni. E quindi finiscono quasi sempre nello stack (tranne ovviamente nel caso delle variabili globali).
    Ho fatto tanto casino per nulla, eheh.
    ChReAn
    -------------------

    Slackware 9.1 powered

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.