Επόμενο Προηγούμενο Περιεχόμενα
Βασική προϋπόθεση για την επιτυχία μιας προσπάθειας στο
RCE είναι η γνώση των εργαλείων που υπάρχουν, των
λεγόμενων tools of the trade. Τα εργαλεία χωρίζονται σε
δύο βασικές κατηγορίες ανάλογα με την προσέγγιση που
χρησιμοποιούν. Από τη μία υπάρχουν τα εργαλεία που
επιτρέπουν την παρακολούθηση της δυναμικής εκτέλεσης του
κώδικα και αποτελούν την live προσέγγιση. Τέτοια εργαλεία
είναι οι debuggers με πιo χαρακτηριστικά παραδείγματα το
πραγματικά πανίσχυρο Numega Softice για Windows και το
περιβόητο :) GDB για το linux. Από την άλλη υπάρχουν
εργαλεία που παρουσιάζουν τον κώδικα σε στατική μορφή
(dead listing). Αυτά είναι disassemblers όπως w32Dasm,
IDA (τρέχει σε windows αλλά υποστηρίζει και ELF-linux
εκτελέσιμα) και biew, ldasm (linux). Στο linux οι
περισσότεροι disassemblers είναι scripts που
χρησιμοποιούν την έξοδο του objdump, που περιέχεται στα
binutils. Τέλος αξίζει να αναφερθούμε σε μια υβριδική
κατηγορία εργαλείων τα οποία εγώ ονομάζω undead. Αυτά
παρουσιάζουν την δυναμική εκτέλεση του κώδικα αλλά δεν
δίνουν τη δυνατότητα τροποποίησης της εξέλιξης του.
Συνήθως οι πληροφορίες που δίνουν είναι πιο υψηλού
επιπέδου από assembly. Παράδειγμα τέτοιου εργαλείου είναι
το strace που καταγράφει τα system calls που κλήθηκαν από
ένα πρόγραμμα.
Επόμενο Προηγούμενο Περιεχόμενα