Κεφάλαιο 3 Μέθοδοι αντιμετώπισης των Buffer Overflow Exploits

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Κεφάλαιο 3 Μέθοδοι αντιμετώπισης των Buffer Overflow Exploits"

Transcript

1 Κεφάλαιο 3 Μέθοδοι αντιμετώπισης των Buffer Overflow Exploits 31 Γενικά Στο A Μέρος της πτυχιακής παρουσιάσθηκε αναλυτικά το πώς μπορεί ένα κακόβουλος χρήστης(blackhat) να εκμεταλλευτεί(exploit) την αδυναμία(vulnerability) Buffer Overflow μίας εφαρμογή ώστε να αποκτήσει μη εξουσιοδοτημένη(unauthorized) πρόσβαση σε ένα υπολογιστικό σύστημα Ακόμα ειπώθηκε ότι το πρόβλημα ασφάλειας που προκαλεί αυτή η προγραμματιστική αδυναμία είναι γνωστή τουλάχιστον 15 χρόνια Αυτά τα χρόνια έχουν γίνει μεγάλες και αξιόλογες προσπάθειες ώστε να το πρόβλημα αντιμετωπιστεί με διάφορες μεθόδους Οι μέθοδοι αυτοί μπορούν να καταταχτούν, αναλόγως με τον τρόπο που αντιμετωπίζουν το πρόβλημα, στις μεθόδους Πρόληψης και στις μεθόδους Καταστολής Οι μέθοδοι που ο σκοπός τους είναι η πρόληψη προσπαθούν να εμποδίσουν να συμβεί ένα Buffer Overflow σε μία εφαρμογή Αυτό έχει σαν συνέπεια ότι η εφαρμογή είναι απαλλαγμένη τουλάχιστον από τον κίνδυνο επιθέσεων που βασίζονται σε Buffer Overflow αδυναμίες Οι μέθοδοι της καταστολής δεν ασχολούνται με την ίδια την εφαρμογή ή την διαδικασία ανάπτυξης της Οι μέθοδοι αυτοί χρησιμοποιούνται ώστε να προστατέψουν το υπολογιστικό ή ολόκληρο το πληροφοριακό σύστημα αφού συμβεί η επίθεση Αυτή η κατηγορία των μεθόδων όπως εύκολα μπορεί να διαπιστώσει κανείς διαβάζοντας την σχετική παράγραφο παρακάτω, σαν κύριο σκοπό έχουν να προστατεύουν τα συστήματα μέχρι αυτά να απαλλαγούν από τις αδυναμίες Buffer Overflow Σε αυτό το κεφάλαιο θα παρουσιαστούν οι μέθοδοι αντιμετώπισης του προβλήματος των Buffer Overflow Exploits παρουσιάζοντας πρώτα την κατηγορία των μεθόδων πρόληψης και μετά αυτό της καταστολής Αυτό γίνεται για να μπορεί ο αναγνώστης να έχει μία οριζόντια γνώση για το πώς έχει αντιμετωπιστεί αυτό το πρόβλημα πριν καταλάβει σε βάθος της μέθοδο που υιοθετείται σε αυτή την πτυχιακή 32 Μέθοδοι πρόληψης του Buffer Overflow Στις μεθόδους που έχουν προταθεί σε αυτή την κατηγορία το βασικό χαρακτηριστικό στο οποίο βασίζονται είναι ο έλεγχος ορίων(boundary Checking) Αυτό φυσικά είναι αναμενόμενο αφού από την ακούσια ή εκούσια παράληψη αυτού του ελέγχου ξεκινά η ρίζα του κακού Οι πιο διαδεδομένοι μέθοδοι πρόληψης του προβλήματος των Buffer Overflow Exploit είναι : Συγγραφή secure code Dynamic run-time checks - Libsafe Automated Detection of Buffer Overflow via Static Analysis Brute-Force Analysis 321 Συγγραφή secure code Η συγγραφή Ασφαλή Κώδικα(Secure Code) είναι ο τρόπος αντιμετώπισης του προβλήματος που προτείνεται από όλα τα όλες τις εργασίες και τις δημοσιεύσεις που έχουν γίνει μέχρι σήμερα(2003) Αυτή η λύση είναι περισσότερο μία πρόταση για την εφαρμογή μιας πολιτικής πάνω στην ανάπτυξη κώδικα χωρίς τέτοιου είδους λάθη Η εφαρμογής μίας τέτοιας πολιτικής πρέπει να γίνεται σε δύο φάσεις Η πρώτη φάση είναι ότι μία εταιρία παραγωγής λογισμικού να θεωρεί ότι μέρος της εκπαίδευσης των προγραμματιστών της θα είναι η γνώση της συγγραφής κώδικα με όσο το δυνατόν πιο τυποποιημένο τρόπο Αυτό θα οδηγήσει τους προγραμματιστές να αποφεύγουν να χρησιμοποιούν μεθόδους ή βιβλιοθήκες που είναι γνωστό ότι υποφέρουν από Buffer Overflow αλλά και όταν τις χρησιμοποιούν να δίνουν την απαραίτητη προσοχή Το δεύτερο κομμάτι αφορά τον σχεδιασμό κάθε έργου και την διαδικασία ελέγχων ποιότητας που πρέπει να γίνονται στο λογισμικό Όσο αφορά τον σχεδιασμό πρέπει από πριν να έχει αποφασιστεί τι εργαλεία θα χρησιμοποιηθούν και από ποίες γνωστές αδυναμίες Buffer Overflow υποφέρουν ώστε να απαλειφθούν Τέλος όσο αφορά τους έλεγχους ποιότητας πρέπει 1

2 κυρίως να ελέγχουν πόσο συνεπείς μπόρεσαν να είναι οι προγραμματιστές στην τυποποιημένη διαδικασία που τους ζητήθηκε και να στην συνέχεια να γίνεται εκτεταμένη ανάλυση σε κάθε «παρατυπία» Για παράδειγμα αν είναι συμφωνημένο κατά την τυποποίηση της ότι δεν θα χρησιμοποιείται η συνάρτηση scanf() αλλά αυτή για κάποιο λόγο είναι υποχρεωτικό να χρησιμοποιηθεί τότε θα πρέπει να γίνει εκτεταμένος έλεγχος ώστε η αυτή να μην προκαλέσει κάποια από τις γνωστές αδυναμίες Το πρόβλημα της παραπάνω λύσης είναι η αδυναμία του ανθρώπου να αντιστέκεται στα λάθη Έτσι είναι στατιστικά αποδεδειγμένο ότι ακόμα και αν μία διαδικασία παραγωγής λογισμικού έχει προβλέψει όλους τους πιθανούς τρόπους που μπορεί κάποιος να επιτεθεί στο προϊόν λογισμικό της είναι πολύ πιθανό να υπάρχει και ένας τουλάχιστόν ακόμα τρόπος που μπορεί να επιτεθεί κάποιος σε αυτό Για να λυθεί αυτό το πρόβλημα έχουν αναπτυχθεί προγραμματιστικά εργαλεία που ή ενσωματώνουν στον κώδικα τους απαραίτητους ελέγχους ορίων ή ελέγχουν και προειδοποιούν τον προγραμματιστή ότι ο κώδικάς του έχει κάποιες αδυναμίες Οι πιο διαδεδομένες λύσεις παρουσιάζονται στις επόμενες παραγράφους 322 Dynamic run-time checks Libsafe Η Libsafe αναπτύχθηκε στα Bell Labs και ο βασικός της στόχος είναι να αντικαταστήσει όλες τις συναρτήσεις της Libc (κεφάλαιο 2 - stdioh) που έχουν Buffer Overflow αδυναμίες Ο τρόπος που λειτουργεί η Libsafe δεν αντικαθιστά την Libc αλλά προσθέτει στις αδύναμες συναρτήσεις Boundary Checking όπως φαίνεται στο Σχήμα 31 Σχήμα 31 Μετρήσεις στο σχετικό Paper που γράφτηκε για την LibSafe δείχνουν ότι στην πράξη μία εφαρμογή που χρησιμοποιεί την Libsafe έχει την ίδια περίπου απόδοση(performance) με την έκδοση της εφαρμογής που δεν την χρησιμοποιεί Το μεγαλύτερο πλεονέκτημα αυτής της λύσης είναι ότι οι περισσότερες νέες εφαρμογές δεν χρειάζεται να ξαναγίνουν compile λόγο του Dynamic Linking To σημαντικότερο της μειονέκτημα είναι ότι προστατεύει μία εφαρμογή μόνο από την λανθασμένη χρήση των συναρτήσεων της βιβλιοθήκης Libc μη μπορώντας να απαλείψει όλες τις υπόλοιπες αδυναμίες Buffer Overflow Ενώ η λύση τις Libsafe είναι αρκετά ικανοποιητική, η ανάγκη να βρεθεί άλλη λύση που θα αντιμετωπίζει το πρόβλημα καθολικά οδήγησε σε λύσεις εργαλείων που βοηθούν το προγραμματιστή κατά την διάρκεια του Debugging να ανακαλύπτει που έχει αφήσει Buffer Overflow αδυναμίες Μία από αυτές τις λύσεις παρουσιάζεται στην επόμενη παράγραφο 2

