Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Java

Πώς να γράψετε το Υπερχείλιση Buffer σε Java

James Gosling της Sun Microsystems ανέπτυξε τη γλώσσα προγραμματισμού Java , το 1995 . Πρόκειται για ένα γενικής χρήσης C + + που προέρχονται γλώσσα που χρησιμοποιείται σε πολλές ιστοσελίδες με τη μορφή των μικροεφαρμογών και servlets που επεκτείνουν τη λειτουργικότητα των web servers. Η υπερχείλιση είναι ένα σφάλμα προγραμματισμού , ακούσια ή μη, που ξεκινά γράφοντας σε γειτονικά κύτταρα μνήμης , η οποία κανονικά δεν αναγνωρίζονται για λόγους ασφαλείας . Η Java είναι συνήθως κάπως ασφαλής από υπερχείλιση επειδή έχει " έλεγχο όρια ", το οποίο δημιουργεί αυτόματα εξαιρέσεις , που εξασφαλίζει ο κωδικός δεν μπορεί τυχαία πρόσβαση μη εξουσιοδοτημένων δίπλα μνήμη . Ωστόσο, η διοικητική πρόσβαση στον εξυπηρετητή Java μπορεί να αναγκάσει Java για να τρέξει εξωτερική κώδικα που μπορεί να αναγκάσει υπερχείλιση . Οδηγίες
Η 1

Πρόσβαση σε εφαρμογές Java Native Interface ( JNI ) σχετικά με την Java Virtual Machine τρέχει JavaScript . Αυτός είναι ο μόνος τρόπος για να προκαλέσει υπερχείλιση μνήμης στη Java , με την εισαγωγή του εξωτερικού , μη διαχειριζόμενο κώδικα , όπως στην C + + . 2

Ανοίξτε ή δημιουργήστε ένα νέο σενάριο στη βάση δεδομένων . Δημιουργώντας ένα αυτόνομο σενάριο είναι καλύτερο να απομονώσει το σενάριο υπερχείλιση , ώστε να μπορείτε εύκολα να αναιρέσετε την επίδραση που προκαλεί
εικόνων 3

Επικολλήστε αυτό το σενάριο : .

Char buf [ 64 ] , στην [ MAX_SIZE ] ? printf ("Δώστε το περιεχόμενο buffer : \\ n" ) ? διαβάσει ( 0 , στην , MAX_SIZE - 1 ) ? printf ( " Bytes να αντιγράψετε : \\ n" ) ? scanf ( "% d " ? , & bytes ) ? memcpy ( buf , στην , bytes) ?

συνέχεια να τρέξει . Στο πρόγραμμα περιήγησης , θα πρέπει να ζητηθεί " Bytes να αντιγράψετε " και εισάγετε έναν αυθαίρετα μεγάλο αριθμό . Αυτό το παράδειγμα κώδικα στηρίζεται στην εισαγωγή από το χρήστη για να προκαλέσει την υπερχείλιση .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα