Dott. Ing. Davide Maiorca
|
|
|
- Albano Carlucci
- 8 anni fa
- Visualizzazioni
Transcript
1 Pattern Recognition and Applications Lab Attacchi Base: Buffer Overflow Dott. Ing. Davide Maiorca Corso di Sicurezza Informatica A.A. 2014/2015 Dipartimento di Ingegneria Elettrica ed Elettronica Università di Cagliari, Italia
2 Sommario Introduzione Analisi di un Programma Vulnerabile Altri Elementi Assembly Analisi funzioni Exploiting Analisi dello stack vulnerabile Attacco allo stack Contromisure
3 Introduzione
4 Introduzione Vulnerabilità Finora abbiamo analizzato un eseguibile senza possederne il suo sorgente La prossima domanda è: che relazione ha il reverse engineering con la sicurezza? Un attaccante può analizzare un eseguibile al fine di trovare delle vulnerabilità Una vulnerabilità è un errore di programmazione il cui sfruttamento può portare ad una violazione di integrità e confidenzialità di un sistema Sono state date tante definizioni di vulnerabilità (ISO, NIST, ENISA ) Avete già visto degli esempi Cross Site Scripting SQL Injection In questa lezione analizzeremo la vulnerabilità «regina» legata all esecuzione di un programma, ovvero il buffer overflow
5 Introduzione Buffer Overflow Vulnerabilità concernente la gestione della memoria e, in particolare, una cattiva gestione dello stack Potete già immaginare di cosa si tratti dal nome Un buffer è una zona di memoria pensata per contenere dei dati La particolarità di questa zona è che la dimensione dei dati è prefissata L esempio più classico di buffer è, ad esempio, un array Un overflow accade quando inseriamo dei dati che superano la capacità del buffer Banalmente: inserite in memoria una stringa di 5 caratteri in un buffer di 4 caratteri CIAOO -> C I A O O char str[3] OVERFLOW!
6 Challenge! Aprite il programma «invincibile» Dovete indovinare il codice segreto! Ma l impresa non sembra così semplice Per «sconfiggere» il programma «invincibile» ci serve un cambio di prospettiva Chiediamoci: il programma è sicuro? In questa lezione imparerete cosa può succedere quando un programma è vulnerabile ad un buffer overflow In particolare, imparerete a sfruttare un buffer overflow a vostro vantaggio Anche i programmi invincibili (ma insicuri ) possono essere sconfitti!
7 Analisi Programma Vulnerabile
8 DISCLAIMER I VALORI DEI REGISTRI POSSONO ESSERE DIVERSI A SECONDA DELLA VOSTRA ARCHITETTURA E VENGONO RIPORTATI SULLE SLIDES BASANDOSI SU CIO CHE E STATO MOSTRATO A LEZIONE
9 Analisi Programma (prima occhiata) Il programma vi chiede di inserire un codice di massimo 3 cifre Notate come il codice sia sempre errato (a meno di clamorosi colpi di fortuna ) Il massimo di 3 cifre dovrebbe stuzzicarvi Cosa succede se inserite più di 3 cifre? Proviamo con 5-10 cifre Apparentemente non succede niente Adesso proviamo con 15 cifre Perdete comunque Ma ricevete un errore di segmentation fault! Segmentation fault avviene quando il programma tenta di scrivere dei dati in memoria in segmenti non pertinenti Ad esempio, tento di scrivere in un segmento che non dispone del flag w Questo errore non dovrebbe mai comparire E il primo indizio che il programma possa essere vulnerabile!
10 Analisi Statica Programma Vediamo di disassemblare l eseguibile objdump d invincible Come prima, cerchiamo di individuare delle funzioni che abbiano dei nomi interessanti main inserire_codice genera_codice win lose Adesso guardiamo la funzione main, in particolare le chiamate call Vediamo quest ordine di chiamate: genera_codice puts inserire_codice win lose
11 Elementi di Assembly X86 (2) Altre istruzioni JMP <offset>: Salto non condizionato CMP: Confronta i contenuti di due registri (o registi e memoria) ed imposta un flag speciale a 1 se i due elementi hanno lo stesso valore JNE <offset> (di solito accoppiato con cmp): salta all offset se il flag speciale è impostato a zero (quindi se i due elementi confrontati con cmp non sono uguali) JEQ <offset> (di solito accoppiato con cmp): salta all offset se il flag speciale è impostato a zero (quindi se i due elementi confrontati con cmp non sono uguali) LEA address, register: carica un indirizzo di memoria su un registro SAR, n_bit, reg: esegue uno shift di n bit sul valore del registro reg IMUL, reg, value: moltiplica il valore contenuto di un registro per un valore intero
12 Analisi Main (1) Naturalmente, guardare la sequenza di chiamate non è sufficiente! <main>: : push %ebp : mov %esp,%ebp a: and $0xfffffff0,%esp d: sub $0x20,%esp 80485a0: call <genera_codice> 80485a5: mov %eax,0x18(%esp) 80485a9: movl $0x80486ac,(%esp) 80485b0: call 80483a b5: call 80484fd <inserire_codice> 80485ba: mov %eax,0x1c(%esp) Prepara la chiamata di funzioni Chiama <genera_codice> e salva il risultato nello stack (su esp+0x18) Memorizza la stringa parametro nello stack e chiama puts su quella stringa Chiama <inserire_codice> e memorizza il risultato nello stack (su esp+0x1c)
13 Analisi Main (2) Naturalmente, guardare la sequenza di chiamate non è sufficiente! 80485be: mov 0x1c(%esp),%eax 80485c2: cmp 0x18(%esp),%eax Confronta il risultato di <inserire_codice> (messo su eax) e <genera_codice> (preso dallo stack) 80485c6: jne 80485cf <main+0x38> 80485c8: call f <win> 80485cd: jmp 80485d4 <main+0x3d> 80485cf: call <lose> 80485d4: mov $0x0,%eax Se il risultato del confronto non è pari a 1 (quindi i due elementi sono uguali), vai alla funzione lose ALTRIMENTI CONTINUA L ESECUZIONE con win e SALTA ALL ULTIMA mov (E sostanzialmente l equivalente di un if-else in C, soltanto espresso in maniera leggermente diversa)
14 Funzioni win e lose Quindi: il main chiama due funzioni che restituiscono due valori Questi valori vengono confrontati E a seconda del confronto vengono chiamate due funzioni diverse! Considerato il funzionamento del programma, possiamo supporre che se il codice è corretto viene chiamata win, altrimenti lose Osserviamo l assembly delle funzioni win e lose Sostanzialmente sono due puts! Quindi le funzioni win e lose si occupano di stampare un messaggio a video! win agisce sulla stringa all indirizzo 0x , mentre lose agisce sulla stringa all indirizzo 0x804868c
15 Dump stringhe Eseguite objdump s invicible. Potete vedere quello che è, fondamentalmente, l hexdump del file raggruppato per sezioni 0x (stringa funzione win) Contenuto della sezione.rodata: e74...Hai vint f f f o! Codice corret f f to!.hai perso! I c20636f c3a l codice.. erra 80486a8 746f e f64 to!.inserire cod 80486b d d6f ice (massimo 3 c 80486c e2e2e29 3a00 ifre...):. 0x804868c (stringa funzione lose) Indirizzo primo byte della riga Ora sappiamo cosa stampano le funzioni win e lose! Di conseguenza, nell esecuzione del programma arriviamo sempre alla funzione lose!
16 Funzione genera_codice Restano da analizzare genera_codice ed inserire_codice genera_codice è una funzione molto lunga! Non ne vedremo i dettagli per ragioni di tempo Potreste studiarvela come esercizio Vengono chiamate le funzioni time, srand e rand Molto probabilmente è coinvolta la generazione di un numero casuale ed effettivamente è proprio così! Genera codice genera un valore casuale fra 0 e 999 (compresi) Quindi ogni volta che eseguite il programma il codice è sempre diverso! Un po difficile, così, raggiungere la funzione win A meno di grossi colpi di fortuna, raggiungerete sempre la funzione lose! A meno che
17 Funzione inserire_codice Cosa possiamo dire della funzione inserire_codice? push %ebp mov %esp,%ebp sub $0x28,%esp lea -0xf(%ebp),%eax mov %eax,(%esp) call lea -0xf(%ebp),%eax mov %eax,(%esp) call 80483f0 mov %eax,-0xc(%ebp) mov -0xc(%ebp),%eax Libera memoria per la chiamata di funzioni Carica l indirizzo di memoria puntato da ebp-0xf sul registro eax, muove il contenuto di eax SULLA LOCAZIONE PUNTATA DA ESP (attenzione alle parentesi su %esp) e chiama gets Come per gets, ma questa volta viene chiamata la funzione atoi. Il risultato viene salvato in una variabile locale (la mov) e viene poi «ricaricato» nel registro accumulatore
18 Exploiting
19 Funzione inserire_codice - Stack Stack Frame (Per la funzione inserire codice) main Return ADDRESS EBP Precedente EBP lea -0xf(%ebp),%eax mov %eax,(%esp) esp = 0xbffff000 ebp = 0xbffff028 ebp-0xf = 0xbffff019 EBP 0xf EBP 0xf ESP Questa è l esecuzione dello stack dopo la mov prima della chiamata di gets. Lo stack è stato «accorciato» per motivi di spazio. Quando viene chiamata la gets, viene inserito nello stack, come parametro, l indirizzo di base dell array. L array verrà quindi memorizzato a partire da EBP-0xf. Nota bene: non è detto che l indirizzo di partenza dell array sia necessariamente un multiplo di 4
20 Funzione inserire_codice Stack (2) Stack Frame (Per la funzione inserire codice) main Return ADDRESS EBP Precedente EBP 0xf 1 EBP lea -0xf(%ebp),%eax mov %eax,(%esp) call <gets@plt> esp = 0xbffff000 ebp = 0xbffff028 ebp-0xf = 0xbffff019 ESP EBP 0xf Quando gets viene chiamata, l utente deve inserire dei caratteri da tastiera. Il risultato è un array di char, in cui ogni char è composto da un byte. Immaginiamo che l utente inserisca la stringa «123» (l array è stato dichiarato da tre caratteri ma l utente NON lo sa). Ricordatevi che, a causa del little endian, il primo numero copre l indirizzo INFERIORE dello stack
21 Funzione inserire_codice Overflow! Stack Frame (Per la funzione inserire codice) main Return ADDRESS EBP Precedente EBP 0xf 1 EBP lea -0xf(%ebp),%eax mov %eax,(%esp) call <gets@plt> esp = 0xbffff000 ebp = 0xbffff028 ebp-0xf = 0xbffff019 La funzione gets non effettua alcun controllo sulla dimensione dell array. Cioè significa che array più grandi della dimensione dichiarata possono essere scritti in memoria. Ad esempio, questo è cosa succede se inserite «123456». SIETE LIBERI DI RIEMPIRE LO STACK A VOSTRO PIACIMENTO. ESP EBP 0xf
22 Funzione inserire_codice Attacco Stack Frame (Per la funzione inserire codice) win Return Address Dati Sovrascritti Dati Sovrascritti EBP 0xf 1 EBP lea -0xf(%ebp),%eax mov %eax,(%esp) call <gets@plt> esp = 0xbffff000 ebp = 0xbffff028 ebp-0xf = 0xbffff019 ESP EBP 0xf Siamo liberi di riempire lo stack come vogliamo. Normalmente questo porterebbe a degli errori di segmentation fault Ma cosa succedesse se fossimo così bravi da riempire lo stack in maniera controllata, in modo da sovrascrivere il return address con un altro indirizzo? Potremmo, ad esempio, saltare direttamente alla funzione win
23 All attacco! Nella pratica questo attacco è assolutamente possibile gdb invincible break 0* Ci stiamo fermando prima che la funzione gets venga chiamata Info registers ebp ebp = 0xbffff028 Sono gli stessi valori segnati nelle slide precedenti Dall analisi statica, sappiamo che l array inizia da ebp-0xf. Per arrivare a ridosso dell indirizzo di ritorno, dobbiamo quindi riempire lo stack con 0xf (15) + 4 bytes = 19 bytes L attuale indirizzo di ritorno si trova ad ebp+4 0x080485ba (prossima istruzione del main) Obiettivo finale: sostituire l indirizzo di ritorno con l indirizzo di win In questo esempio è 0x f (dovete sovrascrivere l intero indirizzo!)
24 All attacco! (2) Quindi, quando gets vi richiede di inserire i dati Dovete prima di tutto inserire 18 bytes La prima parte della stringa può essere, ad esempio, Ora dovete assicurarvi di inserire in memoria i bytes per sovrascrivere l indirizzo di ritorno Dovete inserire i bytes in questo modo: \xbyte Rispettate la little endianess (a due a due). PRIMA GLI ULTIMI DUE VALORI, POI I PENULTIMI DUE, etc. Quindi: \x6f\x85\x04\x08 La stringa finale da inserire dovrebbe essere: \x6f\x85\x04\x08 Tuttavia, qualcosa ancora non va Se inserite questa stringa, avrete ancora segmentation fault
25 EXPLOIT! La ragione è da ricercarsi nel fatto che il programma prende in ingresso dei caratteri Ogni valore esadecimale ha una traduzione in caratteri Sfortunatamente, alcuni non possono essere inseriti da tastiera Per ovviare al problema, ci viene in aiuto la funzione print del linguaggio perl Potete usare questo interprete per tradurre in automatico degli esadecimali in caratteri non inseribili dall utente Un buon modo per fare questo è: Scrivere i caratteri su un file temporaneo Al momento dell esecuzione, dire al programma di trasferire lo standard input da tastiera a file Quindi chiudete gdb ed eseguite perl -e 'print "1"x19; print "\x6f\x85\x04\x08";' > /tmp/input Con perl si possono facilmente ripetere i caratteri con print «carattere»*numero Ogni istruzione perl è separata, come il C, da un punto e virgola (state quindi eseguendo due istruzioni > /tmp/input scrive su file
26 Epic Win!./invincible < /tmp/input
27 Come difendersi? (in questo caso) Questo è il caso più semplice di buffer overflow Per difendersi, bisogna evitare di utilizzare funzioni che non effettuano il controllo sulla dimensione degli array gets strcpy sprintf Sono tutte funzioni vulnerabili! Utilizzate, invece, funzioni che effettuano il controllo sulla dimensione degli array fgets strncpy snprintf In ogni caso, compilatori come gcc vi avvisano se state usando delle funzioni «vulnerabili»
28 In conclusione L analisi di una applicazione vulnerabile consente di effettuare dei potenti attacchi, come il buffer overflow Tali attacchi possono far avere all applicazione dei comportamenti «anomali» Tuttavia, questo ancora non basta Un buffer overflow più avanzato potrebbe essere usato per creare ancora più danni ad esempio, può consentire di prendere il controllo di una macchina Linux (o Windows) Nella prossima lezione vedremo un esempio di tale attacco ed esploreremo tecniche di difesa più complesse
Esercitazione 4. Comandi iterativi for, while, do-while
Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti
Linguaggio C: introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi
INDICE. Vista Libretto Livello Digitale 2. Importazione di dati da strumento 3. Inserisci File Vari 5. Compensazione Quote 5.
Prodotto da INDICE Vista Libretto Livello Digitale 2 Importazione di dati da strumento 3 Inserisci File Vari 5 Compensazione Quote 5 Uscite 6 File Esporta Livellazioni (.CSV) 6 Corso Livello Digitale Pag.
Laboratorio di Architettura degli Elaboratori
Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Set di istruzioni del MIPS32: istruzioni aritmetiche e di trasferimento Istruzioni (Alcune) Categorie di istruzioni in MIPS Istruzioni
Mini-Corso di Informatica
Mini-Corso di Informatica CALCOLI DI PROCESSO DELL INGEGNERIA CHIMICA Ing. Sara Brambilla Tel. 3299 [email protected] Note sulle esercitazioni Durante le esercitazioni impareremo a implementare
Introduzione alle macchine a stati (non definitivo)
Introduzione alle macchine a stati (non definitivo) - Introduzione Il modo migliore per affrontare un problema di automazione industriale (anche non particolarmente complesso) consiste nel dividerlo in
Strumenti per l Analisi Statica e Dinamica di Eseguibili
Pattern Recognition and Applications Lab Strumenti per l Analisi Statica e Dinamica di Eseguibili Dott. Ing. Davide Maiorca [email protected] Corso di Sicurezza Informatica A.A. 2014/2015 Dipartimento
La 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
1 Definizione di sistema lineare omogeneo.
Geometria Lingotto. LeLing1: Sistemi lineari omogenei. Ārgomenti svolti: Definizione di sistema lineare omogeneo. La matrice associata. Concetto di soluzione. Sistemi equivalenti. Operazioni elementari
Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 1 Cristian Del Fabbro Reperibilità homepage corso: https://users.dimi.uniud.it/~cristian.delfabbro/teaching.php email: [email protected] telefono: 0432 558676
Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi
Somma di numeri floating point Algoritmi di moltiplicazione e divisione per numeri interi Standard IEEE754 " Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.0 10 2-38
Procedura operativa per la gestione della funzione di formazione classi prime
Procedura operativa per la gestione della funzione di formazione classi prime Questa funzione viene fornita allo scopo di effettuare la formazione delle classi prime nel rispetto dei parametri indicati
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente
Fondamenti VBA. Che cos è VBA
Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione
Fortran 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
1 L estrazione di radice
1 L estrazione di radice Consideriamo la potenza 3 2 = 9 di cui conosciamo: Esponente 3 2 = 9 Valore della potenza Base L operazione di radice quadrata consiste nel chiedersi qual è quel numero x che elevato
4 GLI ARRAY E LE STRINGHE
13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si
Input/output in C e in C++
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni
Il calcolatore. Architettura di un calcolatore (Hardware)
Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti
2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.
Tipo File Per memorizzare un dato su un supporto magnetico come un hard disk o un nastro, o più in generale su un'unità di memoria di massa viene utilizzata un tipo di dato chiamato file. Un file può essere
Sistemi Web per il turismo - lezione 3 -
Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa
EXCEL: FORMATTAZIONE E FORMULE
EXCEL: FORMATTAZIONE E FORMULE Test VERO o FALSO (se FALSO giustifica la risposta) 1) In excel il contenuto di una cella viene visualizzato nella barra di stato 2) In excel il simbolo = viene utilizzato
FUNZIONI DI BASE PANNELLO SMS
FUNZIONI DI BASE PANNELLO SMS Il pannello sms può essere utilizzato in vari: 1 Inviare un singolo sms (in questo settare solo in mittente in opzioni) 2 inviare sms multipli alla propria rubrica divisa
Corso di Sicurezza Informatica
Corso di Sicurezza Informatica Sicurezza del Software Ing. Giuseppe D Aquì Sicurezza nell informatica Un computer sicuro è un computer spento (Kevin Mitnick) Attacchi informatici Gli attacchi informatici,
VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.
Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?
Introduzione a Visual Basic Lezione 2 Cicli e anomalie
a Visual Basic Lezione 2 Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Perché i cicli? Un esempio concreto Finora abbiamo visto
Il generatore di numeri casuali
Il generatore di numeri casuali file di libreria: stdlib.h int rand(void) La funzione restituisce un numero casuale di tipo intero compreso tra 0 e RAND_MAX (estremi compresi) Esempio: scriviamo un programma
Manuale di Aggiornamento BOLLETTINO. Rel B. DATALOG Soluzioni Integrate a 32 Bit
KING Manuale di Aggiornamento BOLLETTINO Rel. 4.70.2B DATALOG Soluzioni Integrate a 32 Bit - 2 - Manuale di Aggiornamento Sommario 1 PER APPLICARE L AGGIORNAMENTO... 3 2 NOVITA 4.70.2B... 5 2.1 Annullo
Laboratorio di Architettura lezione 5. Massimo Marchiori W3C/MIT/UNIVE
Laboratorio di Architettura lezione 5 Massimo Marchiori W3C/MIT/UNIVE Da Alto a Basso livello: compilazione Come si passa da un linguaggio di alto livello a uno di basso livello? Cioe a dire, come lavora
UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita
UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m
Individuazione di sottoproblemi
Individuazione di sottoproblemi Quando il problema è complesso conviene partire con una individuazione di sottoproblemi Scriviamo un algoritmo contenente azioni o condizioni complesse per l esecutore che
File di script. I File di Script Corso 2D - R.Virili 1
File di script I File di Script Corso 2D - R.Virili 1 Cosa sono Consentono di combinare diversi comandi AutoCAD e di eseguirli in una sequenza prefissata. I comandi possono essere scritti come file di
x 2 + (x+4) 2 = 20 Alle equazioni di secondo grado si possono applicare i PRINCIPI di EQUIVALENZA utilizzati per le EQUAZIONI di PRIMO GRADO.
EQUAZIONI DI SECONDO GRADO Un'equazione del tipo x 2 + (x+4) 2 = 20 è un'equazione DI SECONDO GRADO IN UNA INCOGNITA. Alle equazioni di secondo grado si possono applicare i PRINCIPI di EQUIVALENZA utilizzati
Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa
Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
Layout Editor e Stampa
Layout Editor e Stampa Allo scopo di rendere il più possibile flessibili le stampe inerenti liste di articoli, abbiamo pensato di sfruttare un meccanismo semplicissimo che permetta di costruire a proprio
Disequazioni - ulteriori esercizi proposti 1
Disequazioni - ulteriori esercizi proposti Trovare le soluzioni delle seguenti disequazioni o sistemi di disequazioni:. 5 4 >. 4. < 4. 4 9 5. 9 > 6. > 7. < 8. 5 4 9. > > 4. < 4. < > 9 4 Non esitate a comunicarmi
Jclic Download e installazione
Jclic Download e installazione Per windows collegarsi al seguente sito http://www.didattica.org/clic.htm Scendere nella schermata al riquadro n. 8 che si intitola JClic 0.2.1.0 Portable ed effettuare il
La codifica. dell informazione
La codifica dell informazione (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero
Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento
Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e
Numeri frazionari. sistema posizionale. due modi: virgola fissa virgola mobile. posizionale, decimale
Numeri frazionari sistema posizionale due modi: virgola fissa virgola mobile posizionale, decimale 0,341=tre decimi più quattro centesimi più un millesimo cifre dopo la virgola: decimi centesimi millesimi
7 Disegni sperimentali ad un solo fattore. Giulio Vidotto Raffaele Cioffi
7 Disegni sperimentali ad un solo fattore Giulio Vidotto Raffaele Cioffi Indice: 7.1 Veri esperimenti 7.2 Fattori livelli condizioni e trattamenti 7.3 Alcuni disegni sperimentali da evitare 7.4 Elementi
OPERAZIONI CHIUSURA E APERTURA Note operative
OPERAZIONI CHIUSURA E APERTURA Note operative N.B. E importante accertarsi, in caso di multiutenza, che altri operatori non effettuino operazioni contabili mentre ci si appresta a generare le chiusure
PROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
Data Import e Probabilità. Renato Mainetti
Data Import e Probabilità Renato Mainetti Importare dati in Matlab: Abbiamo visto come sia possibile generare array e matrici di dati. Per ora abbiamo sempre inserito i dati manualmente o utilizzando metodi
Relazione di fisica. Come farla e/o correggerla?
Relazione di fisica Come farla e/o correggerla? TITOLO: (totalmente personale) TITOLI INTERESSANTI: Una bilancia per la vita I nostri metri Una bilancia che aiuta nelle misurazioni Una penna, due misure
PSICOMETRIA. Esercitazione n.1. C.d.L. Comunicazione e Psicologia a.a. 2012/13
PSICOMETRIA Esercitazione n.1 C.d.L. Comunicazione e Psicologia a.a. 2012/13 ESERCITAZIONE 1: INDICE 1. Informazioni di carattere generale sulle esercitazioni 2. Il foglio di calcolo (Excel) 3. Avviare
Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni [email protected] Programmazione prof. Domenico
per immagini guida avanzata Modificare il contenuto del foglio di lavoro Geometra Luigi Amato Guida Avanzata per immagini Excel 2000 1
Modificare il contenuto del foglio di lavoro Geometra Luigi Amato Guida Avanzata per immagini Excel 2000 1 Selezione delle celle per immagini guida avanzata La cella attiva è la B7 Selezionare una cella
Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari
Lezione 4 L artimetica binaria: I numeri relativi e frazionari Sommario I numeri relativi I numeri frazionari I numeri in virgola fissa I numeri in virgola mobile 1 Cosa sono inumeri relativi? I numeri
Modulo1. Ricercare nelle mappe
Modulo1 Ricercare nelle mappe 1. Trovare latitudine e longitudine di un punto 2. Trovare un punto sapendo latitudine e longitudine N.B. Dal 2014 Google Maps ha una nuova versione Clicca Qui la presentazione
TOP DOWN. Compiti in classe proposti Modulo 1 JUVENILIA SCUOLA. Iacobelli Ajme Marrone
Compiti in classe proposti Modulo Domande Vero/Falso I dati vengono memorizzati nella CPU 2 Un Megabyte corrisponde a circa un milione di Byte 3 Gli Antivirus diffondono virus nel computer 4 LAN vuol dire
ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE
ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente
VALORIZZAZIONE MOVIMENTI DI SCARICO E VALORIZZAZIONE TRASFERIMENTO COSTI DI ANALITICA
VALORIZZAZIONE MOVIMENTI DI SCARICO E VALORIZZAZIONE TRASFERIMENTO COSTI DI ANALITICA Riportiamo di seguito i vari passaggi per poter gestire la rivalorizzazione, sui documenti di scarico, del costo di
Che cos'è un Power Point
Che cos'è un Power Point Power Point è una delle tante applicazioni per creare e organizzare delle presentazioni: durante l'esposizione di un progetto o di una ricerca, ad esempio, vi permette di supportare
Programma per la generazione di filastrocche
Programma per la generazione di filastrocche In questa sezione illustriamo un programma, realizzato all interno del progetto, che consente di generare le filastrocche che sono costituite da una strofa
Aggiorna. La Funzione Aggiorna Listino Aggiornare Listino Pr7 / Le connessioni / Listino METEL. Aggiorna Lis no. Aggiornamento del listino
mento del listino re il listino è molto semplice e richiede poco tempo. Prima di lanciare il comando listino occorre fare attenzione al tipo di listino che si deve aggiornare. Tenere ben presente che i
Home Page. Title Page. Contents. Laboratorio di LATEX. Page 1 of 16. Go Back. maggio 2013. Full Screen. Close. Quit
Laboratorio di LATEX Page 1 of 16 maggio 2013 Comandi di interruzione linea, interruzione pagina e di spaziatura \newline (o\\), come detto, servono per forzare un interruzione di linea, ma non servono
Architettura degli elaboratori Docente:
Politecnico di Milano Il File System Architettura degli elaboratori Docente: Ouejdane Mejri [email protected] Sommario File Attributi Operazioni Struttura Organizzazione Directory Protezione Il File
Compilazione on-line del Piano di Studio
Compilazione on-line del Piano di Studio 1 Indice 1. INTRODUZIONE E ACCESSO AL SISTEMA... 3 1.1. Accesso alla funzionalità... 3 2. COMPILAZIONE DEL PIANO DI STUDIO... 4 2.1. Struttura della procedura di
Sito web Telefono (Carmine)
Vespasiano Carmine BASE Totocalcio2012 Tutorial I tutorials totocalcio precedenti sono disponibili gratis alla pagina web. http://vecasoft.it/download_vecasoft.htm BASE Totocalcio v3.0.0.32 TotoQuote Totocalcio
Ministero della Salute
Ministero della Salute DIREZIONE GENERALE DELLA PROGRAMMAZIONE SANITARIA UFFICIO V FAQ ANAGRAFE FONDI SANITARI DOCUMENTI, DATI E INFORMAZIONI DA INSERIRE NEL SIAF 1. Quando si richiede il profilo per accedere
TEOREMA DEL RESTO E REGOLA DI RUFFINI
TEOREMA DEL RESTO E REGOLA DI RUFFINI ALCUNI TEOREMI IMPORTANTI Prendiamo una divisione intera tra numeri: 6 : 3 = 2. Il resto di questa divisione è 0, e questo significa che moltiplicando il quoziente
MANUALE UTENTE PROCEDURA PLANET WEB INTERPRISE (II edizione)
UNIVERSITA DEGLI STUDI DI MACERATA AREA PERSONALE SETTORE P.T.A. Ufficio presenze e affari generali P.T.A. MANUALE UTENTE PROCEDURA PLANET WEB INTERPRISE (II edizione) Ufficio presenze affari generali
Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.
Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca
Costruiamo la STRISCIA DELLE MISURE. decametro metro decimetro. Tm Gm Mm km hm dam m dm cm mm µm nm pm
Terametro Gigametro Megametro chilometro ettometro decametro metro decimetro micrometro millimetro milcrometro nanometro picometro Costruiamo la STRISCIA DELLE MISURE. Tm Gm Mm km hm dam m dm cm mm µm
Metodo di Gauss-Jordan 1
Metodo di Gauss-Jordan 1 Nota Bene: Questo materiale non debe essere considerato come sostituto delle lezioni. Ārgomenti svolti: Riduzione per righe e matrici equivalenti per righe. Forma echelon e sistemi
Modulo 17: Invio del BF tramite
Modulo 17: Invio del BF tramite E-mail Obiettivi del modulo 17 Gestione dell invio In questo modulo viene spiegata la funzione che permette di inviare per e-mail al cliente la prenotazione creata in agenzia
1.1.3 Dispositivi di memorizzazione. 1.1.3.2 Sapere come viene misurata la memoria di un computer: bit, byte, KB, MB, GB, TB.
1.1.3 Dispositivi di memorizzazione 1.1.3.2 Sapere come viene misurata la memoria di un computer: bit, byte, KB, MB, GB, TB. Il Bit Un computer è un dispositivo digitale Un dispositivo digitale è un apparecchio
STRINGHE: ARRAY DI CARATTERI! a p e \0
STRINGHE: ARRAY DI CARATTERI! Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' s a p e \0 0 1 2 3 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più
Gestione Commissioni Esami
Gestione Commissioni Esami Sistema informatico ESSE3 Versione 3.0 Autore Stato Revisore Gruppo Esse3 Approvato P. Casalaspro Data 30/01/2014 Distribuito a: Utenti Esse3 SOMMARIO 1 Introduzione... 1 1.1
Informatica Teorica. Macchine a registri
Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire
Informatica d ufficio
Informatica d ufficio Anno Accademico 2008/2009 Lezione N 3 Microsoft Word - prima parte Microsoft Word E un Word processor,cioè un programma che consente di creare e modificare documenti. Prevede numerose
Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.
Esame Laboratorio di Sistemi Operativi 2-01-2008 Il compito è costituito da domande chiuse e domande aperte. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 1 ora. Domande chiuse:
DESCRIZIONE CREAZIONE APP Si suddivide in 4 fasi di lavoro: 1. PIANIFICAZIONE; 2. PROGETTAZIONE; 3. SVILUPPO; 4. DISTRIBUZIONE.
DESCRIZIONE CREAZIONE APP Si suddivide in 4 fasi di lavoro: 1. PIANIFICAZIONE; 2. PROGETTAZIONE; 3. SVILUPPO; 4. DISTRIBUZIONE. PIANIFICAZIONE La pianificazione è la prima fase. Questa è la più delicata
Configurazione Posta Elettronica istituzionale con
Configurazione Posta Elettronica istituzionale con Microsoft Outlook Express Creare un nuovo account Nella parte in basso a sinistra del vostro desktop, ossia della vostra schermata, troverete una serie
Codice Gray. (versione Marzo 2007)
Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.
Come utilizzare i riferimenti assoluti e relativi in Microsoft Excel
Come utilizzare i riferimenti assoluti e relativi in Microsoft Excel In un foglio elettronico, le celle sono identificate mediante delle coordinate; in genere, sono utilizzate le lettere per identificare
4 0 = 4 2 = 4 4 = 4 6 = 0.
Elementi di Algebra e Logica 2008. Esercizi 4. Gruppi, anelli e campi. 1. Determinare la tabella additiva e la tabella moltiplicativa di Z 6. (a) Verificare dalla tabella moltiplicativa di Z 6 che esistono
Navigare in Internet Laboratorio di approfondimento la creazione di siti web e/o blog. Marco Torciani. (Seconda lezione) Unitre Pavia a.a.
Navigare in Internet Laboratorio di approfondimento la creazione di siti web e/o blog (Seconda lezione) Unitre Pavia a.a. 2014-2015 27/01/2015 dott. 1 In informatica l'hypertext Markup Language (HTML)
Introduzione 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!
Manuale utente Soggetto Promotore Erogatore Politiche Attive
Manuale utente Soggetto Promotore Erogatore Politiche Attive Guida all utilizzo del Sistema Garanzia Giovani della Regione Molise Sistema Qualità Certificato UNI EN ISO 9001:2008 9151.ETT4 IT 35024 ETT
Oggetto: Utility per la variazione massiva del codice IVA.
Oggetto: Utility per la variazione massiva del codice IVA. Questa utility permette la variazione di massa dei codici IVA nelle anagrafiche articoli, clienti e fornitori e nei documenti significativi al
Exploiting di applicazioni vulnerabili a buffer overflow sotto Linux
Exploiting di applicazioni vulnerabili a buffer overflow sotto Linux DISCLAIMER: I contenuti di seguito riportati possono, se sfruttati male, compromettere la sicurezza di un sistema informatico. L'autore
Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
Rappresentazioni numeriche
Rappresentazioni numeriche Un numero è dotato di un valore una rappresentazione La rappresentazione di un numero è il sistema che utilizziamo per indicarne il valore. Normalmente è una sequenza (stringa)
Heap e code di priorità
Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010
Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN [email protected]
Esercitazioni di Reti Logiche Lezione 1 Rappresentazione dell'informazione Zeynep KIZILTAN [email protected] Introduzione Zeynep KIZILTAN Si pronuncia Z come la S di Rose altrimenti, si legge come
MedLeg On WEB Portale Visite Fiscali V.11.03 - Manuale Utente - MedLeg On WEB. Portale Visite Fiscali. Manuale Utente. Versione 11.
MedLeg On WEB Portale Visite Fiscali Manuale Utente Versione 11.03 pag. 1 Sommario 1 GENERALITÀ...3 2 ACCESSO...3 3 RICHIESTA VISITA...4 3.1 Ricerca lavoratori...5 4 RICERCA RICHIESTA...6 pag. 2 1 Generalità
