|
|
|
![]() |
|
Strumenti |
![]() |
#21 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Non so se avete idea di quant'è complesso un sistema operativo, con quali complessi pezzi di firmware e hardware interagisce ( che sono buggati a loro volta ) e a tutto questo bisogna aggiungere le rogne colossali dovute all'esecuzione concorrente dei task. Esistono metodologie ingegneristiche che aiutano, ma sono totalmente insufficiente. Per questo al primo anno d'informatica/ingegneria il prof ti dice "il software bug free non esiste". Detto questo, è lapalissiano che i sorgenti consentono di trovare i bug più velocemente. Ma parliamo di sorgenti in C, scritti in un linguaggio che sa essere criptico. C'era un bug in openssl in debian. Rimase lì per anni. Centinaia di programmatori c'avevano messo gli occhi sopra e non l'avevano visto. Ma ci sono pure bug che si vedono a colpo d'occhio. E che purtroppo si vedono molto meno se il listato è in Assembly invece che in C. L'analisi dinamica del flusso d'esecuzione di un programma è una rottura. L'analisi statica è un incubo!! E' questo il senso del "se hai i sorgenti è meglio". |
|
![]() |
![]() |
![]() |
#22 | |
Senior Member
Iscritto dal: Sep 2006
Città: Aprilia
Messaggi: 12569
|
Quote:
![]()
__________________
Quelli che dicevano che era impossibile non hanno mai fatto un tentativo Inventario Steam contattatemi se interessati |
|
![]() |
![]() |
![]() |
#23 | ||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Quote:
Il ricercatore whitehat è invece spesso a corto di mezzi e i sorgenti l'aiutano parecchio. E si spera che il numero dei whitehat sia superiore a quello dei blackhat. |
||
![]() |
![]() |
![]() |
#24 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 20025
|
__________________
Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza (O.W.) |
![]() |
![]() |
![]() |
#25 | |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 20025
|
Quote:
ormai tutto "si può aggiornare dopo il rilascio" e quindi si mette sul mercato della merda, eventualmente aggiustandola dopo. che so, l'ABS di un'auto è un sw. Non mi risulta che venga messo in commercio con bachi, se non in casi rarissimi. Per cui il fatto che un sw senza bachi sia "impossibile" mi sa tanto di luogo comune. Si, se lo fai col culo e lo butti fuori in mezza giornata, avrà dei bachi...
__________________
Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza (O.W.) |
|
![]() |
![]() |
![]() |
#26 | |||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Quote:
Altra situazione è invece quella di device general purpose, tipo i computer desktop/server. Quote:
L'unica possibilità ( e vale per i sistemi come gli ABS, dove puoi imporre che gli input ricadano solo in un determinato range ) è la verifica formale. Ma parliamo di un qualcosa di applicabile con estrema difficoltà e su software relativamente semplici. Cioè non esiste che si possa verificare formalmente un web server, ad esempio. |
|||
![]() |
![]() |
![]() |
#27 | |
Bannato
Iscritto dal: Jan 2010
Città: Roma
Messaggi: 4638
|
Quote:
![]() ![]() |
|
![]() |
![]() |
![]() |
#28 | |
Bannato
Iscritto dal: Jan 2010
Città: Roma
Messaggi: 4638
|
Quote:
![]() l'unica arma è il debug e beta testing (che Molte Sw house non applicano ![]() |
|
![]() |
![]() |
![]() |
#29 |
Bannato
Iscritto dal: Jan 2010
Città: Roma
Messaggi: 4638
|
|
![]() |
![]() |
![]() |
#30 | |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 20025
|
Quote:
Sogei ne sa qualcosa ![]()
__________________
Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza (O.W.) |
|
![]() |
![]() |
![]() |
#31 |
Bannato
Iscritto dal: Jan 2010
Città: Roma
Messaggi: 4638
|
|
![]() |
![]() |
![]() |
#32 | ||
Senior Member
Iscritto dal: Oct 2001
Messaggi: 20025
|
Quote:
una tastiera trasmette caratteri, un mouse coordinate... ecc. poi chiaro che (forse) è più complesso di un ABS, ma ciò non toglie che sono sw entrambi. Quote:
![]()
__________________
Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza (O.W.) |
||
![]() |
![]() |
![]() |
#33 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 20025
|
beh, certo: intendo il rilascio "al pubblico".
È ovvio che di bachi mentre lo scrivi ce ne sono, a meno che uno non sia un genio... io scrivo cazzatine, ma poi le "torturo" con tutti i generi di input possibili da parte dell'utente, e alla fine di bachi non ce ne sono, o se ci sono semplicemente dice "errore" e si ferma, senza fare casini.
__________________
Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza (O.W.) |
![]() |
![]() |
![]() |
#34 | ||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Pensa al bug di OpenSSL in Debian. Lì il problema era che un numero intero a 32 bit veniva trattato dal programmatore come un uint. Il mantainer del pacchetto aveva rimosso un if ed era successo il casino. Il punto è che l'ABS invece, sa che i numeri che gli arriveranno sono necessariamente di un solo tipo. I programmatori lo sanno. Il linguaggio ( si usano linguaggi un pelino più espressivi del C ) pure. Quote:
Tecnicamente ( se non mi sbaglio ) sono stringhe di 16 bit che compongono gli scancode. Ma lo leggi come int, uint, short, widechar? E in base al modello di programmazione del linguaggio potresti ritrovarti ad avere a che fare con un dominio di valori totalmente diverso. Per cui se uso un uint sono sicuro che non dovrò mai usare un if per controllare se x < 0 ( perchè non può esserlo by design ). Ed è qui che la verifica formale entra in gioco. Crei un modello matematico del software, con tanto di tipi di dato e relativi domini. E su quello ragioni, usando operatori analitici. E la matematica è bella perchè è sintetica, cioè è in grado di dirti ( applicando un operatore ) se un predicato su una variabile è vero e in quali condizioni. Mentre in programmazione devi ragionare iterativamente. Il problema è che creare un modello matematico di un pc in esecuzione è impossibile. |
||
![]() |
![]() |
![]() |
#35 | |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 20025
|
Quote:
![]() ok, quindi i bug sono "cose" messe in "tipi" non conformi. non dovrebbe essere difficilissimo automatizzare una procedura che individua tutte le variabili e ci butta dentro la qualunque, per vedere che succede... e cmq, non è che hai bisogno di un modello dell'intero pc con tutto quanto dalla A alla Z, da 0 a F... devi debuggare il TUO sw, non il mondo. ![]() poi ripeto, non scrivo sw per lavoro, magari dico cazzate. ![]()
__________________
Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza (O.W.) |
|
![]() |
![]() |
![]() |
#36 | |
Senior Member
Iscritto dal: Sep 2006
Città: Aprilia
Messaggi: 12569
|
Quote:
![]() scherzi a parte, i problemi sono principalmente 2:
__________________
Quelli che dicevano che era impossibile non hanno mai fatto un tentativo Inventario Steam contattatemi se interessati |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:15.