3 323 Automated Detection of Buffer Overflow via Static Analysis Το πανεπιστήμιο Berkeley δημοσίευσε το paper A First Step Towards Automated Detection of Buffer Overrun Vulnerabilities που περιγράφει μία μέθοδο ανάλυσης του κώδικα ώστε να απαλείφονται τα Buffer overflow Η μέθοδος αυτή στην πράξη ανάγει το πρόβλημα σε πρόβλημα περιορισμών ακέραιων αριθμών(integer Constraint) Η αναγωγή αυτή έχει δύο πλεονεκτήματα Το πρώτο είναι ότι το πρόβλημα του Buffer Overflow μπορεί να λυθεί με οποιοδήποτε αλγόριθμο που λύνει το μαθηματικό πρόβλημα Integer Constraint Το δεύτερο είναι ότι η λύση αυτή μπορεί να εφαρμοστεί σε πολύ μεγάλες εφαρμογές δίνοντας λύση σε μικρό πολυωνυμικό χρόνο επειδή οι πράξεις σε αριθμούς γίνονται πολύ γρήγορα Η λύση αυτή εφαρμόζεται κατά το Compilation παράγοντας ένα σύνολο από Warnings που ειδοποιούν τον προγραμματιστή για της αδυναμίες Buffer Overflow που εντοπίσθηκαν Στο παρακάτω σχήμα παρουσιάζεται ο τρόπος που συνεργάζεται η λύση αυτή με ένα Compiler Σχήμα 32 Η βασική δυσκολία που έχει να αντιμετωπίσει αυτή η λύση είναι η μοντελοποίηση όλων των δυνατών προτύπων πηγαίου κώδικα που μπορούν να προκαλέσουν Buffer Overflow αδυναμίες Σε αυτή την δυσκολία οφείλεται και η αδυναμία αυτής της λύσης να βρει όλες τις πιθανές περιπτώσεις Buffer Overflow Vulnerabilities Στην πράξη με βάση τις μέτρησεις που έγιναν στο Paper, οι περιπτώσεις που δεν μπορεί να συλλάβει είναι όταν το Buffer δεν δηλώνεται με στατικό μέγεθος αλλά αρχικά δηλώνεται μόνο ο Pointer Οι αδυναμίες που μπορεί να προκύψουν από αυτή την περίπτωση είναι σαν αυτές της περίπτωσης της κακής χρήσης της Malloc στο Παράρτημα Α1 Η περαιτέρω επεξήγηση αυτής της λύσης ξεφεύγει από τα όρια αυτή της πτυχιακής για αυτό το λόγο παρακάτω παρουσιάζεται ένας πίνακας που δείχνει ένα δείγμα της διαδικασίας μοντελοποίησης Μετά την μοντελοποίηση και την παραγωγή μαθηματικών περιορισμών από τα μοντέλα των συναρτήσεων μπορεί να χρησιμοποιηθεί ένας οποιοσδήποτε αλγόριθμος constraint solver όπως φαίνεται στο σχήμα Brute-force Analysis Μία μέθοδο που χρησιμοποιείται κατά κόρον από τους Blackhat Hackers για να βρίσκουν αδυναμίες Buffer Overflow σε ένα σύστημα είναι η Brute-force Analysis Αυτή τη μέθοδο τείνουν τα τελευταία χρόνια να χρησιμοποιούν και οι Διαχειριστές(Administrators) των 3

4 δικτύων για να ελέγχουν αν τα υπολογιστικά συστήματα που υπάρχουν στο δίκτυο τους έχουν αδυναμίες τέτοιoυ τύπου Η μέθοδος Brute-force Analysis δεν είναι μία μέθοδος που χρησιμοποιείται μόνο για Buffer Overflow, αντίθετα μάλιστα την μέθοδο αυτή την χρησιμοποιούν για όλες τις πιθανές αδυναμίες που μπορεί έχει το σύστημα Στην πράξη η μέθοδος αυτή χρησιμοποιείται από ένα σύνολο εργαλείων λογισμικού που πραγματοποιούν όλες τις γνωστές επιθέσεις που υπάρχουν σε ένα σύστημα Αυτά τα εργαλεία όμως αντί να «καταλάβουν» τελικά το σύστημα απλά αναφέρουν στον διαχειριστή του δικτύου ποία από τα συστήματα του δικτύου του έχουν κάποιο πρόβλημα και ποίο είναι αυτό Η μέθοδος αυτή αν και εφαρμόζεται σε μία εφαρμογή αφού αυτή έχει μπει στην φάση της συντήρησης του κύκλου ζωής της θεωρείται προληπτική μέθοδος γιατί εφαρμόζεται πριν το σύστημα δεχτεί πραγματικά την επίθεση Η μέθοδος αυτή όμως έχει το μεγάλο μειονέκτημα ότι λόγο των δοκιμών για τυχών αδυναμίες μπορεί να προκαλέσει μεγάλη ζημιά στο υπολογιστικό σύστημα Τέλος, το πλεονέκτημα της είναι ότι μπορεί να βρίσκει αδυναμίες σε συστήματα που είναι έτοιμα να μπουν στην παραγωγική διαδικασία, βοηθώντας τον διαχειριστή του δικτύου να απαλείψει πολλές από της αδυναμίες του δικτύου του πριν αυτές του δημιουργήσουν πραγματικό πρόβλημα 33 Μέθοδοι αντιμετώπισης του Buffer Overflow μέσω της προστασίας κρίσιμων πληροφοριών Πριν παρουσιαστούν οι μέθοδοι καταστολής του προβλήματος του Buffer Overflow σε αυτή την παράγραφο θα παρουσιαστούν τρεις από τις μεθόδους που για να εμποδίσουν τα Buffer Overflow Exploit διαφυλάσσουν τις κρίσιμες για την ροή του προγράμματος πληροφορίες Οι μέθοδοι αυτοί δεν κατατάσσονται σε καταστολή ή πρόληψη γιατί ο τρόπος που λειτουργούν περιλαμβάνει χαρακτηριστικά και από τις δύο κατηγορίες Στην πράξη η ιδέα των μεθόδων αυτών είναι να ελέγχουν αν κάποια κρίσιμη πληροφορία όπως για παράδειγμα η RA(Return Address) μίας συνάρτησης αλλάχθηκε από εξωτερικό παράγοντα Αν διαπιστωθεί μία τέτοια αλλαγή τότε σταματά η εκτέλεση του προγράμματος Για να μπορεί όμως να γίνεται αυτός ο έλεγχος πρέπει το πρόγραμμα να έχει γίνει Compiled με ένα Compiler που διαθέτει αυτό το μηχανισμό Προφανώς οι μέθοδοι πρέπει να εφαρμοστούν σε μία εφαρμογή προληπτικά, κατά το Compilation, ενώ ο μηχανισμός που ενσωματώνεται στο πρόγραμμα για να σταματά τα BOE λειτουργεί κατασταλτικά Η λειτουργία των μεθόδων αυτών θεωρείται κατασταλτική γιατί σταματούν την ροή του προγράμματος αφού συμβεί το Buffer Overflow χωρίς να προσπαθούν να το εμποδίσουν πριν αυτό συμβεί Η κάθε μία από τις παρακάτω μεθόδους χρησιμοποιεί κάποιο μηχανισμό για να προστατεύσει το σύστημα από Buffer Overflow Οι μέθοδοι αυτοί μπορούν να εφαρμοστούν με διάφορους τρόπους Για παράδειγμα σε άλλες περιπτώσεις ο μηχανισμός γίνεται μέρος του Compiler ενώ σε άλλες περιπτώσεις απλά ο Compiler χρησιμοποιεί ένα C ή Assembly πρόγραμμα και το ενσωματώνει στον κώδικα μίας εφαρμογής Ο τρόπος που εφαρμόζεται ο μηχανισμός δεν θα αναλυθεί στα πλαίσια αυτή της πτυχιακής γιατί δεν έχει τόσο σημασία όσο το τι κάνει ο μηχανισμός προστασία για να σταματήσει τα Buffer Overflow Exploits 331 StackGuard Η μέθοδος StackGuard εστιάζει την λύση του προβλήματος στην προστασία της RA μίας function Για να το κάνει αυτό χρησιμοποιεί μια 32bit λέξη σαν μηχανισμό προστασίας της RA Η βασική ιδέα είναι ότι αν στην θέση που βρίσκεται αυτή η λέξη μέσα στην στοίβα βρεθεί κάποια άλλη λέξη τότε θεωρείται ότι έγινε υπερχείλιση και σταματά η εκτέλεση του προγράμματος Για να μπορεί να ελεγχθεί κάθε φορά αν η λέξη αλλάχθηκε ενσωματώνεται, από τον Compiler, στην κλήση κάθε συνάρτησης ένα ζευγάρι προλόγου και ένα επιλόγου για την εφαρμογή του StackGuard μηχανισμού Ο πρόλογος του StackGaurd δεν αντικαθιστά τον πρόλογο μίας συνάρτησης αλλά προστίθεται πριν από αυτόν ενώ ο επίλογος του StackGaurd προστίθεται αμέσως μετά από τον επίλογο της Στο παρακάτω παράδειγμα φαίνεται πώς διαμορφώνεται τελικά o κώδικας μίας συνάρτησης μετά το Compilation 4

5 Παράδειγμα 31 function_prologue: pushl $0x000aff0d // push canary into the stack pushl %ebp // save frame pointer mov %esp,%ebp // saves a copy of current %esp subl $108, %esp // space for local variables (function body) function_epilogue: leave // standard epilogue cmpl $0x000aff0d,(%esp) // check canary jne canary_changed addl $4,%esp // remove canary from stack ret canary_changed: // abort the program with error call canary_death_handler jmp // just in case I guess Στο παράδειγμα φαίνεται ότι η 32bit λέξη που λέγεται Canary είναι μια σταθερή τιμή που τοποθετείται ακριβώς πάνω από την Return Address Με αυτό τον τρόπο αν ένα Buffer Overflow Exploit υπερχειλίσει το Buffer τότε πριν αντικαταστήσει την RA θα έχει ήδη αλλάξει την τιμή του Canary Word έτσι ο StackGaurd μηχανισμός θα καταλάβει την υπερχείλιση και θα σταματήσει την εκτέλεση του προγράμματος Για να γίνει αυτό κατά την επιστροφή της συνάρτησης πριν ακριβώς την αποκατάσταση του EIP με την RA θα εκτελεστεί ο επίλογος του StackGaurd Ο επίλογος αυτός θα ελέγξει αν το Canary είναι άθικτο και αν όχι θα σταματήσει την εκτέλεση του προγράμματος πριν εκτελεστεί το Buffer Overflow Exploit Η λύση αυτή αρχικά ήταν τελείως λανθασμένη γιατί το μόνο που έπρεπε να κάνει ένας Blackhat για να παρακάμψει αυτή τη δικλείδα ασφαλείας ήταν πριν από κάθε RET μέσα στο ΒΟΕ String να προσθέσει το Canary αφού η τιμή αυτή είναι στατική Για να λυθεί αυτό το πρόβλημα στις επόμενες εκδόσεις του το StackGaurd αντί να χρησιμοποιεί ένα στατικό Canary χρησιμοποιεί ένα Random Canary και για να αυξηθεί η εντροπία του αυτό ο Canary κάνει την πράξη XOR με την RA της εκάστοτε Function Την λύση αυτή την υιοθετεί ο Visual C/C++ compiler του NET Studio της Microsoft 332 Visual C/C++ compiler του NET Studio της Microsoft H Microsoft επέλεξε να χρησιμοποιεί ένα παραπλήσιο μηχανισμό με αυτό του StackGaurd με Random Canary στον Compiler του NET ώστε οι επόμενες εφαρμογές που θα παραχθούν για την πλατφόρμα αυτή να είναι «ασφαλέστερες» Η ιδέα ενός Random Canary είναι πολύ σπουδαία γιατί ο Blackhat θα πρέπει να βρει έναν μηχανισμό που θα προβλέπει τα Canaries που μπορεί ο Compiler να παράγει Ακόμα και αν ξέρει τον μηχανισμό μόνο μετά από μία διαδικασία Brute-force θα μπορέσει τελικά να πετύχει τον σκοπό του Στην λύση αυτή όμως υπάρχει ένα μεγάλο πρόβλημα Όπως ειπώθηκε στο κεφάλαιο 2 η RA δεν είναι η μοναδική πληροφορία που αφορά την ροή του προγράμματος και σώζεται στη στοίβα Αμέσως πριν από την RA υπάρχει ο Frame Pointer της στοίβας που και αυτό μπορεί να χρησιμοποιηθεί ώστε να αλλάξει την ροή του προγράμματος και να την στρέψει προς τον Shellcode Φυσικά ο υπολογισμός του FP είναι πιο δύσκολος γιατί αυτός με την σειρά του πρέπει να οδηγήσει σε μια RA που θα προκαλέσει την αλλαγή της ροή Για να μπορέσει 5

