Επεξεργαστής δεκαεξαδικού κώδικα. Hex editors vs. κακόβουλο λογισμικό: Επιλογή δεκαεξαδικού επεξεργαστή για ανάλυση δυαδικών αρχείων

Αφού ολοκλήρωσε τη σειρά με το άρθρο «The Best Pentester Tools», ο συντάκτης έλαβε πολλές επιστολές που ζητούσαν μια επιλογή εξαγωνικών συντακτών. Το ενδιαφέρον, φυσικά, δεν είναι η δυνατότητα επεξεργασίας δυαδικών δεδομένων, αλλά πρόσθετες δυνατότητες όπως η αυτόματη αναγνώριση δομών δεδομένων και η αποσυναρμολόγηση κώδικα. Για να κάνουμε μια επισκόπηση, ανακαλύψαμε τις απόψεις των ανθρώπων που τις περισσότερες φορές πρέπει να ασχολούνται με τέτοια εργαλεία - αναλυτές ιών. Και αυτό μας είπαν.

Οποιοσδήποτε επεξεργαστής hex σάς επιτρέπει να εξετάζετε και να τροποποιείτε ένα αρχείο σε χαμηλό επίπεδο, λειτουργώντας με bit και byte. Τα περιεχόμενα του αρχείου παρουσιάζονται σε δεκαεξαδική μορφή. Αυτή είναι η βασική λειτουργικότητα. Ωστόσο, ορισμένοι συντάκτες προσφέρουν στους χρήστες πολύ περισσότερα, επιτρέποντάς τους να καταλάβουν ακριβώς τι είναι αυτό σε αυτό το ακατανόητο σύνολο χαρακτήρων που εμφανίζεται κατά το άνοιγμα ενός αρχείου. Για να γίνει αυτό, οι συμβολοσειρές ASCII και Unicode εξάγονται αυτόματα, αναζητούνται γνωστά μοτίβα, αναγνωρίζονται βασικές δομές δεδομένων και πολλά άλλα. Υπάρχουν αρκετοί δεκαεξαδικοί επεξεργαστές, αλλά αν αποφασίσαμε να τους εξετάσουμε στο πλαίσιο της μελέτης δειγμάτων κακόβουλου λογισμικού, είναι εύκολο να επισημάνουμε μερικούς από αυτούς. Μόνο μερικά αποδεικνύονται πραγματικά χρήσιμα για την ανάλυση κακόβουλου κώδικα και την εξέταση μολυσμένων εγγράφων (ας πούμε, PDF).

McAfee FileInsight

Το FileInsight είναι ένα δωρεάν πρόγραμμα επεξεργασίας hex για Windows από την McAfee Labs. Το προϊόν, φυσικά, εκτελεί όλες τις τυπικές λειτουργίες που συνοδεύουν τέτοιο λογισμικό, προσφέροντας μια βολική διεπαφή για την προβολή και την επεξεργασία αρχείων σε δεκαεξαδικές λειτουργίες και λειτουργίες κειμένου. Αλλά αυτό είναι απλώς μια σταγόνα στον ωκεανό αν κοιτάξετε όλη τη λειτουργικότητά του. Αρχικά, το FileInsight είναι σε θέση να αναλύει τη δομή των εκτελέσιμων δυαδικών αρχείων για Windows (αρχεία PE), καθώς και των αντικειμένων OLE του Microsoft Office. Όχι μόνο αυτό, αλλά στον χρήστη προσφέρεται ένας ενσωματωμένος αποσυναρμολογητής x86. Απλώς επιλέξτε το τμήμα του αρχείου που θέλετε να προβάλετε ως αναγνώσιμο κώδικα και το FileInsight θα εμφανίσει αυτό το τμήμα ως λίστα οδηγιών συναρμολόγησης. Το disassembler είναι ιδιαίτερα χρήσιμο όταν ψάχνετε για shellcode σε κακόβουλα αρχεία. Άλλες επιλογές που θα εκτιμήσουν οι αντιστροφείς περιλαμβάνουν τη δυνατότητα εισαγωγής δηλώσεων δομής. Για να γίνει αυτό, το πρόγραμμα χρειάζεται απλώς να καθορίσει ένα αρχείο κεφαλίδας με δηλώσεις όπως:

struct ANIHeader(
DWORD cbSizeOf; // Αριθμός byte στο AniHeader
DWORD cFrames; // Αριθμός μοναδικών εικονιδίων
DWORD cSteps; // Αριθμός Blits
};

Σε αυτήν την περίπτωση, το ίδιο το πρόγραμμα θα αναλύσει τέτοιες δομές. Ωστόσο, πολλοί διαισθητικοί αλγόριθμοι για την επεξεργασία κώδικα προσφέρονται από προεπιλογή. Μιλάμε, πρώτα απ 'όλα, για την αποκωδικοποίηση πολλών μεθόδων συσκότισης (xor, add, shift, Base64, κ.λπ.) - τα ενσωματωμένα σενάρια κάνουν μια τέτοια προστασία κρυπτογράφησης ένα-δύο γροθιά. Θα πρέπει να σημειωθεί εδώ ότι το αντικείμενο της έρευνας δεν πρέπει απαραίτητα να είναι δυαδικό, μπορεί επίσης να είναι μια συνηθισμένη ιστοσελίδα που προκαλεί υποψίες. Το πρόγραμμα σάς επιτρέπει να αυτοματοποιήσετε πολλές ενέργειες χρησιμοποιώντας απλά σενάρια JavaScript ή λειτουργικές μονάδες Python, πολλές από τις οποίες έχουν ήδη γραφτεί. Δυστυχώς, με όλα τα πλεονεκτήματά του, το FileInsight έχει επίσης ένα σοβαρό μειονέκτημα, το οποίο είναι η αδυναμία επεξεργασίας μεγάλων αρχείων. Για παράδειγμα, εάν προσπαθήσετε να τροφοδοτήσετε ένα αρχείο μεγέθους 400-500 MB στο βοηθητικό πρόγραμμα, εμφανίζεται το σφάλμα "Αποτυχία ανοίγματος εγγράφου".

