Η περιέργεια είναι μια θεμέλια λειτουργία του ανθρώπινου νου. Τόσο θεμέλια που χωρίς αυτήν πολλά σύγχρονα επιστημονικά επιτεύγματα δεν θα είχαν πραγματωθέι ποτέ. Αποτελεί ευχή και κατάρα του ανθρώπινου είδους, μια αρετή που μπορεί να σε φέρει σε φαντασμαγορικές ανακαλύψεις μα και καταστροφικές καταστάσεις.
Ο πύθωνας, αν και ονομασμένος έτσι χάρη στους Monty Python, είναι μια φανταστική γλώσσα προγραμματισμού. Ένα jack of all trades μα όχι και master of none. Ναι, ίσως είναι λιγάκι basic αν δεν χρησιμοποιήσεις όλες τα modules αλλά ποια γλώσσα δεν είναι; Με τα modules η Python πραγματικά γίνεται master of all trades.
Αυτή είναι και η περίπτωσή μας, δηλαδή το να χρησιμοποιήσουμε την Python για ένα keylogger χωρίς να χρειαστεί να πειράξουμε πολύ τα Windows ή να γνωρίζουμε καλά το low-level τρόπο λειτουργίας τους.
Καταρχάς, ας ξεκαθαρίσουμε κάτι. Ακολουθόντας τη γραμμή όλων όσων προσπαθούν με εκπαιδευτικά άρθρα να μυήσουν όλο και περισσότερους ανθρώπους στο κόσμο του software engineering και του hacking, θέλω να δηλώσω το εξής: hack for learning, not hacking.
Εν ολίγοις, οι γνώσεις που θα πάρετε, θα ήμουν περήφανος αν τις χρησιμοποιήσετε μονάχα για να μάθετε μερικά πράγματα σχετικά με τη συγκεκριμένη τεχνική και την νοοτροπία χρήσης της Python.
But, let's get started...
Βήμα 1ο: Εγκατάσταση της Python στο σύστημα που θα εργαστούμε
Κατεβάζουμε το επίσημο αρχείο εγκατάστασης της Python από το website ή τρέχουμε την κατάλληλη εντολή εγκατάστασης από το τερματικό μας εάν βρισκόμαστε σε -UNIX σύστημα. (να σημειωθεί πως το συγκεκριμένο keylogger θα δουλέψει μονάχα σε λειτουργικό σύστημα Windows μιας και ο τρόπος προγραμματισμού του είναι τέτοιος ώστε να αλληλεπιδρά μονάχα με το εξής σύστημα. Από την άλλη, μπορεί να προγραμματιστεί σε οποιδήποτε σύστημα διαθέτει έναν απλό text editor)
Βήμα 2ο: Κατεβάζουμε και εγκαθιστούμε τα απαρραίτητα modules
Καθώς για να μπορέσουμε να αλληλεπιδράσουμε με το λειτουργικό σύστημα του υπολογιστή θα χρειαστούμε "εξωτερική" βοήθεια είναι καλό να κατεβάσουμε από τώρα τα απαρραίτητα modules. Αυτά είναι τα PyWin32 και PyHook και μπορούμε να τα βρούμε στην εξής ιστοσελίδα.
(ΠΡΟΑΙΡΕΤΙΚΟ)Βήμα 3ο: Εγκατάσταση ενός text editor στο σύστημά μας
Παρόλο που η Python διαθέτει το δικό της text editor (ένα IDLE ουσιαστικά) και εγκαθίσταται ταυτόχρονα με την ίδια τη γλώσσα, δεν ξέρω αν είναι και ο πιο εύχρηστος τρόπος να γράψει κανείς Python. Για μένα, η χρήση του IDLE δεν είναι η καλύτερη δυνατή εμπειρία.
Έτσι προτείνω - χωρίς να έχω καμία σχέση με τη δημιουργία ή την ανάπτυξη - το Notepad++.
Βήμα 5ο: Αποθήκευση του αρχείου
Είναι πολύ σημαντικό να αποθηκεύσουμε σωστά το αρχείο του κώδικα στο δίσκο, που αποτελεί κατ'επέκταση και το εκτελέσιμο αρχείο μας. Αντί για το σύνηθες, θα σώσουμε το python αρχείο με την κατάληξη .pyw . Αυτό είναι χρήσιμο μιας και ο κώδικας θα εκτελεστεί στο παρασκήνιο, δίχως να ανοίξει κάποιο παράθυρο. Βέβαια, αν θέλουμε να προσθέσουμε στο κώδικά μας ένα μύνημα επιτυχίας στο τέλος έτσι ώστε να ξέρουμε ότι ο κώδικάς μας δούλεψε σωστά, τότε επανερχόμαστε στην αποθήκευσή του ως αρχείο .py .
The important thing is not to stop questioning. Curiosity has its own reason for existing. -Albert EinsteinΗ Python είναι μια γλώσσα που πρωτογνώρισα αρκετά νωρίς στα βήματα μου στο κόσμο της πληροφορικής. Ένα software που χρησιμοποιούσα παλαιότερα για αν φτιάχνω τα particle effects στα βίντεο Doctor Who που δημιουργούσα ήταν το Particle Illusion. Το συγκεκριμένο διέθετε μια φανταστική scripting engine στην Python με την οποία μπορούσες να παραμετροποιήσεις το core λογισμικό και να το φέρεις πραγματικά στα μέτρα σου. Έτσι στα 13 μου και εγώ, μην έχοντας ιδέα τι εστί γλώσσα προγραμματισμού ξεκίνησα να μαθαίνω την Python μέσα από το Particle Illusion, νομίζοντας πως είναι απλά κάτι ακόμα που πρέπει να μάθω για να με κάνω time lord, ωσάν τον Δόκτορα από το BBC.
Ο πύθωνας, αν και ονομασμένος έτσι χάρη στους Monty Python, είναι μια φανταστική γλώσσα προγραμματισμού. Ένα jack of all trades μα όχι και master of none. Ναι, ίσως είναι λιγάκι basic αν δεν χρησιμοποιήσεις όλες τα modules αλλά ποια γλώσσα δεν είναι; Με τα modules η Python πραγματικά γίνεται master of all trades.
Αυτή είναι και η περίπτωσή μας, δηλαδή το να χρησιμοποιήσουμε την Python για ένα keylogger χωρίς να χρειαστεί να πειράξουμε πολύ τα Windows ή να γνωρίζουμε καλά το low-level τρόπο λειτουργίας τους.
Καταρχάς, ας ξεκαθαρίσουμε κάτι. Ακολουθόντας τη γραμμή όλων όσων προσπαθούν με εκπαιδευτικά άρθρα να μυήσουν όλο και περισσότερους ανθρώπους στο κόσμο του software engineering και του hacking, θέλω να δηλώσω το εξής: hack for learning, not hacking.
Εν ολίγοις, οι γνώσεις που θα πάρετε, θα ήμουν περήφανος αν τις χρησιμοποιήσετε μονάχα για να μάθετε μερικά πράγματα σχετικά με τη συγκεκριμένη τεχνική και την νοοτροπία χρήσης της Python.
But, let's get started...
Βήμα 1ο: Εγκατάσταση της Python στο σύστημα που θα εργαστούμε
Κατεβάζουμε το επίσημο αρχείο εγκατάστασης της Python από το website ή τρέχουμε την κατάλληλη εντολή εγκατάστασης από το τερματικό μας εάν βρισκόμαστε σε -UNIX σύστημα. (να σημειωθεί πως το συγκεκριμένο keylogger θα δουλέψει μονάχα σε λειτουργικό σύστημα Windows μιας και ο τρόπος προγραμματισμού του είναι τέτοιος ώστε να αλληλεπιδρά μονάχα με το εξής σύστημα. Από την άλλη, μπορεί να προγραμματιστεί σε οποιδήποτε σύστημα διαθέτει έναν απλό text editor)
Βήμα 2ο: Κατεβάζουμε και εγκαθιστούμε τα απαρραίτητα modules
Καθώς για να μπορέσουμε να αλληλεπιδράσουμε με το λειτουργικό σύστημα του υπολογιστή θα χρειαστούμε "εξωτερική" βοήθεια είναι καλό να κατεβάσουμε από τώρα τα απαρραίτητα modules. Αυτά είναι τα PyWin32 και PyHook και μπορούμε να τα βρούμε στην εξής ιστοσελίδα.
(ΠΡΟΑΙΡΕΤΙΚΟ)Βήμα 3ο: Εγκατάσταση ενός text editor στο σύστημά μας
Παρόλο που η Python διαθέτει το δικό της text editor (ένα IDLE ουσιαστικά) και εγκαθίσταται ταυτόχρονα με την ίδια τη γλώσσα, δεν ξέρω αν είναι και ο πιο εύχρηστος τρόπος να γράψει κανείς Python. Για μένα, η χρήση του IDLE δεν είναι η καλύτερη δυνατή εμπειρία.
Έτσι προτείνω - χωρίς να έχω καμία σχέση με τη δημιουργία ή την ανάπτυξη - το Notepad++.
Βήμα 4ο: Ο κώδικας του keylogger
Ο κώδικας του συγκεκριμένου keylogger είναι εξαιρετικά απλός και λιτός. Η αλήθεια είναι πως εξεπλάγην όταν παλαιότερα είχα δει ένα keylogger στην Python το οποίο είχε περί τις 100 γραμμές κώδικα περισσότερες συγκριτικά με αυτό εδώ, το οποίο καταφέρνει να παρέχει την ουσιώδη λειτουργία ενός keylogger σε ελάχιστες γραμμές κώδικα. Σίγουρα, το keylogger-μεγαθήριο θα προσέφερε και άλλες λειτουργίες αλλά πραγματικά σε όσες περιστάσεις - νόμιμες - μου χρειάστηκε ένα keylogger δεν κατάφερα να τις αξιοποιήσω.
Καταρχάς, στο κώδικά μας πρέπει να εισάγουμε τις απαρραίτητες βιβλιοθήκες.
Μετά, δημιουργούμε μια μεταβλητή η οποία θα δείχνει στο αρχείο καταγραφής των keystrokes.
Δημιουργούμε τώρα τη συνάρτηση την οποία θα χρησιμοποιήσουμε ώστε να καταγράψουμε τα χτυπήματα στο πληκτρολόγιο. Για αυτή, θα χρησιμοποιήσουμε το module "logging" έτσι ώστε να το θέσουμε σε λειτουργία debugging και να του υποδείξουμε το όνομα του αρχείου καταγραφής αλλά και θα ζητήσουμε να καταγράφεται κάθε χαρακτήρας που εισάγεται από το πληκτρολόγιο και η αντιστοιχία του στο κώδικα ASCII .
Τελευταίο κομμάτι του κώδικά μας θα είναι να δημιουργήσουμε ένα hook στα Windows events μέσω του module pyHook και να αξιοποιήσουμε το module pythoncom για να αιχμαλωτίσουμε όλα τα μυνήματα πληκτρολογίου.
Βήμα 5ο: Αποθήκευση του αρχείου
Είναι πολύ σημαντικό να αποθηκεύσουμε σωστά το αρχείο του κώδικα στο δίσκο, που αποτελεί κατ'επέκταση και το εκτελέσιμο αρχείο μας. Αντί για το σύνηθες, θα σώσουμε το python αρχείο με την κατάληξη .pyw . Αυτό είναι χρήσιμο μιας και ο κώδικας θα εκτελεστεί στο παρασκήνιο, δίχως να ανοίξει κάποιο παράθυρο. Βέβαια, αν θέλουμε να προσθέσουμε στο κώδικά μας ένα μύνημα επιτυχίας στο τέλος έτσι ώστε να ξέρουμε ότι ο κώδικάς μας δούλεψε σωστά, τότε επανερχόμαστε στην αποθήκευσή του ως αρχείο .py .
Enjoy! :)
The important thing is not to stop questioning. Curiosity has its own reason for existing. Albert Einstein
Read more at: https://www.brainyquote.com/topics/curiosity
Read more at: https://www.brainyquote.com/topics/curiosity
The important thing is not to stop questioning. Curiosity has its own reason for existing. Albert Einstein
Read more at: https://www.brainyquote.com/topics/curiosity
Read more at: https://www.brainyquote.com/topics/curiosity
The important thing is not to stop questioning. Curiosity has its own reason for existing. Albert Einstein
Read more at: https://www.brainyquote.com/topics/curiosity
Read more at: https://www.brainyquote.com/topics/curiosity
The important thing is not to stop questioning. Curiosity has its own reason for existing. Albert Einstein
Read more at: https://www.brainyquote.com/topics/curiosity
Read more at: https://www.brainyquote.com/topics/curiosity
Σχόλια
Δημοσίευση σχολίου
Ευχαριστούμε για την αποψή σας! Εκτιμούμε το γεγονός πως αφιερώσατε χρόνο για να την καταθέσετε!