6 λοιπόν η Microsoft να καλύψει και αυτές τις περιπτώσεις φρόντισε να παραλλάξει λίγο το StackGaurd και να τοποθετεί το Random Canary πάνω από τον FP αντί πάνω από την RA όπως φαίνεται και στο σχήμα 33 Σχήμα 33 Η μέθοδος αυτή είναι αρκετά ασφαλέστερη από την λύση του StackGaurd, αλλά το πρόβλημα ανάγεται στο να μάθει να υπολογίζει τα Random Canaries ώστε να εφαρμόζει όλα τα Buffer Overflow που είναι σχεδιασμένο να τρέχουν όταν δεν υπάρχει ο αυτός ο προστατευτικός μηχανισμός 333 StackShield Η ιδέα του StackShield προσπαθεί να λύσει τις αδυναμίες που έχουν οι παραπάνω λύσεις δημιουργώντας ένα απλούστερης λογικής μηχανισμό Η ιδέα είναι ο πρόλογος που προστίθεται σε μία συνάρτηση για να την προστατέψει, να αντιγράφει την RA στον σωρό αντί να βάζει Canary μέσα στην στοίβα Έτσι, ο επίλογος το μόνο που θα πρέπει να κάνει είναι να ελέγχει αν η διεύθυνση επιστροφής είναι ή ίδια με αυτή που αντιγράφτηκε αρχικά στον σωρό ή άλλαξε Είναι προφανές ότι ο Blackhat με αυτό τον τρόπο δεν μπορεί να κάνει τίποτα για να αντιμετωπίσει τον μηχανισμό παρά μόνο να επέμβεί στο σημείο του σωρού που βρίσκεται το αντίγραφο της RA και να το αντικαταστήσει Όπως φαίνεται λοιπόν ακόμα και σε αυτή την λύση υπάρχει τρόπος να «εξαπατηθεί» ο μηχανισμός προστασίας και τελικά το BOE να πετύχει τον στόχο του Αν και οι μηχανισμοί αυτοί δεν λύνουν καθολικά το πρόβλημα τουλάχιστον αυξάνουν τον βαθμό ασφάλειας μία εφαρμογής Όμως το μεγαλύτερο πρόβλημα που μπορεί να προκαλέσει η χρήση αυτών των μηχανισμών είναι η ψευδαίσθηση ασφάλειας στους προγραμματιστές Η βασική αιτία που δημιουργείται αυτή η ψευδαίσθηση είναι γιατί οι περισσότεροι αγνοούν ότι τα Buffer Overflow δεν γίνονται μόνο στην στοίβα αλλά και στον σωρό ενώ παράλληλα οι παραπάνω μηχανισμοί εστιάζουν μόνο σε αυτή την πλευρά του προβλήματος Έτσι τα Heap Based Buffer Oveflows αδυνατούν να τα εντοπίζουν αφήνοντας exploits όπως το openssl remote exploit που παρουσιάζεται αναλυτικά στο Παράρτημα Α1 να εκμεταλλευτούν ανενόχλητα αυτές τις αδυναμίες 34 Μέθοδοι καταστολής του Buffer Overflow Εκτός από τις λύσεις των δύο προηγούμενων παραγράφων όπως ειπώθηκε από την αρχή του κεφαλαίου υπάρχουν και οι λύσεις της καταστολής Οι λύσεις αυτές σε αντίθεση με το StackGuard ή τον Compiler της Microsoft εφαρμόζονται συμπληρωματικά χωρίς να χρειάζεται να ενσωματωθούν κατά το Compilation Οι λύσεις αυτές δεν έχουν πάντα στόχο να αποτρέψουν την εκτέλεση των Buffer Overflow exploit αλλά τουλάχιστον να ειδοποιήσουν το χρήστη ή διαχειριστή ενός συστήματος ότι το σύστημά του δέχτηκε επίθεση ώστε αυτό να αντιδράσει κατάλληλα Στην παράγραφο αυτή λοιπόν πρώτα θα παρουσιαστούν οι γνωστότεροι μέθοδοι που κατασταλτικά αποτρέπουν την εκτέλεση των Buffer Overflow 6

7 Exploits και στη συνέχεια αυτοί που περιμένουν την ανθρώπινη παρέμβαση για να αντιδράσουν σε ένα Buffer Overflow Exploit 341 Μη εκτελέσιμη στοίβα Η περιοχή του κώδικα ενός προγράμματος έχει δικαιώματα μόνο εκτέλεσης ακόμα και για την ίδια την εφαρμογή Έτσι δεν μπορεί να γίνει καμία αλλαγή στον κώδικα ενός προγράμματος Αντίθετα στην στοίβα τα δικαιώματα τυπικά είναι μόνο Read/Write που σημαίνει ότι τα δεδομένα που βρίσκονται μέσα σε σελίδες(pages) δεν μπορούν να εκτελεστούν ακόμα και αν η ροή ενός προγράμματος στέφει προς αυτά Στην πράξη η δυνατότητα η στοίβα να είναι μη εκτελέσιμη δεν χρησιμοποιείται στα λειτουργικά συστήματα για λόγους ευελιξίας και ταχύτητας Έτσι προγράμματα όπως ο GCC Compiler αλλά και πολλά λειτουργικά χαρακτηριστικά των Windows χρησιμοποιούν αυτή την δυνατότητα Με αυτό τον τρόπο για παράδειγμα ο GCC παράγει τον κώδικα μίας συνάρτησης που θέλει να εκτελέσει μέσα στην στοίβα και στην συνέχεια στρέφει την ροή του προγράμματος προς την συνάρτηση αυτή Μία ιδέα που χρησιμοποιείται σε μερικές εκδόσεις του πυρήνα του Linux είναι να χρησιμοποιηθεί η δυνατότητα του Paging που προσφέρεται ώστε η στοίβα να μην είναι εκτελέσιμη Η λύση αυτή είναι προφανώς κατασταλτική γιατί δεν εμποδίζει το Buffer Overflow να συμβεί αλλά το Buffer Overflow Exploit να εκτελεστεί Το πρόβλημα αυτής της λύσης είναι ότι αυτή μπορεί να προκαλέσει δυσάρεστες παρενέργειες στην λειτουργία ενός συστήματος που οι εφαρμογές του χρησιμοποιούν την εκτελεσιμότητα της στοίβας Ακόμα όμως και αν λυθούν τα προβλήματα αυτά υπάρχει ακόμα η δυνατότητα να εκτελεστούν άλλες επιθέσεις στον σωρό όπως στο παράδειγμα openssl remote exploit του κεφαλαίου 3 Τελειώνοντας την περιγραφή αυτής της λύσης απλά θα αναφερθεί ότι υπάρχουν πολλές περίπτωσης που μη εκτελεσιμότητα της στοίβας παρακάμπτεται με την χρήση του σωρού σε συνδυασμό διαφόρων άλλων χαρακτηριστικών της λειτουργία των υπολογιστικών συστημάτων όπως είναι το GOT table 342 Anti-Virus Αρκετά χρόνια πριν εμφανιστεί το Worm του Morris στην κοινότητα των υπολογιστών εμφανίστηκαν οι Ιοί(virus) των υπολογιστών Οι γνωστοί σε όλους Virus δεν εκμεταλλεύονταν μόνο αδυναμίες Buffer Overflow αλλά και πολλές άλλες Για να αντιμετωπιστεί αυτό το πρόβλημα τότε αναπτύχθηκαν εφαρμογές που ο σκοπός τους είναι να εντοπίζουν και να καταστρέφουν προγράμματα ιούς Οι εφαρμογές αυτές λέγονται Antivirus όπως το Norton-Antivirus ή το Mcaffe κτλ Κάποτε η χρήση των Antivirus ήταν θέμα επιλογής ανάλογα με την κρισιμότητα των πληροφοριών που έπρεπε να διαφυλαχτούν από πιθανές ζημίες που μπορεί να προκαλέσει ένα Virus Σήμερα όμως είναι σχεδόν απαραίτητο σε κάθε υπολογιστικό σύστημα που θα χρησιμοποιηθεί σαν περιβάλλον μακροχρόνιας εργασίας Η ανάγκη αυτή προκύπτει από την μεγάλη πολυπλοκότητα που έχουν τα σημερινά πληροφοριακά συστήματα καθώς και την ποικιλία των ιών Τα AntiVirus λοιπόν όπως και τα Virus εξελίχθηκαν και σήμερα δίνουν ένα καλό επίπεδο προστασίας σε ένα υπολογιστικό σύστημα Το σημαντικότερο από όλα όμως είναι ότι ένα AntiVirus μπορεί να προστατέψει κατασταλτικά ένα σύστημα από επιθέσεις Buffer Overflow χωρίς να αλλάξει την δομή και λειτουργία του συστήματος όπως οι λύσεις που παρουσιάστηκαν μέχρι τώρα Το βασικότερο μειονέκτημα που έχουν τα AntiVirus είναι ότι δεν μπορούν να εντοπίσουν επιθέσεις από ιούς που δεν είναι γνωστοί αν και σήμερα έχουν φτάσει στο σημείο τουλάχιστον να διακρίνουν νέες επιθέσεις που στην πραγματικότητα είναι παραλλαγές παλαιοτέρων επιθέσεων Η αδυναμία τους αυτή οφείλεται στο μηχανισμό με τον οποίο τα AnitVirus εντοπίζουν γενικά τους ιούς και ειδικότερα αυτούς που βασίζονται σε Buffer Overflow 7