Hex Editor Neo

Υπάρχουν δύο εκδόσεις αυτού του επεξεργαστή hex από το λογισμικό HDD - μια απλή δωρεάν έκδοση και μια προηγμένη εμπορική έκδοση. Η επιλογή δωρεάν λογισμικού είναι ένας συμπαγής, αλλά αξιοσημείωτος επεξεργαστής HEX που έχει μια δροσερή, προσαρμόσιμη διεπαφή με υποστήριξη για διαφορετικούς συνδυασμούς χρωμάτων. ΟΧΙ πια. Αλλά η επαγγελματική έκδοση του Hex Editor Neo παρέχει πολλές χρήσιμες επιλογές που μπορεί να είναι εξαιρετικά χρήσιμες κατά την ανάλυση δυαδικών αρχείων. Για παράδειγμα, ο χρήστης έχει την ευκαιρία να αποκωδικοποιήσει κρυπτογραφημένο κώδικα χρησιμοποιώντας τους πιο συνηθισμένους αλγόριθμους. Επιπλέον, καθίσταται δυνατή η προβολή και η επεξεργασία τοπικών πόρων, όπως ροές NTFS, τοπικοί δίσκοι, μνήμη διεργασίας και RAM. Η πιο ολοκληρωμένη έκδοση περιλαμβάνει επίσης υποστήριξη για μια γλώσσα δέσμης ενεργειών, η οποία σας επιτρέπει να αυτοματοποιείτε πολλές διαδικασίες χρησιμοποιώντας σενάρια σε VBScript και JavaScript. Αλλά το καλύτερο είναι ότι έχετε στη διάθεσή σας έναν ενσωματωμένο αποσυναρμολογητή που λειτουργεί με δυαδικά αρχεία x86, x64 και .NET! Ένα άλλο χαρακτηριστικό είναι η γρήγορη δημιουργία patches με βάση τη σύγκριση δύο δυαδικών αρχείων. Ακούγεται εντυπωσιακό, αλλά είναι καλύτερο από το FileInsight; Πιθανώς όχι. Το FileInsight φαίνεται πιο λειτουργικό συνολικά. Από την άλλη πλευρά, οποιαδήποτε, ακόμη και η δωρεάν έκδοση του Hex Editor Neo λειτουργεί εξαιρετικά ακόμα και με πολύ μεγάλα αρχεία και σας επιτρέπει να αναζητάτε συμβολοσειρές ASCII και Unicode. Ο αποσυναρμολογητής εδώ δεν περιορίζεται μόνο στην πλατφόρμα x86 και ο ενσωματωμένος επεξεργαστής πόρων είναι πολύ βολικός. Υπάρχουν πολλά να σκεφτούμε.

FlexHex

Το FlexHex είναι ένα ισχυρό εμπορικό πρόγραμμα επεξεργασίας hex από τη Heaventools Software που περιλαμβάνει πολλές από τις ίδιες δυνατότητες που υπάρχουν στο Hex Editor Neo. Το μόνο που λείπει εδώ είναι, ίσως, η υποστήριξη σεναρίων. Αλλά αυτό το πρόγραμμα επεξεργασίας με πλήρεις δυνατότητες χειρίζεται εξίσου καλά δυαδικά αρχεία, αρχεία OLE, φυσικούς δίσκους και εναλλακτικές ροές NTFS. Το τελευταίο είναι ιδιαίτερα σημαντικό επειδή το FlexHex σάς επιτρέπει να επεξεργάζεστε δεδομένα που άλλοι συντάκτες μπορεί να μην βλέπουν καν. Επιπλέον, μπορείτε να νιώσετε αμέσως την εστίαση στην εργασία με μεγάλες ποσότητες πληροφοριών: ανεξάρτητα από το μέγεθος του αρχείου, η πλοήγηση σε αυτό πραγματοποιείται χωρίς καθυστερήσεις ή φρένα. Για ακόμη μεγαλύτερη ευκολία, υπάρχει ένα σύστημα βολικών σελιδοδεικτών. Ταυτόχρονα, το FlexHex διατηρεί συνεχώς ένα ιστορικό όλων των λειτουργιών - μπορείτε να ακυρώσετε οποιαδήποτε ενέργεια απλά επιλέγοντάς την από τη λίστα αλλαγών (η αναίρεση λίστας δεν περιορίζεται)! Το FlexHex υποστηρίζει όλες τις απαραίτητες λειτουργίες με δυαδικά δεδομένα, αναζητώντας συμβολοσειρές ASCII και Unicode. Εάν πρέπει να επεξεργαστείτε μια δομή με μια προηγουμένως γνωστή μορφή, η ρύθμιση των παραμέτρων της δεν είναι δύσκολη χρησιμοποιώντας ειδικά εργαλεία. Το αποτέλεσμα είναι ένας εξαιρετικός επεξεργαστής hex, αλλά εξακολουθεί να είναι πολύ κατώτερος από το FileInsight. Η μόνη αξιοσημείωτη επιλογή είναι η επεξεργασία αρχείων OLE, αλλά υπάρχουν προβλήματα και εδώ. Πολλές φορές κατά την προσπάθεια ανοίγματος ενός μολυσμένου OLE, το πρόγραμμα διακόπηκε με το σφάλμα "Το έγγραφο έχει καταστραφεί".

