Studio di buffer overflow in ambiente Win32
|
|
- Achille Monaco
- 4 anni fa
- Visualizzazioni
Transcript
1 e realizzazione di un tool per la ricerca automatica di programmi vulnerabili a questo tipo di attacco Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea Triennale in Informatica Relatore: Ing. Mattia MONGA Tesi di Laurea di: Davide MARRONE Matricola
2 Sommario 1 Il problema Le soluzioni
3 Sommario 1 Il problema Le soluzioni 2 Implementazione Risultati
4 Il problema Le soluzioni Definizione del problema Con il termine buffer overflow si indica la scrittura in un buffer (o array) di una quantità di dati superiore alla sua capacità
5 Il problema Le soluzioni Definizione del problema Con il termine buffer overflow si indica la scrittura in un buffer (o array) di una quantità di dati superiore alla sua capacità Alcuni linguaggi di programmazione non controllano che la scrittura avvenga esclusivamente nei limiti del buffer
6 Il problema Le soluzioni Definizione del problema Con il termine buffer overflow si indica la scrittura in un buffer (o array) di una quantità di dati superiore alla sua capacità Alcuni linguaggi di programmazione non controllano che la scrittura avvenga esclusivamente nei limiti del buffer La causa del problema Assenza nei linguaggi di programmazione di controlli automatici di integrità
7 Il problema Le soluzioni Definizione del problema Con il termine buffer overflow si indica la scrittura in un buffer (o array) di una quantità di dati superiore alla sua capacità Alcuni linguaggi di programmazione non controllano che la scrittura avvenga esclusivamente nei limiti del buffer La causa del problema Assenza nei linguaggi di programmazione di controlli automatici di integrità Assenza nei programmi di controlli accurati sull input ricevuto
8 Il problema Le soluzioni Sovvertire il normale funzionamento di un programma 0xFFFFFFFF Chiamare una funzione 0x
9 Il problema Le soluzioni Sovvertire il normale funzionamento di un programma ESP 0xFFFFFFFF param due param uno Chiamare una funzione 1 I parametri sono passati sullo stack in ordine inverso 0x
10 Il problema Le soluzioni Sovvertire il normale funzionamento di un programma ESP 0xFFFFFFFF param due param uno return address Chiamare una funzione 1 I parametri sono passati sullo stack in ordine inverso 2 L istruzione call salva sullo stack il return address 0x
11 Il problema Le soluzioni Sovvertire il normale funzionamento di un programma ESP 0xFFFFFFFF param due param uno return address EBP variabili locali della funzione Chiamare una funzione 1 I parametri sono passati sullo stack in ordine inverso 2 L istruzione call salva sullo stack il return address 3 Il prologo della funzione alloca lo spazio per le variabili locali 0x
12 Il problema Le soluzioni Sovvertire il normale funzionamento di un programma 0xFFFFFFFF param due param uno 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 0x41 ESP 0x41 0x41 0x41 0x41 0x Chiamare una funzione 1 I parametri sono passati sullo stack in ordine inverso 2 L istruzione call salva sullo stack il return address 3 Il prologo della funzione alloca lo spazio per le variabili locali Buffer overflow È possibile prendere il controllo del return address
13 Il problema Le soluzioni Sovvertire il normale funzionamento di un programma 0xFFFFFFFF Chiamare una funzione 1 I parametri sono passati sullo stack in ordine inverso param due param uno nuovo ra codice macchina eseguibile 0x L istruzione call salva sullo stack il return address 3 Il prologo della funzione alloca lo spazio per le variabili locali Buffer overflow È possibile prendere il controllo del return address È possibile far eseguire al processo del codice arbitrario
14 Come limitare il problema Il problema Le soluzioni Soluzioni esistenti Ispezione automatica del codice
15 Come limitare il problema Il problema Le soluzioni Soluzioni esistenti Ispezione automatica del codice Modifiche ai compilatori per aggiungere del codice nel prologo e nell epilogo delle funzioni (tecnica canary)
16 Come limitare il problema Il problema Le soluzioni Soluzioni esistenti Ispezione automatica del codice Modifiche ai compilatori per aggiungere del codice nel prologo e nell epilogo delle funzioni (tecnica canary) Proposta del CERT IT Il CERT IT per l ambiente unix ha sviluppato OBOE (Object code Evaluator)
17 Come limitare il problema Il problema Le soluzioni Soluzioni esistenti Ispezione automatica del codice Modifiche ai compilatori per aggiungere del codice nel prologo e nell epilogo delle funzioni (tecnica canary) Proposta del CERT IT Il CERT IT per l ambiente unix ha sviluppato OBOE (Object code Evaluator) Si parte dal presupposto che il codice sorgente del target non sia a disposizione
18 Come limitare il problema Il problema Le soluzioni Soluzioni esistenti Ispezione automatica del codice Modifiche ai compilatori per aggiungere del codice nel prologo e nell epilogo delle funzioni (tecnica canary) Proposta del CERT IT Il CERT IT per l ambiente unix ha sviluppato OBOE (Object code Evaluator) Si parte dal presupposto che il codice sorgente del target non sia a disposizione Si effettua del fault injection sui programmi
19 Come limitare il problema Il problema Le soluzioni Soluzioni esistenti Ispezione automatica del codice Modifiche ai compilatori per aggiungere del codice nel prologo e nell epilogo delle funzioni (tecnica canary) Proposta del CERT IT Il CERT IT per l ambiente unix ha sviluppato OBOE (Object code Evaluator) Si parte dal presupposto che il codice sorgente del target non sia a disposizione Si effettua del fault injection sui programmi Scopo di questo lavoro Realizzare OBOE per l ambiente Win32 ()
20 OBOE per l ambiente Win32 Implementazione Risultati Obbiettivo Individuare buffer overflow causati dall input che viene passato al programma
21 OBOE per l ambiente Win32 Implementazione Risultati Obbiettivo Individuare buffer overflow causati dall input che viene passato al programma Input considerato Tutti i dati di input, se gestiti in maniera scorretta, possono causare un buffer overflow, le due fonti analizzate sono:
22 OBOE per l ambiente Win32 Implementazione Risultati Obbiettivo Individuare buffer overflow causati dall input che viene passato al programma Input considerato Tutti i dati di input, se gestiti in maniera scorretta, possono causare un buffer overflow, le due fonti analizzate sono: 1 Parametri passati a linea di comando
23 OBOE per l ambiente Win32 Implementazione Risultati Obbiettivo Individuare buffer overflow causati dall input che viene passato al programma Input considerato Tutti i dati di input, se gestiti in maniera scorretta, possono causare un buffer overflow, le due fonti analizzate sono: 1 Parametri passati a linea di comando 2 Chiavi di registro
24 Implementazione Risultati Composizione dell input per la ricerca di buffer overflow Stringhe utilizzate Stringhe composte da caratteri fissi
25 Implementazione Risultati Composizione dell input per la ricerca di buffer overflow Stringhe utilizzate Stringhe composte da caratteri fissi formano degli indirizzi che fanno riferimento a zone di memoria del kernel
26 Implementazione Risultati Composizione dell input per la ricerca di buffer overflow Stringhe utilizzate Stringhe composte da caratteri fissi formano degli indirizzi che fanno riferimento a zone di memoria del kernel Stringhe composte da caratteri pseudocasuali
27 Implementazione Risultati Composizione dell input per la ricerca di buffer overflow Stringhe utilizzate Stringhe composte da caratteri fissi formano degli indirizzi che fanno riferimento a zone di memoria del kernel Stringhe composte da caratteri pseudocasuali sono utilizzate per diversificare i possibili flussi di esecuzione dei programmi
28 Implementazione Risultati Come individuare un buffer overflow Stategia utilizzata Per capire se sia presente un buffer overflow: 1 Si crea il target passando una stringa con la lunghezza massima per il tipo di input considerato
29 Implementazione Risultati Come individuare un buffer overflow Stategia utilizzata Per capire se sia presente un buffer overflow: 1 Si crea il target passando una stringa con la lunghezza massima per il tipo di input considerato 2 Si analizza il comportamento del processo in funzione dell input
30 Implementazione Risultati Come individuare un buffer overflow Stategia utilizzata Per capire se sia presente un buffer overflow: 1 Si crea il target passando una stringa con la lunghezza massima per il tipo di input considerato 2 Si analizza il comportamento del processo in funzione dell input 3 Se il processo genera un eccezione si cerca di determinare la posizione del return address
31 Implementazione Risultati Come individuare un buffer overflow Stategia utilizzata Per capire se sia presente un buffer overflow: 1 Si crea il target passando una stringa con la lunghezza massima per il tipo di input considerato 2 Si analizza il comportamento del processo in funzione dell input 3 Se il processo genera un eccezione si cerca di determinare la posizione del return address 4 Si diminuisce la stringa fino a sovrascrivere esattamente i quattro byte del return address
32 Implementazione Risultati Come individuare un buffer overflow Stategia utilizzata Per capire se sia presente un buffer overflow: 1 Si crea il target passando una stringa con la lunghezza massima per il tipo di input considerato 2 Si analizza il comportamento del processo in funzione dell input 3 Se il processo genera un eccezione si cerca di determinare la posizione del return address 4 Si diminuisce la stringa fino a sovrascrivere esattamente i quattro byte del return address 5 Quando viene trovata la posizione del return address si tenta di far eseguire al processo del codice arbitrario
33 Prove effettuate Implementazione Risultati Parametri passati a linea di comando Sono stati testati 40 programmi che accettano parametri da linea di comando
34 Prove effettuate Implementazione Risultati Parametri passati a linea di comando Sono stati testati 40 programmi che accettano parametri da linea di comando In 8 programmi sono state rilevate diverse eccezioni
35 Prove effettuate Implementazione Risultati Parametri passati a linea di comando Sono stati testati 40 programmi che accettano parametri da linea di comando In 8 programmi sono state rilevate diverse eccezioni In un caso (mysql.exe) è riuscito in automatico a far eseguire del codice arbitrario al target
36 Prove effettuate Implementazione Risultati Parametri passati a linea di comando Sono stati testati 40 programmi che accettano parametri da linea di comando In 8 programmi sono state rilevate diverse eccezioni In un caso (mysql.exe) è riuscito in automatico a far eseguire del codice arbitrario al target Chiavi di registro Sono stati testati 60 programmi che utilizzano il registro
37 Prove effettuate Implementazione Risultati Parametri passati a linea di comando Sono stati testati 40 programmi che accettano parametri da linea di comando In 8 programmi sono state rilevate diverse eccezioni In un caso (mysql.exe) è riuscito in automatico a far eseguire del codice arbitrario al target Chiavi di registro Sono stati testati 60 programmi che utilizzano il registro Non è stata rilevata nessuna eccezione
38 Prove effettuate Implementazione Risultati Parametri passati a linea di comando Sono stati testati 40 programmi che accettano parametri da linea di comando In 8 programmi sono state rilevate diverse eccezioni In un caso (mysql.exe) è riuscito in automatico a far eseguire del codice arbitrario al target Chiavi di registro Sono stati testati 60 programmi che utilizzano il registro Non è stata rilevata nessuna eccezione Risultato dovuto al funzionamento della API che legge le stringhe dal registro
39 I buffer overflow ancora oggi sono un problema, soprattutto per i programmi in cui il sorgente non è disponibile
40 I buffer overflow ancora oggi sono un problema, soprattutto per i programmi in cui il sorgente non è disponibile In ambiente open source sono disponibili delle patch per il kernel del sistema operativo (PaX)
41 I buffer overflow ancora oggi sono un problema, soprattutto per i programmi in cui il sorgente non è disponibile In ambiente open source sono disponibili delle patch per il kernel del sistema operativo (PaX) può essere uno strumento valido soprattutto per altri tipi di input
42 I buffer overflow ancora oggi sono un problema, soprattutto per i programmi in cui il sorgente non è disponibile In ambiente open source sono disponibili delle patch per il kernel del sistema operativo (PaX) può essere uno strumento valido soprattutto per altri tipi di input Si può estendere la versione sviluppata per analizzare altre fonti di input
43 I buffer overflow ancora oggi sono un problema, soprattutto per i programmi in cui il sorgente non è disponibile In ambiente open source sono disponibili delle patch per il kernel del sistema operativo (PaX) può essere uno strumento valido soprattutto per altri tipi di input Si può estendere la versione sviluppata per analizzare altre fonti di input Socket
44 I buffer overflow ancora oggi sono un problema, soprattutto per i programmi in cui il sorgente non è disponibile In ambiente open source sono disponibili delle patch per il kernel del sistema operativo (PaX) può essere uno strumento valido soprattutto per altri tipi di input Si può estendere la versione sviluppata per analizzare altre fonti di input Socket File
Spazio di indirizzamento virtuale
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 016-01 Spazio di indirizzamento virtuale Pietro Di Lena - pietro.dilena@unibo.it // The function name says it all int stack_overflow (){
DettagliProcessore Danilo Dessì. Architettura degli Elaboratori.
Processore 8088 Architettura degli Elaboratori Danilo Dessì danilo_dessi@unica.it Subroutine Anche nel linguaggio assemblativo è possibile suddividere un programma in subroutine Per invocare una subroutine
DettagliProgrammare. Compilatori e interpreti. Editor :: vi. Hello1.c. #include <stdio.h> >> cc Hello1.c. main() { printf( \n Hello World!
Programmare Hello1.c #include printf( \n Hello World! \n ); >> cc Hello1.c >> a.out Hello World! >> Hello1.c = file sorgente per scriverlo occorre un editor cc = compilatore per altri linguaggi
DettagliStack-based buffer overflow
Università degli Studi di Milano Facoltà di Scienze e Tecnologie Stack-based buffer overflow Andrea Lanzi A.A. 2015 2016 Andrea Lanzi Stack-based buffer overflow A.A. 2015 2016 1 / 19 Classificazione attacchi
DettagliAnalisi e verifica di un framework per l analisi dinamica di codice binario
Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea Triennale in Informatica Analisi e verifica di un framework per l analisi dinamica di codice binario
DettagliFormat String Vulnerability
Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica April 15, 2005 Sommario 1 Format string Definizione Format function Componenti delle Format
DettagliLABORATORIO DI SICUREZZA 1. Ora possiamo provare inviare delle format string come input. ad esempio
LABORATORIO DI SICUREZZA 1 Format strings È un altra tecnica classica di program exploitation. Una format string è una stringa contenente parametri di formato come ad esempio %i o %d nella printf. Tali
DettagliTCL PAD: UN EDITOR DI TESTO ESTENDIBILE, INCORPORABILE E CON INTERFACCE DI TEXT-PROCESSING
Tesi di Laurea Triennale in Ingegneria Informatica TCL PAD: UN EDITOR DI TESTO ESTENDIBILE, INCORPORABILE E CON INTERFACCE DI TEXT-PROCESSING Relatore: Prof. SERGIO FLESCA Laureando: ANTONIO BONIFATI MATR.
DettagliProgrammazione II. Lezione 7. Daniele Sgandurra 9/11/2010.
Programmazione II Lezione 7 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 9/11/2010 1/24 Programmazione II Lezione 7 9/11/2010 Sommario 1 Gestione della Memoria 2/24 Programmazione II Lezione 7 9/11/2010
DettagliSTUDIO DI BUFFER OVERFLOW IN AMBIENTE WIN32 E REALIZZAZIONE DI UN TOOL PER LA RICERCA AUTOMATICA DI PROGRAMMI VULNERABILI A QUESTO TIPO DI ATTACCO
UNIVERSITÀ DEGLI STUDI DI MILANO FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA TRIENNALE IN INFORMATICA STUDIO DI BUFFER OVERFLOW IN AMBIENTE WIN32 E REALIZZAZIONE DI UN TOOL PER LA
DettagliOctave. Luca Abeni. Informatica Luca Abeni 1 / 21
Luca Abeni Informatica Luca Abeni 1 / 21 Linguaggi di Programmazione di Alto Livello Parole chiave: possibilmente con significato in inglese Ma agli informatici piacciono molto contrazioni e acronimi...
Dettagli1.7: Spazio degli Indirizzi di un Processo
1.7: Spazio degli Indirizzi di un Processo Obiettivo: analizzare come e quando i processi richiedono memoria al Kernel. Indirizzi logici e fisici Spazio degli indirizzi Modifiche dello spazio degli indirizzi
DettagliInformazioni sul corso
Informazioni sul corso Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 11 ottobre 2016 Programmazione Programmazione
DettagliIniziare a programmare in C++
Iniziare a programmare in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli
DettagliIntroduzione al Linguaggio C ed all IDE DEV-C++
Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ Le Esercitazioni in Laboratorio Laboratorio M1 + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato Orario: Mercoledì
DettagliIntroduzione alle tecniche di Exploit
Introduzione alle tecniche di Exploit Luigi Mori Network Security Manager Intrinsic lm@intrinsic.it IFOA 24 Luglio 2003 Agenda Memory layout di un processo Win2000 Stack Frame Exploit Shellcode Note finali
DettagliIntroduzione al Linguaggio C ed all IDE DEV-C++
Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ 1 Le Esercitazioni in Laboratorio! MTA + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato! Orario: Giovedì 14:30-17:30!
DettagliCorso di Fondamenti di Informatica Linguaggi di Programmazione
Corso di Informatica Linguaggi di Programmazione Anno Accademico 2011/2012 Francesco Tortorella Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un
DettagliIntroduzione al Linguaggio C Corso di Informatica Laurea in Fisica
Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2009-10 Dai flow-chart ai linguaggi... Abbiamo imparato ad usare uno strumento formale i flowchart per
DettagliAlgoritmi e Programmazione Avanzata. Pile e code. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino
Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Sommario ADT Pile Code. A.A. 2001/2002 APA - 2 1 Sommario ADT Pile Code. A.A. 2001/2002 APA - 3 ADT Le regole che
DettagliConvenzioni per la chiamata a procedure
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 Convenzioni per la chiamata a procedure Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico
DettagliPile e code. Sommario. Algoritmi e Programmazione Avanzata. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino
Pile e code Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Sommario ADT Pile Code. A.A. 2002/2003 APA - Pile e code 2 Politecnico di Torino Pagina 1 di 23 Sommario
DettagliIntroduzione - aspetti generali dell informatica
Introduzione - aspetti generali dell informatica Vittorio Zaccaria, Daniele Loiacono Informatica B - Codice Corso: 081369 - A.A. 2010/2011 INGEGNERIA MECCANICA (BV) - INGEGNERIA IV (1 liv.) - Scaglione
DettagliSimulazione esame Laboratorio di Sistemi Operativi Cognome Nome Mat.
Il compito è costituito da domande chiuse, domande aperte ed esercizi. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio
DettagliLinguaggi Formali e Compilatori Proff. Breveglieri, Crespi Reghizzi, Morzenti Prova scritta 1 : Domanda relativa alle esercitazioni 20/06/2011
Linguaggi Formali e Compilatori Proff. Breveglieri, Crespi Reghizzi, Morzenti Prova scritta 1 : Domanda relativa alle esercitazioni 20/06/2011 COGNOME:.............................................................
DettagliCorso di Fondamenti di Informatica e Laboratorio
Corso di Fondamenti di Informatica e Laboratorio Corsi di Laurea Ingegneria Informatica (O-Z) Corsi di Laurea Ingegneria delle Telecomunicazioni - (A-Z) (ordinamento 03) A.A. 2009-2010 Prof. Giuseppe Mangioni
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
DettagliLa protezione dai memory error exploit
Università degli Studi di Milano Sommario Introduzione 1 Stack Guard Terminator Canaries Random Canaries 2 3 Buffer Overflow Stack Guard Introduzione Buffer Overflow Condizione anomala. Memorizzazione
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Dettagli1. Un array è: A. Un simbolo usato nel linguaggio C per rappresentare un numero non specificato di variabili B. Un insieme di indirizzi di memoria
Esame teorico Rispondere alle domande a risposta multipla (probabilmente 10) Eventualmente 1-2 domande a risposta libera Ogni domanda ha una ed una sola risposta corretta Tempo di risposta: 60 minuti Peso:
DettagliSTORIA E CARATTERISTICHE
IL LINGUAGGIO C STORIA E CARATTERISTICHE STORIA E VERSIONI Sviluppato da Dennis Ritchie ai Bell Labs nel 1972 per realizzare il sistema operativo UNIX K&R C: 1978 (prima versione, K&R dal nome degli autori
DettagliMATRICE TUNING competenze versus unità didattiche, Corso di Laurea in Informatica (classe L-31), Università degli Studi di Cagliari
A: CONOSCENZA E CAPACITA DI COMPRENSIONE Conoscere e saper comprendere i fondamenti della matematica discreta (insiemi, interi, relazioni e funzioni, calcolo combinatorio) Conoscere e saper comprendere
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 9 Lezione 9 1 Il linguaggio C Istruzioni di input/output Arrays La funzione printf() La funzione printf() consente di mostrare sullo standard output (normalmente
DettagliFondamenti di informatica T-1 (A K) Esercitazione 3: assegnamento e variabili
Fondamenti di informatica T-1 (A K) Esercitazione 3: assegnamento e variabili A.A. 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Esercitazione 3 Introduzione al calcolatore e Java Linguaggio Java,
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,
DettagliLez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
DettagliConvenzioni di chiamata a procedure
Università degli Studi di Milano Laboratorio di Architettura degli Elaboratori II Corso di Laurea in Informatica, A.A. 2016-2017 Convenzioni di chiamata a procedure Nicola Basilico Dipartimento di Informatica
DettagliCalcolatori Elettronici Lezione A4 Programmazione a Moduli
Calcolatori Elettronici Lezione A4 Programmazione a Moduli Ing. Gestionale e delle Telecomunicazioni A.A. 2007/08 Gabriele Cecchetti Sommario Programmazione a moduli Programmi con linguaggi misti Tempo
DettagliArchitettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H
Architettura dei calcolatori e sistemi operativi Architettura MIPS e set istruzioni Capitolo 2 P&H Instruction Set Architecture ISA Linguaggio assemblatore e linguaggio macchina ISA processore MIPS Modello
DettagliAllocazione dinamica della memoria
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 Allocazione dinamica della memoria Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico 39/41-20135
DettagliCorso di Informatica
Corso di Informatica Modulo T4 A1 Allocazione dinamica 1 Prerequisiti Programmazione elementare Programmazione ad oggetti Dati semplici e strutturati 2 1 Introduzione In molti problemi capita di non conoscere
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione Lezione 4 Chiara Braghin braghin@dti.unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 6 Marzo 2007 Regole della grammatica di un linguaggio
Dettagli- qualita' - ce ne sono svariate; parliamo di efficienza, correttezza e robustezza
Qualita' dei programmi e test di correttezza e basta - qualita' - ce ne sono svariate; parliamo di efficienza, correttezza e robustezza - test di programmi (per valutare la correttezza) - dobbiamo prima
DettagliEsercizio 2: Algebra dei Puntatori e Puntatori a Puntatori
Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori Salvatore Mandrà 7 Ottobre 2008 1 Esercizio L esercizio prevede l implementazione di funzioni per il prodotto di una matrice per un vettore, attraverso
DettagliGestione del processore. Il modello a processi sequenziali
Gestione del processore Il modello a processi sequenziali 1 Il modello a processi sequenziali Nei computer attuali, ci sono molte attività attive contemporaneamente (sia di SO che di utente) es : stampa
DettagliFasi di un Compilatore
Dipartimento di Matematica e Informatica Università di Camerino Un implementazione compilativa di un linguaggio di programmazione viene realizzata tramite un programma che prende il nome di compilatore
DettagliCorso di Architettura (Prof. Scarano) 10/05/2002
Lezione 0 Il Set di Istruzioni (6) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Le procedure Prima della chiamata di una procedura In ogni linguaggio di
DettagliIntroduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliCorso di Sicurezza Informatica. Sicurezza del software. Ing. Gianluca Caminiti
Corso di Sicurezza Informatica Sicurezza del software Ing. Gianluca Caminiti Software Sicuro Privo di errori (logici) che comportino un comportamento inatteso. Tali bug possono minare la sicurezza dell
DettagliInformatica. Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven
Tesi di laurea in Informatica Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven Relatore Ch.mo Prof. Giuseppe Trautteur Candidato Gioacchino Del
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO IX.2017
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2016 2017 18.IX.2017 VINCENZO MARRA Indice Premessa 2 Esercizio 1 2 Lettura da file della cartella e dell
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VII.2017
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2016 2017 17.VII.2017 VINCENZO MARRA Indice Esercizio 1 2 Strutture di dati, funzioni diam, dist e centr.
DettagliSimpleFS - un semplice filesystem. Prova finale di Algoritmi e Principi dell Informatica. DEIB, Politecnico di Milano. Anno accademico
SimpleFS - un semplice filesystem Prova finale di Algoritmi e Principi dell Informatica DEIB, Politecnico di Milano Anno accademico 2016-17 Sommario L obiettivo è l implementazione di un semplice filesystem
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO IX.2014
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2013 2014 8.IX.2014 VINCENZO MARRA Indice Esercizio 1 1 Leggere una stringa e calcolarne la lunghezza.
DettagliCalcolo numerico e programmazione Programmazione
Calcolo numerico e programmazione Programmazione Tullio Facchinetti 11 maggio 2012 14:05 http://robot.unipv.it/toolleeo La programmazione la programmazione è l insieme delle
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione E una notazione con cui e possibile descrivere gli algoritmi. Programma: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni
DettagliFortran in pillole : prima parte
Fortran in pillole : prima parte Annamaria Mazzia Dipartimento di Metodi e Modelli Matematici per le Scienze Applicate Corso di Metodi Numerici per l Ingegneria Introduzione al Fortran Un libro consigliato
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
DettagliTipi di programmazione. Varietà dei linguaggi. Cos è un programma di calcolo. (Vaghi) Elementi di programmazione dei calcolatori elettronici e altro.
Tipi di programmazione (Vaghi) Elementi di programmazione dei calcolatori elettronici e altro. Procedural C, Pascal, Basic, Fortran Functional Lisp, ML Object-oriented C++, Java, Smalltalk Rule-based (or
DettagliPROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE QUINTA
PROGRAMMAZIONE DISCIPLINARE PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE QUINTA 1. Competenze: le specifiche competenze di base disciplinari previste dalla
DettagliAssembly (3): le procedure
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE. Cosimo Laneve
INTRODUZIONE ALLA PROGRAMMAZIONE Cosimo Laneve 1 argomenti (Capitolo 1 Savitch) 1. sistemi di calcolo 2. programmazione e problem solving 3. introduzione a C++ 4. testing e debugging 2 sistema di calcolo
DettagliInformatica 1. 4 Programmazione e Sviluppo del software. ing. Luigi Puzone
Informatica 1 4 Programmazione e Sviluppo del software ing. Luigi Puzone Software Software, l insieme di programmi che consentono alla macchina di funzionare e svolgono le funzioni richieste dall utente
DettagliLINUX: struttura generale
LINUX: struttura generale User Interface The layers of a UNIX system. 1 Processi in LINUX Ogni processo nasce con un solo thread Un processo gira in modalità utente; quando effettua una system call passa
DettagliISTITUZIONE SCOLASTICA DI ISTRUZIONE TECNICA LYCÉE TECHNIQUE PROGRAMMAZIONE EDUCATIVA E DIDATTICA ANNUALE PER COMPETENZE A.S.
ISTITUZIONE SCOLASTICA DI ISTRUZIONE TECNICA LYCÉE TECHNIQUE PROGRAMMAZIONE EDUCATIVA E DIDATTICA ANNUALE PER COMPETENZE A.S. 2018/2019 Materia Classe Informatica 3 IT Competenze (Linee guida+competenze
Dettagliciclo di vita della soluzione (informatica) di un problema
Università di Roma Tor Vergata L2-1 ciclo di vita della soluzione (informatica) di un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti
DettagliDal linguaggio macchina al linguaggio C
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Università degli Studi di Udine Dal linguaggio macchina al linguaggio C Programma sorgente, compilatore, file oggetto, file eseguibile programma sorgente
DettagliPrimi programmi in C
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Uso del compilatore gcc Struttura di un programma
DettagliSistemi Operativi: Concetti Introduttivi
Sistemi Operativi: Concetti Introduttivi 1.1 Principali funzioni di un Sistema Operativo 1.2 Cenni Storici 1.3 Classificazione dei Sistemi Operativi 1.4 Struttura dei Sistemi Operativi 1.5 Processi e gestione
DettagliCognome:, Nome: Matricola:
I Prova Intercorso Fondamenti di Informatica e Programmazione, A.A. 2017/18 Docente: R. Pizzolante Traccia C Cognome:, Nome: Matricola: Spazio riservato alla commissione esaminatrice 1 2 3 4 5 6 7 8 9
DettagliLaboratorio reti AA 2008/2009. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione
Laboratorio reti AA 2008/2009 Dott. Matteo Roffilli roffilli@csr.unibo.it Ricevimento in ufficio dopo la lezione 1 Laboratorio reti AA 2008/2009 Per esercitarvi fate SSH su: alfa.csr.unibo.it si-tux00.csr.unibo.it.
DettagliAssembly (3): le procedure
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 13 1/23 Chiamata
DettagliClasse III A. A.s Programma di Informatica 5 ore settimanali (3 laboratorio) Docenti. Prof. Alberto Ferrari Prof.
Classe III A A.s. 2011 2012 Programma di Informatica 5 ore settimanali (3 laboratorio) Docenti Prof. Alberto Ferrari Prof. Alberto Paganuzzi Moduli A. Informazione e dati digitali B. L'informatica come
DettagliIl principio di induzione. La Ricorsione. Il fattoriale: iterativo. Il fattoriale: ricorsivo. P (0) P (n) P (n + 1) per ogni n
Università Roma La Sapienza Corsi di Laurea Informatica/Tecnologie Informatiche La Ricorsione Prof. Stefano Guerrini guerrini@di.uniroma1.it Programmazione II (can. P-Z) A.A. 2005-06 Il principio di induzione
DettagliSTRUMENTI PER LA MISURA SU CODICE ACTIONSCRIPT SVILUPPATI CON JAVACC
tesi di laurea STRUMENTI PER LA MISURA SU CODICE ACTIONSCRIPT SVILUPPATI CON JAVACC Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana candidato Matteo Luongo Matr. 534/802 IL REVERSE ENGINEERING
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
DettagliAssembly IV Le procedure
rchitettura degli Elaboratori e delle Reti Lezione 14 ssembly IV Le procedure Proff.. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:
DettagliStrutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05
Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica
Dettagli15 April LABORATORIO 04 PROCEDURE STACK. CHIAMATA A PROCEDURE I. Frosio
15 April 2011 05 LABORATORIO 04 PROCEDURE STACK CHIAMATA A PROCEDURE I. Frosio 1 SOMMARIO Procedure Stack Chiamata a procedure 2 PERCHÈ LE PROCEDURE? 15 April 2011 Main Proc3 Proc2 Proc1 Programmazione
DettagliUniversità degli Studi di Ferrara
Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2017-2018 Programmazione Lezione 4 il Linguaggio C Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni precedenti Problemi
DettagliCorso di Informatica
Corso di Informatica CdL in Matematica e CdL in Matematica per le Applicazioni Prof. G. Nicosia Dipartimento di Matematica e Informatica Facoltà di Scienze MM.FF.NN. Università degli Studi di Catania A.
DettagliL ambiente di simulazione SPIM
Architettura degli Elaboratori e delle Reti Lezione 14 L ambiente di simulazione SPIM Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 14 1/20
DettagliLa programmazione in linguaggio C
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La programmazione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliEsercizi sui file. Esercizio 1. Soluzione. Domenico Cotroneo Dipartimento di Informatica e Sistemistica
Esercizi sui file Domenico Cotroneo Dipartimento di Informatica e Sistemistica Esercizio 1 Si implementi un programma in C concorrente nel quale siano presenti tre processi distinti: un processo P1 che
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università
DettagliProgrammazione C: Esercizi su vettori e funzioni. Titolo presentazione. sottotitolo. Milano, XX mese 20XX
Titolo presentazione Programmazione C: sottotitolo Esercizi su vettori e funzioni Milano, XX mese 20XX Informatica ed Elementi di Informatica Medica Agenda Richiami su vettori e funzioni Esercizi su vettori
DettagliINFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 5 Ing. Gian Enrico Conti Dott. Michele Zanella
INFORMATICA A Titolo presentazione sottotitolo A.A. 2017-18 Milano, XX mese 20XX Laboratorio n 5 Ing. Gian Enrico Conti Dott. Michele Zanella Info Logistiche (cont d) Calendario laboratori Data Orario
DettagliSviluppo di strumenti grafici su una Web Application per il data mining
Sviluppo di strumenti grafici su una Web Application per il data mining Università degli studi di Napoli Federico II FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Informatica 4
DettagliUniversità degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
DettagliFondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java
Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e
DettagliIDE DevC
IDE DevC++ 4.9.8.1.0 Manuale utente Data ultima revisione: 22/01/2005 Fondamenti di informatica Università Facoltà Corso di laurea Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria
DettagliSistemi Operativi 1. Lezione IV: Processi e thread. Mattia Monga. 11 marzo 2008
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Conclusioni versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
Dettagli