8 Exploits O μηχανισμός αυτός δεν είναι τίποτα παραπάνω από ένα μηχανισμό Pattern Matching O μηχανισμός του Pattern Matching δεν κάνει τίποτα παραπάνω από το να προσπαθεί να εντοπίσει μέσα στην String μορφή ενός προγράμματος που παίρνει σαν είσοδο αν το περιέχει String όμοια με τα γνωστά BOE String ή άλλων Virus Όπως είναι κατανοητό αν το String ενός BOE δεν το γνωρίζει το AntiVirus τότε δεν μπορεί να εντοπίσει το BOE αυτό 343 Τα ΝIDS Τα τελευταία χρόνια έχουν εμφανιστεί στην αγορά τα ΝIDS με σκοπό να εντοπίζουν επιθέσεις εναντίον ενός ολόκληρου δικτύου και όχι μόνο σε επίπεδο ενός υπολογιστή Η βασική φιλοσοφία λειτουργία τους είναι όμοια με αυτή των AntiVirus δηλαδή προσπαθούν να κάνουν Pattern Matching γνωστών επιθέσεων Η βασική τους διαφορά που έχουν από τα AntiVirus είναι ότι αντί να προσπαθούν να εντοπίσουν ένα Buffer Overflow ή άλλου είδος επίθεση μέσα σε αρχεία προσπαθεί να κάνει το ίδιο στα πακέτα που περνούν μέσα από ένα δίκτυο Η δεύτερη διαφορά τους είναι ότι συνήθως δεν χρησιμοποιείται ο μηχανισμός αντίδρασης που διαθέτουν όπως στα Anti- Virus, ενώ αντίθετα τα τελευταία στηρίζουν την κατασταλτική τους συμπεριφορά σε αυτόν ακριβώς τον μηχανισμό Η τεχνολογία των NIDS προς το παρόν σαν βασικό σκοπό έχουν την αυτοματοποιημένη παρακολούθηση ενός δικτύου όπως συμβαίνει με μία κάμερα ασφάλειας για παράδειγμα σε μία τράπεζα Ο ρόλος των NIDS συνεπώς είναι να βοηθήσει στην ενίσχυση της ασφάλεια ενός Πληροφοριακού Συστήματος που στηρίζεται στην δικτύωση των υπολογιστών που το αποτελούν αφήνοντας την κατασταλτική αντίδραση στον Διαχειριστή του δικτύου Η λειτουργία των NIDS όπως ειπώθηκε και παραπάνω δεν διαφέρει κατά πολύ από αυτή του Anti-Virus και δεν σταματά την επίθεση όπως αυτό Στην ορολογία των NIDS η προσπάθεια τους να εντοπίσουν Patterns από επιθέσεις όπως αυτή των Buffer Overflow Exploits ονομάζεται Misused Based Detection Εκτός όπως από αυτό το μηχανισμό τα NIDS διαθέτουν και ένα μηχανισμό που λέγεται Anomaly Based Detection Ο μηχανισμός Anomaly Based Detection που διαθέτουν τα NIDS είναι ένας μηχανισμός που προέκυψε σαν απάντηση στο πρόβλημα που έχουν και τα AntiVirus ότι δηλαδή δεν είναι δυνατόν να εντοπιστεί μία επίθεση αν δεν είναι γνωστό το Pattern του String του Buffer Overflow Exploit ή άλλης επίθεσης Ο Anomaly Based Detection μηχανισμός προσπαθεί να εντοπίσει επιθέσεις πριν αυτές γνωστοποιηθούν και ενσωματωθούν στο Misused Based Detection μηχανισμό Για να το κάνει αυτό αναλόγως με τη περίπτωση μοντελοποιείται η φυσιολογική συμπεριφορά των πακέτων και αν παρατηρηθεί κάποια ανωμαλία σε αυτά ή στο περιεχόμενο τους τότε αποστέλλεται σχετική ειδοποίηση στον διαχειριστή του δικτύου Περισσότερες λεπτομέρειες για το τα NIDS μπορείται να βρείται στο Technical Report Snort 20&Snort_Preprocessors που παρουσιάζεται το Snort 20 το γνωστότερο OpenSource NIDS σήμερα(2003) Τέλος η λύση για την αντιμετώπιση των Buffer Overflow που υλοποιήθηκε στα πλαίσια αυτή της πτυχιακής στηρίζει την λειτουργία του στο Snort 20 ενώ προστίθεται σε αυτό σαν module To module αυτό είναι μία μέθοδος εντοπισμού που στην πράξη υλοποιεί έναν Anomaly Based Detection μηχανισμό εντοπισμού των Buffer Overflow Exploits Ο σκοπός αυτή της λύσης για το Buffer Overflow όπως και ο λόγος ύπαρξης των NIDS γενικότερα, είναι να βοηθήσει στην καταστολή της εξάπλωσης των Buffer Overflow Exploit μέσα σε ένα δίκτυο ειδικά όταν αυτά δεν είναι γνωστά άρα δεν μπορούν να εντοπιστούν από τον Misused Based Detection ενός NIDS ή AntiVirus Λεπτομέρειες για το μηχανισμό εντοπισμού των Buffer Overflow Exploits παρουσιάζονται στο κεφαλαίο 5 της πτυχιακής Πριν από αυτό όμως θα παρουσιαστεί μία ακόμα μέθοδος κατασταλτικού μηχανισμού των BOE η οποία είναι και η βάση της δικιάς μου υλοποίησης 8

9 344 Accurate Buffer Overflow Detection via Abstract Execution of Payload Η λύση αυτή προτάθηκε στην RAID 2002 από τους TToth και CKruegel και παράδειγμα υλοποίησης αυτής της ιδέας έγινε σαν module του Apache Server Η βασική ιδέα της λύσης είναι ότι σε κάθε εφαρμογή που παρέχει δικτυακές υπηρεσίες πρέπει να ενσωματωθεί ένα module που με κάποιο μηχανισμό θα ελέγχει τα εισερχόμενα πακέτα για να βρει Buffer Overflow Exploits Ο μηχανισμός αυτός για να βρει BOE ελέγχει το String που δέχεται σαν είσοδο δηλαδή τα περιεχόμενα ενός πακέτου(payload) Αν μέσα στο πακέτο βρεθεί ένα BOE τότε αυτό δεν παραδίδεται στην υπόλοιπη εφαρμογή προστατεύοντας την έτσι από τέτοιου είδους επιθέσεις Για να μπορέσει όμως να λειτουργήσει αυτό ο μηχανισμός θα πρέπει να μπορεί με κάποιο τρόπο να ξεχωρίζει τα πακέτα που περιέχουν BOE από τα υπόλοιπα Ο τρόπος που ξεχωρίζει τα πακέτα μεταξύ τους βασίζεται στο μεγάλο βαθμό εκτελεσιμότητας που έχουν τα πακέτα με BOE σε σχέση με τα υπόλοιπα Εκτελεσιμότητα σε ένα πακέτο σημαίνει ότι τo String που αποτελεί το payload ενός πακέτου μπορεί να αντιστοιχεί ολόκληρο ή κομμάτια του σε αλυσίδες εκτελέσιμων εντολών Η έννοια της εκτελεσιμότητας θα εξεταστεί αναλυτικά στο κεφάλαιο 4 Το σημαντικό που πρέπει να γνωρίζει κάποιο για αυτή τη μέθοδο είναι ότι η εκτελεσιμότητα μπορεί να παρουσιάζεται σε ένα πακέτο τυχαία Όμως όταν το πακέτα περιέχει Buffer Overflow Exploit String τότε η εκτελεσιμότητα παρουσιάζεται σίγουρα Για να μπορέσει λοιπόν να ξεχωρίζει η μέθοδος αυτή πότε ένα πακέτο παρουσιάζει εκτελεσιμότητα κατά τύχη και πότε όχι παίρνει σαν είσοδο για κάθε δικτυακή υπηρεσία μία τιμή κατώφλι(threshold) και με αυτή διαχωρίζει τα πακέτα Η τιμή αυτή καθορίζεται με στατιστικές μετρήσεις Αν και η μέθοδος αυτή είναι δύσκολο να ενσωματωθεί σε κάθε δυνατή υπηρεσία ενός δικτύου όπως προτείνεται στο paper έχει πολύ καλά αποτελέσματα Επειδή η μέθοδος αυτή έχει πολύ καλά αποτελέσματα στον εντοπισμό των επιθέσεων Buffer Overflow Exploit η μέθοδος αυτή χρησιμοποιήθηκε από τον συγγραφέα αυτή της πτυχιακής εργασίας για να υλοποίηση μια έκδοση του Snort 20 που θα εντοπίζει τέτοιες επιθέσεις χωρίς προηγουμένως αυτές να είναι γνωστές 9