010 Συντάκτης

Το 010 Editor είναι ένα πολύ γνωστό εμπορικό προϊόν που αναπτύχθηκε από την SweetScape Software. Αν το συγκρίνουμε με τα προηγούμενα τρία εργαλεία, μπορεί να κάνει τα πάντα: υποστηρίζει εργασία με πολύ μεγάλα αρχεία, παρέχει ωραίες δυνατότητες για λειτουργία με δεδομένα, σας επιτρέπει να επεξεργάζεστε τοπικούς πόρους και έχει ένα σύστημα δέσμης ενεργειών για την αυτοματοποίηση ενεργειών ρουτίνας (πάνω από 140 διαφορετικές λειτουργίες στη διάθεσή σας). Και το 010 Editor έχει επίσης μια ανατροπή, ένα μοναδικό χαρακτηριστικό. Το πρόγραμμα επεξεργασίας φροντίζει όλους χάρη στη δυνατότητα ανάλυσης διαφόρων μορφών αρχείων χρησιμοποιώντας τη δική του βιβλιοθήκη προτύπων (τα λεγόμενα Binary Templates). Εδώ δεν έχει ίσο. Πολλοί λάτρεις σε όλο τον κόσμο εργάζονται πάνω σε πρότυπα, δημιουργώντας διάφορες μορφές και δομές δεδομένων. Ως αποτέλεσμα, η διαδικασία πλοήγησης σε διαφορετικές μορφές αρχείων γίνεται διαφανής και κατανοητή. Αυτό ισχύει επίσης για την επεξεργασία των δυαδικών αρχείων των Windows (αρχεία PE), των αρχείων συντομεύσεων των Windows (LNK), των αρχείων Zip, των αρχείων κλάσης Java και πολλών άλλων. Πολλοί άνθρωποι μπόρεσαν να συνειδητοποιήσουν την ομορφιά αυτής της δυνατότητας όταν ο διάσημος ειδικός ασφαλείας Didier Stevens δημιούργησε ένα πρότυπο για την ανάλυση αρχείων PDF για το 010 Editor. Μαζί με άλλα βοηθητικά προγράμματα, αυτό έχει απλοποιήσει σημαντικά την ανάλυση των μολυσμένων εγγράφων PDF, τα οποία τους τελευταίους έξι μήνες δεν έχουν πάψει να εκπλήσσουν με τον αριθμό των θέσεων από τις οποίες μπορεί να γίνει εκμετάλλευση του προγράμματος ανάγνωσης. Προσθέτουμε εδώ ένα δροσερό εργαλείο για σύγκριση δυαδικών αρχείων, μια αριθμομηχανή με σύνταξη τύπου C, μετατροπή δεδομένων μεταξύ μορφών ASCII, EBCDIC, Unicode και έχουμε ένα πολύ ελκυστικό εργαλείο με μοναδικά χαρακτηριστικά.

Hiew

Η Hiew, όσον αφορά τη μέθοδο διανομής, δεν διαφέρει πολύ από τους συναδέλφους της - αυτό είναι επίσης ένα εμπορικό προϊόν που αναπτύχθηκε από τον συμπατριώτη μας Evgeny Suslikov. Έχοντας μακρά ιστορία, το πρόγραμμα αγαπήθηκε πολύ από πολλούς ειδικούς στην ασφάλεια πληροφοριών. Υπάρχουν αρκετά προφανείς λόγοι για αυτό - ισχυρές δυνατότητες για την έρευνα και την επεξεργασία της δομής και του περιεχομένου των εκτελέσιμων αρχείων τόσο των Windows (PE) όσο και των δυαδικών αρχείων για Linux (ELF). Ένα άλλο πολύ χρήσιμο χαρακτηριστικό για την αντίστροφη μηχανική είναι ο ενσωματωμένος συναρμολογητής και αποσυναρμολογητής x86-64. Το τελευταίο υποστηρίζει ακόμη και οδηγίες ARM. Περιττό να πούμε ότι το πρόγραμμα επεξεργασίας αφομοιώνει τέλεια μεγάλα αρχεία και σας επιτρέπει να επεξεργάζεστε λογικές και φυσικές μονάδες δίσκου. Πολλές εργασίες αυτοματοποιούνται εύκολα μέσω ενός συστήματος μακροεντολών πληκτρολογίου, σεναρίων, ακόμη και ενός API για την ανάπτυξη επεκτάσεων (Hiew Extrenal Modules). Αλλά προτού βιαστείτε στη μάχη, να έχετε κατά νου ότι η διεπαφή Hiew είναι ένα παράθυρο σαν το DOS, το οποίο είναι αρκετά άβολο να εργαστείτε αν δεν το έχετε συνηθίσει. Αλλά μπορείτε να ζήσετε όλη τη γοητεία του παλιού σχολείου.

Radare