Κεφάλαιο 1 Buffer Overflow & Buffer Overflow Exploit Overview

Κεφάλαιο 1 Buffer Overflow & Buffer Overflow Exploit Overview Κεφάλαιο 1 Buffer Overflow & Buffer Overflow Exploit Overview 1.1 Γενικά Ένας Balckhat hacker για να καταφέρει να πετύχει ένα Buffer Overflow Exploit εκμεταλλεύεται τα αδύναμα Buffer μίας υπηρεσίας(service).

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω.

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω. Τι είναι το debug μαμα? Με απλά λόγια, debug (αποσφαλμάτωση αλλά που να κάθεσαι να το πεις), είναι η διαδικασία εντοπισμού και διόρθωσης σφαλμάτων που υπάρχουν σε κώδικα (ασχέτως γλώσσας προγραμματισμού).

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

Διαβάστε περισσότερα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

Διαβάστε περισσότερα

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

Διαβάστε περισσότερα

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI Εργαστήριο 1ο Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI Σε αυτό το κεφάλαιο θα ασχοληθούμε με την περιγραφή της διαδικασίας μεταγλώττισης ενός προγράμματος C κάνοντας χρήση του μεταγλωττιστή gcc σε

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

Διαβάστε περισσότερα

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες 0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε

Διαβάστε περισσότερα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ 4 ο Εξάμηνο Μαδεμλής Ιωάννης ΥΠΟΡΟΥΤΙΝΕΣ ΕΡΓΑΣΤΗΡΙΟ 6 Οι υπορουτίνες αποτελούν αυτόνομα τμήματα κώδικα που διεκπεραιώνουν μία συγκεκριμένη εργασία και μπορούμε να τα καλούμε

Διαβάστε περισσότερα

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Plugins για το AgentSheets Ανάπτυξη Plugins για το AgentSheets Thought Amplifier AgentSheets Ανάπτυξη Plugins AgentSheets 2.5 Συγγραφείς Τεκµηρίωσης: Alexander Repenning και Ronald Sudomo Εξελληνισµός Τεκµηρίωσης: Λίνος Βίγκλας,

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 11 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

Διαβάστε περισσότερα

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

Διαβάστε περισσότερα

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ Μάθημα Επιλογής Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου Δρ. Γεώργιος Κεραμίδας e-mail: gkeramidas@teimes.gr 1 Διεργασίες: Κατάσταση Εκτέλεσης (3-σταδίων) Κατάσταση

Διαβάστε περισσότερα

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση Αρης Ευθυμίου Ανακοινώσεις! Βαθμοί: 1ης εργαστηριακής άσκησης Βαθμός 0 χωρίς σχόλια δεν έχω πάρει την άσκηση! ελέγξτε μήπως δεν το στέλνετε στο σωστό

Διαβάστε περισσότερα

Περιεχόμενο του μαθήματος

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος

Διαβάστε περισσότερα

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Μάθημα 4.5 Η Μνήμη - Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις τα κυριότερα είδη μνήμης

Διαβάστε περισσότερα

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Τ.Ε.Ι ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Πτυχιακή εργασία του φοιτητή Γιαννακίδη Αποστόλη Επιβλέπων καθηγητής Τσούλος

Διαβάστε περισσότερα

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 10: Πέρασμα Παραμέτρων σε Διαδικασίες. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο Στο φετινό εργαστήριο του μαθήματος, έχετε τη δυνατότητα να δουλέψετε σε 2 περιβάλλοντα. Ένα σε περιβάλλον UNIX μέσω απομακρυσμένης σύνδεσης σε

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Τηλ/νιών Τομέας Προγ/σμού & Τεχνολογίας Λογισμικού Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Δρ. Νικόλαος Θ. Λιόλιος Καθηγητής Φεβρουάριος 2012 1. Εισαγωγή Το Visual

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό. Ερωτήσεις θεωρίας MY Μέρος Α. Υλικό. 1. Η μνήμη ROM είναι συνδυαστικό ή ακολουθιακό κύκλωμα; 2. α) Να σχεδιαστεί μία μνήμη ROM που να δίνει στις εξόδους της το πλήθος των ημερών του μήνα, ο αριθμός του

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 07 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III

Διαβάστε περισσότερα

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές Κεφάλαιο 8 8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές Σελ. 320-325 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr http://diktya-epal-g.ggia.info/ Creative

Διαβάστε περισσότερα

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η 53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η ΠΑΓΚΡΑΤΙ: Φιλολάου & Εκφαντίδου 26 : 210/76.01.470 210/76.00.179 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

Διαβάστε περισσότερα

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Στόχοι του μαθήματος Μετά το τέλος του μαθήματος οι μαθητές πρέπει να είναι σε θέση: Να περιγράφουν τι είναι πρόγραμμα Να εξηγούν την αναγκαιότητα για τη δημιουργία γλωσσών

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ ΘΕΜΑ 1 ο : Α. Να αναφέρετε ονομαστικά τις βασικές λειτουργίες (πράξεις) επί των δομών δεδομένων. Μονάδες 8 Β. Στον

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

Διαβάστε περισσότερα

Δημήτρης Πρίτσος. ISLAB HACK: Βασικές Έννοιες της Αρχιτεκτονικής

Δημήτρης Πρίτσος. ISLAB HACK: Βασικές Έννοιες της Αρχιτεκτονικής ISLAB HACK: Βασικές Έννοιες της Αρχιτεκτονικής INTEL - IA32 για LINUX & WINDOWS Αθήνα 2003 1 Περιεχόμενα 2 Περιήγηση στην αρχιτεκτονική ΙΑ32 και των λειτουργικών συστημάτων Linux και Ms-Windows 1 Γενικά

Διαβάστε περισσότερα

ΑΣΚΗΣΗ. Ορίζονται μόνο καθολικές ακέραιες μεταβλητές με τη σύνταξη: int varname;

ΑΣΚΗΣΗ. Ορίζονται μόνο καθολικές ακέραιες μεταβλητές με τη σύνταξη: int varname; ΑΣΚΗΣΗ Εισαγωγή Η γλώσσα Aegean-C είναι ένα υποσύνολο της γλώσσας C. Δε διαθέτει πολλούς τύπους, δομές, δείκτες, αρκετούς τελεστές, τις περισσότερες συναρτήσεις της βιβλιοθήκης και ορισμένες εντολές. Παρόλα

Διαβάστε περισσότερα

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

Διαβάστε περισσότερα

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Πολλαπλά Αρχεία Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Πολλαπλά Αρχεία Όταν γράφουμε μεγάλα προγράμματα θέλουμε να έχουμε ανεξάρτητα κομμάτια κώδικα

Διαβάστε περισσότερα

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 3: Βασικά στοιχεία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

Διαβάστε περισσότερα

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν

Διαβάστε περισσότερα

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

Διαβάστε περισσότερα

Προγραμματισμός Χειμερινό Εξάμηνο 2014

Προγραμματισμός Χειμερινό Εξάμηνο 2014 Χειμερινό Εξάμηνο 2014 Εισαγωγή Περιεχόμενο : μέθοδοι προγραμματισμού προγραμματιστικές αρχές δομημένος προγραμματισμός, αφαιρετικότητα, υλοποίηση, έλεγχος, και αποσφαλμάτωση καλές πρακτικές γλώσσα προγραμματισμού:

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran

Διαβάστε περισσότερα

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Δημιουργία ενός απλού παιχνιδιού με το Gamemaker (μετάφραση από το http://www.stuffucanuse.com/downloads/gamemaker-introductionlessons/free_game_downloads_gamemaker.htm)

Διαβάστε περισσότερα

Προγραμματισμός Υπολογιστών

Προγραμματισμός Υπολογιστών Προγραμματισμός Υπολογιστών Βασικές γνώσεις Κ. Βασιλάκης, ΣΤΕΦ, ΤΕΙ Κρήτης Η Πληροφορική και τα εργαλεία της Παροχή έγκαιρης και έγκυρης πληροφόρησης. Καταχώριση στοιχείων Αποθήκευση Επεξεργασία ψηφιακών

Διαβάστε περισσότερα

Χειµερινό Εξάµηνο 2013

Χειµερινό Εξάµηνο 2013 Προγραµµατισµός Χειµερινό Εξάµηνο 2013 Προγραµµατισµός Εισαγωγή Περιεχόµενο : γλώσσα προγραµµατισµού: C++ µέθοδοι προγραµµατισµού προγραµµατιστικές αρχές δοµηµένος προγραµµατισµός, αφαιρετικότητα, υλοποίηση,

Διαβάστε περισσότερα

Η αξία της έρευνας ευπαθειών στις δοκιμές παρείσδυσης. Δρ Πάτροκλος Αργυρούδης argp@census.gr / Ερευνητής Ασφάλειας Η/Υ

Η αξία της έρευνας ευπαθειών στις δοκιμές παρείσδυσης. Δρ Πάτροκλος Αργυρούδης argp@census.gr / Ερευνητής Ασφάλειας Η/Υ Η αξία της έρευνας ευπαθειών στις δοκιμές παρείσδυσης Δρ Πάτροκλος Αργυρούδης argp@census.gr / Ερευνητής Ασφάλειας Η/Υ Λίγα λόγια για τη Census Παροχή εξειδικευμένων υπηρεσιών ασφάλειας Η/Υ που απαιτούν

Διαβάστε περισσότερα

Κεφάλαιο 1: Έναρξη...3

Κεφάλαιο 1: Έναρξη...3 F-Secure Anti-Virus for Mac 2014 Περιεχόμενα 2 Περιεχόμενα Κεφάλαιο 1: Έναρξη...3 1.1 Τι πρέπει να κάνω μετά την εγκατάσταση;...4 1.1.1 Διαχείριση συνδρομής...4 1.1.2 Άνοιγμα του προϊόντος...4 1.2 Πώς

Διαβάστε περισσότερα

Συνέντευξη με τον Διευθυντή του Ευρωπαϊκού Οργανισμού για την Ασφάλεια και την Υγεία στην Εργασία, Jukka Takala. Τι σημαίνει εκτίμηση κινδύνου;

Συνέντευξη με τον Διευθυντή του Ευρωπαϊκού Οργανισμού για την Ασφάλεια και την Υγεία στην Εργασία, Jukka Takala. Τι σημαίνει εκτίμηση κινδύνου; Συνέντευξη με τον Διευθυντή του Ευρωπαϊκού Οργανισμού για την Ασφάλεια και την Υγεία στην Εργασία, Jukka Takala Μπιλμπάο, 28 Απριλίου 2008 Τι σημαίνει εκτίμηση κινδύνου; Jukka Takala: Η εκτίμηση κινδύνου

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview Εργαστήριο Λειτουργικών Συστημάτων Minix Overview Σύνοψη 5ης ιάλεξης Λειτουργικό Σύστημα Minix Οργάνωση του Λειτουργικού Συστήματος Οργάνωση πηγαίου κώδικα Minix recompilation Σύνοψη Μαθήματος Σύνοψη Μαθήματος

Διαβάστε περισσότερα

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης Σελίδα 1από ΤΕΙ ΚΑΒΑΛΑΣ Πτυχιακή εργασία Δικτυακή Εφαρμογή διαχείρισης ηλεκτρονικών εγγράφων υπηρεσίας. ΕΙΣΑΓΩΓΗ Μιλτιάδης Κακλαμάνης Σελίδα 2από Κατάλογος περιεχομένων ΕΙΣΑΓΩΓΗ...1 Σχετιζόμενα πρόσωπα...3

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή

Διαβάστε περισσότερα

Κεφάλαιο 1. Εισαγωγή Honeypots Honeynets

Κεφάλαιο 1. Εισαγωγή Honeypots Honeynets Εισαγωγή Honeypots Honeynets - Σελίδα 2 - Εισαγωγή Το Πρόβλημα O αυξανόμενος αριθμός επιθέσεων στο internet και η ανάγκη για την αντιμετώπιση τους δημιούργησε την ανάγκη απόκτησης εξειδικευμένης γνώσης

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Δοκιμή Έλεγχος Αλγορίθμου Για να

Διαβάστε περισσότερα

Ενημέρωση σε Windows 8.1 από τα Windows 8

Ενημέρωση σε Windows 8.1 από τα Windows 8 Ενημέρωση σε Windows 8.1 από τα Windows 8 Τα Windows 8.1 και τα Windows RT 8.1 είναι βασισμένα στα Windows 8 και στα Windows RT, για να σας προσφέρουν βελτιώσεις στην εξατομίκευση, την αναζήτηση, τις εφαρμογές,

Διαβάστε περισσότερα

Κεφάλαιο 2 Buffer Overflow Exploits

Κεφάλαιο 2 Buffer Overflow Exploits Κεφάλαιο 2 Buffer Overflow Exploits 2.1 Γενικά Στο προηγούμενο κεφάλαιο έγινε μία επισκόπηση για το που οφείλεται ένα Buffer Overflow Vulnerability και ποίες είναι οι γνώσεις που χρειάζονται ώστε να μπορέσει

Διαβάστε περισσότερα

Τα παρακάτω σύνολα θα τα θεωρήσουμε γενικά γνωστά, αν και θα δούμε πολλές από τις ιδιότητές τους: N Z Q R C

Τα παρακάτω σύνολα θα τα θεωρήσουμε γενικά γνωστά, αν και θα δούμε πολλές από τις ιδιότητές τους: N Z Q R C Κεφάλαιο 1 Εισαγωγικές έννοιες Στο κεφάλαιο αυτό θα αναφερθούμε σε ορισμένες έννοιες, οι οποίες ίσως δεν έχουν άμεση σχέση με τους διανυσματικούς χώρους, όμως θα χρησιμοποιηθούν αρκετά κατά τη μελέτη τόσο

Διαβάστε περισσότερα

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής: Αυτό που πρέπει να θυμόμαστε, για να μη στεναχωριόμαστε, είναι πως τόσο στις εξισώσεις, όσο και στις ανισώσεις 1ου βαθμού, που θέλουμε να λύσουμε, ακολουθούμε ακριβώς τα ίδια βήματα! Εκεί που πρεπει να

Διαβάστε περισσότερα

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μεταγλωττιστές Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανοδική Κατασκευή Συντακτικού Δέντρου κατασκευή δέντρου

Διαβάστε περισσότερα

Μέρος Β /Στατιστική. Μέρος Β. Στατιστική. Γεωπονικό Πανεπιστήμιο Αθηνών Εργαστήριο Μαθηματικών&Στατιστικής/Γ. Παπαδόπουλος (www.aua.

Μέρος Β /Στατιστική. Μέρος Β. Στατιστική. Γεωπονικό Πανεπιστήμιο Αθηνών Εργαστήριο Μαθηματικών&Στατιστικής/Γ. Παπαδόπουλος (www.aua. Μέρος Β /Στατιστική Μέρος Β Στατιστική Γεωπονικό Πανεπιστήμιο Αθηνών Εργαστήριο Μαθηματικών&Στατιστικής/Γ. Παπαδόπουλος (www.aua.gr/gpapadopoulos) Από τις Πιθανότητες στη Στατιστική Στα προηγούμενα, στο

Διαβάστε περισσότερα

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

Διαβάστε περισσότερα

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 Αρης Ευθυμίου Το σημερινό μάθημα! Λυση του lab02! Αρχιτεκτονική ARM σε τι μοιάζει και σε τι διαφέρει από τον MIPS! Αρχιτεκτονική x86 μια γρήγορη ματιά στη

Διαβάστε περισσότερα

Εφαρμοσμένη Κρυπτογραφία Ι

Εφαρμοσμένη Κρυπτογραφία Ι Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Ψηφιακές Υπογραφές Ορίζονται πάνω σε μηνύματα και είναι αριθμοί που εξαρτώνται από κάποιο

Διαβάστε περισσότερα

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

Διαβάστε περισσότερα

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Σ ε λ ί δ α 1 Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Περιεχόμενα 1. Download Arebas Easy... 2 2. Εγκατάσταση Arebas Easy... 3 3. Εγγραφή στον Arebas Server... 7 4. Παραμετροποίηση Arebas Easy...

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

Διαβάστε περισσότερα

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης 1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης Στη συγκεκριμένη ενότητα εξετάζουμε θέματα σχετικά με την αριθμητική πεπερασμένης ακρίβειας που χρησιμοποιούν οι σημερινοί υπολογιστές και τα

Διαβάστε περισσότερα

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 2 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

ΑΣΚΗΣΕΙΣ ΠΙΘΑΝΟΤΗΤΩΝ του Παν. Λ. Θεοδωρόπουλου 0

ΑΣΚΗΣΕΙΣ ΠΙΘΑΝΟΤΗΤΩΝ του Παν. Λ. Θεοδωρόπουλου 0 ΑΣΚΗΣΕΙΣ ΠΙΘΑΝΟΤΗΤΩΝ του Παν. Λ. Θεοδωρόπουλου 0 Η Θεωρία Πιθανοτήτων είναι ένας σχετικά νέος κλάδος των Μαθηματικών, ο οποίος παρουσιάζει πολλά ιδιαίτερα χαρακτηριστικά στοιχεία. Επειδή η ιδιαιτερότητα

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

Διαβάστε περισσότερα

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

Διαβάστε περισσότερα

Διαδικασία Ελέγχου Μηδενικών Υποθέσεων

Διαδικασία Ελέγχου Μηδενικών Υποθέσεων Διαδικασία Ελέγχου Μηδενικών Υποθέσεων Πέτρος Ρούσσος, Τμήμα Ψυχολογίας, ΕΚΠΑ Η λογική της διαδικασίας Ο σάκος περιέχει έναν μεγάλο αλλά άγνωστο αριθμό (αρκετές χιλιάδες) λευκών και μαύρων βόλων: 1 Το

Διαβάστε περισσότερα

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτογραφία Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτοσυστήματα Δημοσίου κλειδιού Αποστολέας P Encryption C Decryption P Παραλήπτης Προτάθηκαν το 1976 Κάθε συμμετέχων στο

Διαβάστε περισσότερα

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Εξετάσεις Προσομοίωσης 18/01/2015 Θέμα Α Α1. Δίνεται ο παρακάτω αλγόριθμος. Αλγόριθμος Α1 Αθρ 0 μ 1 Όσο μ

Διαβάστε περισσότερα

Asset & Liability Management Διάλεξη 3

Asset & Liability Management Διάλεξη 3 Πανεπιστήμιο Πειραιώς ΠΜΣ στην «Αναλογιστική Επιστήμη και Διοικητική Κινδύνου» Asset & Liability Management Διάλεξη 3 Cash-flow matching Μιχάλης Ανθρωπέλος anthropel@unipi.gr http://web.xrh.unipi.gr/faculty/anthropelos

Διαβάστε περισσότερα

Εισαγωγή στη Στατιστική

Εισαγωγή στη Στατιστική Εισαγωγή στη Στατιστική Μετεκπαιδευτικό Σεμινάριο στην ΨΥΧΟΚΟΙΝΩΝΙΚΗ ΑΠΟΚΑΤΑΣΤΑΣΗ ΨΥΧΟΚΟΙΝΩΝΙΚΕΣ ΘΕΡΑΠΕΥΤΙΚΕΣ ΠΡΟΣΕΓΓΙΣΕΙΣ Δημήτρης Φουσκάκης, Επίκουρος Καθηγητής, Τομέας Μαθηματικών, Σχολή Εφαρμοσμένων

Διαβάστε περισσότερα

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΦΩΤΙΑ ΗΣ Α. ΗΜΗΤΡΗΣ M.Sc. ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ ΙΑΚΟΠΕΣ (INTERRUPTS) ΟΙ ΙΑΚΟΠΕΣ ΕΙΝΑΙ «ΣΥΜΒΑΝΤΑ», ΕΣΩΤΕΡΙΚΑ

Διαβάστε περισσότερα

Writing kernels for fun and profit

Writing kernels for fun and profit Writing kernels for fun and profit Γιάννης Τσιομπίκας nuclear@memberfsforg 23 Μαρτίου 2011 Γιατί; It s FUN! Εξοικείωση με το hardware Εμβάθυνση στον θαυμαστό κόσμο των λειτουργικών συστημάτων Μια καλή

Διαβάστε περισσότερα

ΠαράδειγµαΠρογραµµατισµού

ΠαράδειγµαΠρογραµµατισµού Προγραµµατισµός Η/Υ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Μεθοδολογία Προγραµµατισµού Αφαιρετικότητα Ροή Ελέγχου/ εδοµένων Βιβλίο µαθήµατος: Chapter 1,, Sec. 4-54 ΕΠΛ 131 Αρχές Προγραµµατισµού

Διαβάστε περισσότερα

1.2 Εξισώσεις 1 ου Βαθμού

1.2 Εξισώσεις 1 ου Βαθμού 1.2 Εξισώσεις 1 ου Βαθμού Διδακτικοί Στόχοι: Θα μάθουμε: Να κατανοούμε την έννοια της εξίσωσης και τη σχετική ορολογία. Να επιλύουμε εξισώσεις πρώτου βαθμού με έναν άγνωστο. Να διακρίνουμε πότε μια εξίσωση

Διαβάστε περισσότερα

Διάλεξη 17: Έλεγχος Λογισμικού

Διάλεξη 17: Έλεγχος Λογισμικού Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 17: Έλεγχος Λογισμικού (Κεφάλαιο 24.1-24.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 17-1 Μεγάλης

Διαβάστε περισσότερα

ΜΕΤΑ-ΑΝΑΛΥΣΗ (Meta-Analysis)

ΜΕΤΑ-ΑΝΑΛΥΣΗ (Meta-Analysis) ΚΕΦΑΛΑΙΟ 23 ΜΕΤΑ-ΑΝΑΛΥΣΗ (Meta-Analysis) ΕΙΣΑΓΩΓΗ Έχοντας παρουσιάσει τις βασικές έννοιες των ελέγχων υποθέσεων, θα ήταν, ίσως, χρήσιμο να αναφερθούμε σε μια άλλη περιοχή στατιστικής συμπερασματολογίας

Διαβάστε περισσότερα

Κατασκευή προγράμματος για επίλυση Φυσικομαθηματικών συναρτήσεων

Κατασκευή προγράμματος για επίλυση Φυσικομαθηματικών συναρτήσεων Κατασκευή προγράμματος για επίλυση Φυσικομαθηματικών συναρτήσεων Ιωάννης Λιακόπουλος 1, Χαράλαμπος Λυπηρίδης 2 1 Μαθητής B Λυκείου, Εκπαιδευτήρια «Ο Απόστολος Παύλος» liakopoulosjohn0@gmail.com, 2 Μαθητής

Διαβάστε περισσότερα

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 6 Λογισμικό Εφαρμογών Καραμαούνας Πολύκαρπος 1 Λογισμικό Εφαρμογών (application software) Είναι όλα τα προγράμματα που μετατρέπουν τον ΗΥ σε εξειδικευμένο μηχάνημα για συκεκριμένες εργασίες. Περιέχει

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Κατακερματισμός Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Λεξικό Dictionary Ένα λεξικό (dictionary) είναι ένας αφηρημένος τύπος δεδομένων (ΑΤΔ) που διατηρεί

Διαβάστε περισσότερα

Θεωρία Υπολογισμού και Πολυπλοκότητα

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 10. Μηχανές Turing 20,23 Μαρτίου 2007 Δρ. Παπαδοπούλου Βίκη 1 Μηχανές Turing: Ένα Γενικό Μοντέλο Υπολογισμού Ποια μοντέλα υπολογισμού μπορούν να δεχθούν γλώσσες

Διαβάστε περισσότερα