Το Radare είναι ένα σύνολο δωρεάν βοηθητικών προγραμμάτων για την πλατφόρμα Unix που παρέχουν εκπληκτικές δυνατότητες επεξεργασίας αρχείων σε λειτουργία HEX. Περιλαμβάνει τον ίδιο τον επεξεργαστή hex (radare) με τη δυνατότητα να ανοίγει τοπικά και απομακρυσμένα αρχεία. Το πρόγραμμα αναλύει εκτελέσιμα αρχεία διαφόρων μορφών, τόσο Linux (ELF) όσο και Windows (PE). Εκτός από την επεξεργασία, το πακέτο Radare περιλαμβάνει ένα εργαλείο σύγκρισης δυαδικών αρχείων (radiff) και έναν ενσωματωμένο assembler/disassembler. Και προσωπικά, ένα εργαλείο για τη δημιουργία κωδίκων κελύφους (rasc) ήταν χρήσιμο μερικές φορές. Οποιεσδήποτε λειτουργίες μπορούν εύκολα να αυτοματοποιηθούν και να προσαρμοστούν χρησιμοποιώντας ένα σύστημα σεναρίων. Από τα μειονεκτήματα, και πάλι, μπορούμε να σημειώσουμε την έλλειψη διεπαφής GUI - όλες οι ενέργειες εκτελούνται από τη γραμμή εντολών και μπορείτε να εργαστείτε πλήρως με τα βοηθητικά προγράμματα μόνο αφού διαβάσετε την τεκμηρίωση. Από την άλλη πλευρά, ο ιστότοπος διαθέτει οπτικές εκπομπές οθόνης που δείχνουν τόσο τα κύρια σημεία όσο και τα μικρά μυστικά (όπως η σύνδεση μιας προσθήκης Python).

Τι πρέπει λοιπόν να επιλέξετε;

Εξετάσαμε πολλά ισχυρά προγράμματα επεξεργασίας hex που περιλαμβάνουν χρήσιμες επιλογές για την ανάλυση ύποπτων αρχείων. Από όλα τα προϊόντα ξεχωρίζει το FileInsight, το οποίο παρ' όλη τη λειτουργικότητά του (και είναι πραγματικά εντυπωσιακό), παραμένει δωρεάν. Το 010 Editor παρέχει μεγάλο αριθμό προτύπων για την επεξεργασία μιας μεγάλης ποικιλίας αρχείων, συμπεριλαμβανομένων των εγγράφων PDF. Αυτό είναι ένα μέγα χαρακτηριστικό που δεν πρέπει να παραμεληθεί. Χρησιμοποιώ αυτούς τους δύο συντάκτες όλη την ώρα. Για τη δουλειά ενός αναλυτή, ίσως ταιριάζουν καλύτερα. Αν μιλάμε για εργασία κάτω από την πλατφόρμα Unix, τότε, φυσικά, δεν μπορούμε να ξεχάσουμε το Radare. Το πακέτο προσφέρει πολύ ισχυρές δυνατότητες, αν και είναι δύσκολο να χρησιμοποιηθεί λόγω του γεγονότος ότι εκτελείται από τη γραμμή εντολών. Το Hiew δεν είναι επίσης πολύ φιλικό, αν και οι δυνατότητές του σίγουρα σας επιτρέπουν να εκτελέσετε μια ποικιλία λειτουργιών με δυαδικά αρχεία. Επιπλέον, το Hiew είναι η επιλογή ενός μεγάλου αριθμού πραγματικών επαγγελματιών, και αυτό αξίζει πολλά (και σημαίνει πολλά). Όσο για το Hex Editor Neo, αξίζει να το παραλάβετε αν σας ενδιαφέρει η δυνατότητα αποσυναρμολόγησης κωδικών x86, x64 και .NET.

Καλημέρα σε όλους.

Για κάποιο λόγο, πολλοί άνθρωποι πιστεύουν ότι η εργασία με hex editors είναι ο τομέας των επαγγελματιών και ότι οι αρχάριοι χρήστες δεν πρέπει να τους δοκιμάσουν. Αλλά, κατά τη γνώμη μου, εάν έχετε τουλάχιστον βασικές δεξιότητες υπολογιστή και μια ιδέα για το γιατί χρειάζεστε ένα hex editor, τότε γιατί όχι;!

Χρησιμοποιώντας ένα πρόγραμμα αυτού του είδους, μπορείτε να αλλάξετε οποιοδήποτε αρχείο, ανεξάρτητα από τον τύπο του (πολλά εγχειρίδια και οδηγοί περιέχουν πληροφορίες σχετικά με την αλλαγή ενός συγκεκριμένου αρχείου χρησιμοποιώντας ένα hex editor)! Είναι αλήθεια ότι ο χρήστης πρέπει να έχει τουλάχιστον μια βασική κατανόηση του δεκαεξαδικού συστήματος (τα δεδομένα στον επεξεργαστή hex παρουσιάζονται ακριβώς σε αυτό). Ωστόσο, οι βασικές γνώσεις του διδάσκονται στα μαθήματα πληροφορικής στο σχολείο και πιθανότατα πολλοί το έχουν ακούσει και έχουν ιδέα για αυτό (επομένως δεν θα το σχολιάσω σε αυτό το άρθρο). Λοιπόν, εδώ είναι οι καλύτεροι hex editors για αρχάριους (κατά την ταπεινή μου γνώμη).

1) Δωρεάν Hex Editor Neo

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

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

Μεταξύ άλλων, το πρόγραμμα υποστηρίζει τη ρωσική γλώσσα και έχει μια καλά μελετημένη και διαισθητική διεπαφή. Ακόμη και ένας αρχάριος χρήστης θα μπορεί να το καταλάβει και να αρχίσει να εργάζεται με το βοηθητικό πρόγραμμα. Γενικά, το προτείνω σε όλους όσους ξεκινούν τη γνωριμία τους με τους hex editors.

2) WinHex

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

Στη λειτουργία επεξεργασίας δίσκων, σας επιτρέπει να εργάζεστε με: σκληρούς δίσκους, δισκέτες, μονάδες flash, DVD, δίσκους ZIP κ.λπ. Υποστηρίζει συστήματα αρχείων: NTFS, FAT16, FAT32, CDFS.

Δεν μπορώ παρά να σημειώσω τα βολικά εργαλεία για ανάλυση: εκτός από το κύριο παράθυρο, μπορείτε να συνδέσετε πρόσθετα με διάφορες αριθμομηχανές, εργαλεία για αναζήτηση και ανάλυση της δομής του αρχείου. Σε γενικές γραμμές, είναι κατάλληλο τόσο για αρχάριους όσο και για έμπειρους χρήστες. Το πρόγραμμα υποστηρίζει τη ρωσική γλώσσα ( επιλέξτε το ακόλουθο μενού: Βοήθεια / Ρύθμιση / Ρωσικά ).

Το WinHex, εκτός από τις πιο συνηθισμένες λειτουργίες του (που υποστηρίζουν παρόμοια προγράμματα), σας επιτρέπει να «κλωνοποιείτε» δίσκους και να διαγράφετε πληροφορίες από αυτούς ώστε να μην μπορεί ποτέ κανείς να τις ανακτήσει!

3) HxD Hex Editor

Ένας δωρεάν και αρκετά ισχυρός επεξεργαστής δυαδικών αρχείων. Υποστηρίζει όλες τις κύριες κωδικοποιήσεις (ANSI, DOS/IBM-ASCII και EBCDIC), αρχεία σχεδόν οποιουδήποτε μεγέθους (παρεμπιπτόντως, το πρόγραμμα επεξεργασίας επιτρέπει, εκτός από τα αρχεία, την επεξεργασία της μνήμης RAM και την απευθείας εγγραφή αλλαγών στον σκληρό δίσκο!).

Μπορείτε επίσης να σημειώσετε μια καλά μελετημένη διεπαφή, μια βολική και απλή λειτουργία αναζήτησης και αντικατάστασης δεδομένων, ένα κλιμακωτό και πολυεπίπεδο σύστημα δημιουργίας αντιγράφων ασφαλείας και επαναφοράς.

Μετά την εκκίνηση, το πρόγραμμα αποτελείται από δύο παράθυρα: στα αριστερά είναι ο δεκαεξαδικός κώδικας και στα δεξιά είναι η μετάφραση του κειμένου και τα περιεχόμενα του αρχείου.

Μεταξύ των μειονεκτημάτων, θα τονίσω την έλλειψη ρωσικής γλώσσας. Ωστόσο, πολλές λειτουργίες θα είναι ξεκάθαρες ακόμα και σε όσους δεν έχουν μάθει ποτέ αγγλικά...

4) HexCmp

HexCmp - αυτό το μικρό βοηθητικό πρόγραμμα συνδυάζει 2 προγράμματα ταυτόχρονα: το πρώτο σας επιτρέπει να συγκρίνετε δυαδικά αρχεία μεταξύ τους και το δεύτερο είναι ένας επεξεργαστής hex. Αυτή είναι μια πολύ πολύτιμη επιλογή όταν πρέπει να βρείτε διαφορές σε διαφορετικά αρχεία, βοηθώντας σας να εξερευνήσετε τις διαφορετικές δομές μιας μεγάλης ποικιλίας τύπων αρχείων.

Παρεμπιπτόντως, τα μέρη μετά τη σύγκριση μπορούν να βαφτούν σε διαφορετικά χρώματα, ανάλογα με το πού ταιριάζουν όλα και πού είναι διαφορετικά τα δεδομένα. Η σύγκριση γίνεται εν κινήσει και πολύ γρήγορα. Το πρόγραμμα υποστηρίζει αρχεία των οποίων το μέγεθος δεν υπερβαίνει τα 4 GB (αρκετά για τις περισσότερες εργασίες).

Εκτός από τη συνηθισμένη σύγκριση, μπορείτε επίσης να συγκρίνετε σε μορφή κειμένου (ή και τα δύο ταυτόχρονα!). Το πρόγραμμα είναι αρκετά ευέλικτο, σας επιτρέπει να προσαρμόσετε το συνδυασμό χρωμάτων και να καθορίσετε κουμπιά συντόμευσης. Εάν ρυθμίσετε σωστά το πρόγραμμα, μπορείτε να εργαστείτε με αυτό χωρίς καθόλου ποντίκι! Σε γενικές γραμμές, συνιστώ να το διαβάσουν όλοι οι αρχικοί «έλεγχοι» των hex editors και των δομών αρχείων.

5) Εργαστήριο Hex

Το Hex Workshop είναι ένας απλός και βολικός επεξεργαστής δυαδικών αρχείων, ο οποίος διακρίνεται κυρίως από τις ευέλικτες ρυθμίσεις και τις χαμηλές απαιτήσεις συστήματος. Χάρη σε αυτό, μπορεί να χρησιμοποιηθεί για την επεξεργασία αρκετά μεγάλων αρχείων που απλά δεν ανοίγουν ή παγώνουν σε άλλα προγράμματα επεξεργασίας.

Το πρόγραμμα επεξεργασίας έχει όλες τις πιο απαραίτητες λειτουργίες: επεξεργασία, αναζήτηση και αντικατάσταση, αντιγραφή, επικόλληση κ.λπ. Το πρόγραμμα μπορεί να εκτελεί λογικές λειτουργίες, να διεξάγει συγκρίσεις δυαδικών αρχείων, να προβάλλει και να δημιουργεί διάφορα αθροίσματα ελέγχου αρχείων, να εξάγει δεδομένα σε δημοφιλείς μορφές: rtf και html .

Ο επεξεργαστής διαθέτει επίσης έναν μετατροπέα μεταξύ δυαδικών, δυαδικών και δεκαεξαδικών συστημάτων. Σε γενικές γραμμές, ένα καλό οπλοστάσιο για έναν hex editor. Ίσως το μόνο αρνητικό είναι ότι το πρόγραμμα είναι shareware...

ΣΗΜΕΙΩΣΗ
Οι εικόνες δεν εμφανίζονται σε αυτή τη σελίδα, αλλά μπορείτε να τις βρείτε στο βιβλίο.

Αυτό που θα κάνουμε τώρα είναι, κατά την άποψή μου, πολύ ενδιαφέρον. Αυτό θα είναι το πρώτο σας πρόγραμμα σε κώδικα μηχανής (και, πιθανότατα, το μόνο))).

Το Assembly είναι μια γλώσσα χαμηλού επιπέδου, αλλά εξακολουθεί να είναι μια γλώσσα. Δοκίμασες να γράψεις πρόγραμμα σε κώδικα μηχανής; Ας το δοκιμάσουμε τώρα.

Μπορείτε να γράψετε ένα πρόγραμμα χωρίς κανένα assembler-compiler ή άλλα εργαλεία - χρησιμοποιώντας οποιονδήποτε επεξεργαστή hex (ή hex editor ή hex editor).

Ωστόσο, η ανάλυση προγραμμάτων σε ένα δεκαεξαδικό πρόγραμμα επεξεργασίας είναι πολύ χρήσιμη. Ειδικά για όσους πρόκειται να δουλέψουν με ηλεκτρονικά - εξάλλου οι μικροεπεξεργαστές δεν καταλαβαίνουν ούτε Pascal ούτε C++. Αν και υπάρχουν ειδικές συσκευές και προγράμματα που τους «εξηγούν» αυτές τις γλώσσες.

Για να ξεκινήσετε, θα χρειαστείτε ένα hex editor. Μπορείτε να χρησιμοποιήσετε ό,τι έχετε στη διάθεσή σας. Ωστόσο, θα χρησιμοποιήσω το ήδη αναφερθέν McAfee FileInsight v2.1. Μπορείτε να κατεβάσετε αυτό το hex editor δωρεάν. Όλες οι ενέργειες που περιγράφονται παρακάτω ισχύουν για αυτόν τον επεξεργαστή.

Έτσι, έχετε εγκαταστήσει έναν δεκαεξαδικό επεξεργαστή. Ας το λανσάρουμε. Κάντε κλικ στο κουμπί OPEN, βρείτε ένα από τα αρχεία COM που δημιουργήσαμε, για παράδειγμα, το debug_1.com και φορτώστε το στο πρόγραμμα επεξεργασίας.

Όταν φορτωθεί το αρχείο, θα δείτε τα ακόλουθα στον επεξεργαστή (δείτε επίσης Εικ. 1.12):

00000000 B4 02 B2 41 CD 21 CD 20 ...A.!. Μπορείτε να ανοίξετε δύο άλλα αρχεία που δημιουργήσαμε: mycode.com (δημιουργήθηκε στο emu8086) ή ATEST.COM (που δημιουργήσαμε στην ενότητα). Θα δείτε το ίδιο πράγμα. Αυτό σημαίνει ότι όλοι οι συναρμολογητές παράγουν τον ίδιο κωδικό μηχανής. Δηλαδή, οι διαφορές στο κείμενο των προγραμμάτων δεν είναι θεμελιώδεις - οφείλονται μόνο στις διαφορές των ίδιων των assemblers.

ΣΗΜΕΙΩΣΗ
Εάν στην περίπτωσή σας βλέπετε διαφορετική εικόνα, τότε είτε έχετε ανοίξει διαφορετικό αρχείο είτε το βλέπετε σε λειτουργία κειμένου. Στην τελευταία περίπτωση, κάντε κλικ στο κουμπί Προβολή ως Hex στη γραμμή εργαλείων (βλ. Εικόνα 1.12).

Τι σημαίνουν αυτοί οι αριθμοί;

Όλα είναι ξεκάθαρα με μηδενικά - αυτό είναι το πρώτο κελί μνήμης στο οποίο αναγράφεται ο αριθμός B4. Αυτός ο αριθμός θα γραφτεί στη συνέχεια στη διεύθυνση 0100h (για το αρχείο COM). Η γραμμή πρέπει να περιέχει 16 αριθμούς, καθένας από τους οποίους αποτελείται από δύο ψηφία. Οι αριθμοί γράφονται σε δεκαεξαδική μορφή. Αλλά το πρόγραμμά μας είναι μικρό - μόνο 8 byte, άρα έχουμε 8 αριθμούς.

Λοιπόν, τι είναι το B4; Αυτή είναι η εντολή - "Εισαγάγετε μια τιμή στον καταχωρητή AN." Τι τιμή εισάγουμε; Σωστό: 02 (ο επόμενος αριθμός στη γραμμή).

AX=0200 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0B72 ES=0B72 SS=0B72 CS=0B72 IP=0102 NV UP NAB7 POPL: B241 MOV DL,41 Δείτε το B241 στην τελευταία γραμμή; Ακούγεται γνωστός συνδυασμός; Αυτός είναι ο κωδικός εντολής MOV DL, 41.

Το μόνο που μένει είναι να ασχοληθούμε με τους μυστηριώδεις χαρακτήρες στο τέλος της γραμμής. Αλλά εδώ όλα είναι απλά: κάθε ψηφίο στον αριθμό αντιστοιχεί σε έναν κωδικό χαρακτήρα στον πίνακα ASCII και αυτοί οι χαρακτήρες εξάγονται με την ίδια σειρά με τα δεκαεξαδικά ψηφία. Σε αυτό το κείμενο, ορισμένοι χαρακτήρες αντικαθίστανται από τελείες (.) - αυτοί είναι απλώς κωδικοί για μη αλφαβητικούς χαρακτήρες.

Λοιπόν, τώρα ας γράψουμε και ας δημιουργήσουμε το καλά μελετημένο πρόγραμμά μας χωρίς assemblers και linkers. Ανοίξτε το πρόγραμμα επεξεργασίας, δημιουργήστε ένα νέο αρχείο (για να το κάνετε αυτό, κάντε κλικ στο κουμπί ΝΕΟ στη γραμμή εργαλείων), στη συνέχεια κάντε κλικ στο κουμπί Προβολή ως Hex και εισαγάγετε τα δεδομένα:

00000000 B4 02 B2 41 CD 21 CD 20 Αποθηκεύστε το αρχείο με το όνομα, για παράδειγμα, hex_1.com. Ολα. Το πρόγραμμα είναι έτοιμο. Τώρα μπορείτε να το λανσάρετε και να θαυμάσετε ξανά τη δημιουργία σας. Το αποτέλεσμα θα είναι το ίδιο όπως σε όλες τις προηγούμενες περιπτώσεις.

Και άλλη μια ευχάριστη έκπληξη από τον επεξεργαστή McAfee FileInsight v2.1 - έχει το δικό του disassembler! Εάν φορτώσετε ένα εκτελέσιμο αρχείο στο πρόγραμμα επεξεργασίας και επιλέξετε την καρτέλα ΑΠΟΣΥΝΘΕΣΗ στην κάτω αριστερή γωνία, μπορείτε να προβάλετε τον πηγαίο κώδικα του φορτωμένου προγράμματος στη γλώσσα συναρμολόγησης (Εικ. 1.12).

Γιατί χρειαζόμαστε καθόλου hex editors και disassemblers; Είναι τόσο δύσκολο. Ναι, δεν είναι εύκολο. Ωστόσο, οι χάκερ δεν το πιστεύουν. Είναι με τη βοήθεια hex editors και disassemblers που διακόπτουν τα προγράμματα. Βρίσκουν τα μέρη που χρειάζονται στον κώδικα και τα διορθώνουν σύμφωνα με τις ιδιοτροπίες των χάκερ.

Φυσικά, δεν είμαστε χάκερ. Δεν θα σπάσουμε προγράμματα. Ωστόσο, τα disassemblers και τα hex editors είναι πολύ χρήσιμα για τους νομοταγείς προγραμματιστές. Χρησιμοποιούνται, για παράδειγμα, για εντοπισμό σφαλμάτων, μελέτη κωδικών μηχανών κ.λπ. Για παράδειγμα, ξέρετε πώς φαίνεται μια εντολή στη γλώσσα συναρμολόγησης, αλλά θέλετε να μάθετε τον κωδικό μηχανής της. Εάν δεν υπάρχει τεκμηρίωση, τότε υπάρχει μόνο μία διέξοδος - ένας δεκαεξαδικός επεξεργαστής ή/και αποσυναρμολογητής. Ωστόσο, θα πρέπει να ληφθεί υπόψη ότι δεν ταιριάζουν όλες οι εντολές στον κώδικα μηχανής δύο αριθμών. Ορισμένες εντολές είναι αρκετά περίπλοκες και απαιτούν περισσότερους αριθμούς για να αναπαρασταθούν στον κώδικα μηχανής.

Το HxD Hex Editor είναι ένα πρόγραμμα επεξεργασίας δεδομένων με υποστήριξη για κωδικοποίηση ANCI. Η εφαρμογή χρησιμοποιεί δεκαεξαδική αναπαράσταση για οποιαδήποτε ανοιχτά αρχεία, μπορεί να λειτουργήσει με στοιχεία RAM και να αποθηκεύσει αλλαγές στον σκληρό δίσκο. Σας επιτρέπει να αναζητάτε και να αντικαθιστάτε τιμές αυτόματα ή μη αυτόματα. Περιλαμβάνει εργαλεία για την εξαγωγή δεδομένων, τη δημιουργία αθροισμάτων ελέγχου και τη διαγραφή θραυσμάτων κώδικα.

Το πρόγραμμα μπορεί να χωρίσει αρχεία σε μέρη του απαιτούμενου μεγέθους και υποστηρίζει την επεξεργασία μεγάλου όγκου πληροφοριών. Χρησιμοποιεί μια αρθρωτή διεπαφή με δυνατότητα προβολής τυπικού και δεκαεξαδικού κώδικα. Σας επιτρέπει να ακυρώσετε τυχόν αλλαγές που έγιναν, περιέχει εργαλεία πλοήγησης κατά περιβάλλον και διεύθυνση γραμμής.

Ο επεξεργαστής HEX είναι ικανός να αλληλεπιδρά με οποιονδήποτε τύπο αρχείου και μπορεί να χρησιμοποιηθεί για αναζήτηση και αντικατάσταση εκτελέσιμων τιμών εκτελούμενων διεργασιών.

Κατεβάστε την πλήρη ρωσική έκδοση του HxD Hex Editor δωρεάν από τον επίσημο ιστότοπο χωρίς εγγραφή και SMS.

Απαιτήσεις συστήματος

  • Υποστηριζόμενο λειτουργικό σύστημα: Windows 8.1, Vista, 10, 8, 7, XP
  • Βάθος bit: 64 bit, x86, 32 bit

Αυτό το άρθρο θα μιλήσει για την εργασία στο δωρεάν πρόγραμμα επεξεργασίας hex Free Hex Editor Neo, χρησιμοποιώντας το παράδειγμα της επεξεργασίας ενός αρχείου BkEnd.dllαπό την παράδοση για σωστή λειτουργία αυτού του συστήματος με .

1. Λίγα λόγια για τους επεξεργαστές hex και τα αρχεία

Όπως γνωρίζετε, κάθε αρχείο που είναι αποθηκευμένο στον σκληρό δίσκο ενός υπολογιστή είναι μια ακολουθία λέξεων μηχανής - byte. Ένα byte, με τη σειρά του, αποτελείται από 8 bit, το καθένα από τα οποία μπορεί να πάρει την τιμή "0" ή "1", που σημαίνει ότι ένα byte μπορεί να λάβει 2 8 = 256 τιμές στην περιοχή από 0 έως 255. Ο αριθμός είναι 256 10. γραμμένο στο δεκαεξαδικό σύστημα, είναι ένας στρογγυλός τριψήφιος αριθμός - 100 16, δηλαδή, για να αντιπροσωπεύει οποιονδήποτε αριθμό από το εύρος 0-255, δεν θα απαιτούνται περισσότερα από 2 ψηφία. Αυτό σημαίνει ότι είναι πολύ βολικό να γράψετε την τιμή κάθε byte ως διψήφιο αριθμό στο δεκαεξαδικό σύστημα αριθμών.

Το hex-editor μας δείχνει το αρχείο με τον τρόπο που το "βλέπει" το μηχάνημα, δηλαδή ως μια ακολουθία byte. Για παράδειγμα, ανοίγοντας ένα αρχείο στο πρόγραμμα επεξεργασίας, θα δούμε έναν πίνακα που αποτελείται από 16 στήλες και τον αριθμό των γραμμών ανάλογα με το μέγεθος του αρχείου. Κάθε τιμή μήτρας αντιστοιχεί σε ένα byte, γραμμένο ως διψήφιος δεκαεξαδικός αριθμός. Αλλάζοντας την τιμή του επιθυμητού byte, μπορούμε, ανάλογα, να αλλάξουμε το ίδιο το αρχείο.

Επιπλέον, δίπλα στον πίνακα μπορούμε να δούμε:

  • Στα αριστερά του πίνακα εμφανίζεται μια γραμμή αριθμών: κάθε γραμμή αντιστοιχεί σε έναν αριθμό που υποδεικνύει τη διεύθυνση/απόκλιση του πρώτου byte αυτής της γραμμής. Το βήμα της διεύθυνσης είναι ίσο με τον αριθμό των στηλών.
  • Ένας άλλος χάρακας εμφανίζεται στην κορυφή του πίνακα: πάνω από κάθε στήλη εμφανίζεται η μετατόπιση του byte σε αυτήν τη στήλη σε σχέση με το πρώτο byte της αντίστοιχης γραμμής. Το άθροισμα του αριθμού που αντιστοιχεί στην i -η σειρά και του αριθμού που αντιστοιχεί στην j -η στήλη είναι η διεύθυνση/μετατόπιση του byte (i;j) που βρίσκεται στη διασταύρωση της γραμμής που λήφθηκε και της στήλης που λήφθηκε.
  • Στα δεξιά του πίνακα εμφανίζονται τα ίδια δεδομένα, αλλά με διαφορετική ερμηνεία. Η πιο συνηθισμένη εναλλακτική είναι η εμφάνιση δεδομένων ως κείμενο ASCII, με byte των οποίων οι τιμές αντιστοιχούν σε μη εκτυπώσιμους χαρακτήρες που εμφανίζονται ως κουκκίδες (·). Μπορείτε επίσης να επεξεργαστείτε τιμές σε αυτήν την περιοχή.

2. Εγκαταστήστε το Free Hex Editor Neo

Για παράδειγμα, χρειάζομαι ένα byte με μετατόπιση 000d9ccaγράψτε αξία eb. Για να το κάνω αυτό, βρίσκω τη σειρά "000d9cco" και τη στήλη "0a", κάνω διπλό κλικ στο επιθυμητό κελί και εισάγω μια νέα τιμή.

Προχωρώντας παρόμοια, κάνω τις ακόλουθες αλλαγές:

  1. Για να διορθώσετε το σφάλμα" Απαιτείται MS SQL Server 6.5 + Service Pack 5a ή νεότερο!» αλλάξτε τα πεδία:
    με αντιστάθμιση 000d9ccaέννοια 83 αλλάζω σε eb
    με αντιστάθμιση 000d9ccbέννοια ε8αλλάζω σε 15
    με αντιστάθμιση 000db130έννοια 83 αλλάζω σε eb
    με αντιστάθμιση 000db131έννοια ε8αλλάζω σε 10
  2. Για να διορθώσετε το σφάλμα" Η σειρά ταξινόμησης που έχει οριστεί για τη βάση δεδομένων διαφέρει από τη σειρά του συστήματος!»:
    με αντιστάθμιση 0018a79dέννοια 75 αλλάζω σε eb
  3. Για να διορθώσετε το σφάλμα" Λανθασμένη σύνταξη κοντά στη λέξη-κλειδί "TRANSACTION"»
    Φράση ΣΥΝΑΛΛΑΓΗ ΑΝΤΙΜΕΤΩΠΙΣΗΣ %s ΜΕ TRUNCATE_ONLY, το οποίο βρίσκεται στη μετατόπιση 002856B0αντικαταστήστε με μια φράση ΑΛΛΑΓΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ %s ΣΕΤ ΑΝΑΚΤΗΣΗ ΑΠΛΗ
  4. Για να διορθώσετε το σφάλμα" Η βάση δεδομένων δεν μπορεί να ανοίξει σε λειτουργία ενός χρήστη", αλλάξτε τα πεδία:
    με αντιστάθμιση 0028549γέννοια 64 αλλάζω σε
    με αντιστάθμιση 0028549δέννοια 62 αλλάζω σε 70

Αφού γίνουν όλες οι αλλαγές, αποθηκεύστε το αρχείο κάνοντας κλικ στο " Αρχείο» — « Αποθηκεύσετε» .

Σας βοήθησε αυτό το άρθρο;



Έχετε ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: