Αντιστροφή Endianness
Είσοδος (hex)
Έξοδος με αντιμετάθεση
Τεχνικές λεπτομέρειες
Πώς λειτουργεί το εργαλείο Αντιστροφής Endianness
Τι κάνει το εργαλείο
Το εργαλείο Swap Endianness αντιστρέφει τη σειρά των bytes μιας δεκαεξαδικής εισόδου μέσα σε ένα ρυθμιζόμενο μέγεθος λέξης (2, 4 ή 8 bytes). Προορίζεται για μετατροπή μεταξύ αναπαραστάσεων little-endian και big-endian ακεραίων σταθερού πλάτους που είναι αποθηκευμένοι ως hex, κάτι που χρειάζεται συχνά όταν εργάζεστε με δυαδικές μορφές αρχείων, πρωτόκολλα δικτύου ή εργαλεία αποσφαλμάτωσης χαμηλού επιπέδου που διαφωνούν ως προς τη σειρά των bytes.
Συνηθισμένες περιπτώσεις χρήσης για προγραμματιστές
Οι reverse engineers κανονικοποιούν hex dumps από x86 ή ARM (little-endian) και PowerPC ή MIPS (ιστορικά big-endian), ώστε να μπορούν να συγκρίνουν τιμές μεταξύ αρχιτεκτονικών. Οι μηχανικοί δικτύων μετατρέπουν ακέραιους σε host byte order σε network byte order (πάντα big-endian) πριν τους ενσωματώσουν σε καταγραφές πακέτων. Οι προγραμματιστές embedded αποσφαλματώνουν δομές που είναι αποθηκευμένες σε flash, επαναστοιχίζοντας τα bytes στη μορφή που αναμένουν τα εργαλεία ανάλυσής τους.
Μορφές δεδομένων, τύποι ή παραλλαγές
Η είσοδος δέχεται hex με ή χωρίς πρόθεμα `0x` και αυθαίρετα κενά. Η έξοδος αποδίδεται ως bytes σε πεζά δεκαεξαδικά, χωρισμένα με κενά, για σαφήνεια. Μεγέθη λέξης 2, 4 και 8 bytes αντιστοιχούν σε ακέραιους 16, 32 και 64 bit αντίστοιχα. Πολλαπλές λέξεις αντιστρέφονται ανεξάρτητα: με μέγεθος λέξης 4 bytes, το 12345678 9ABCDEF0 γίνεται 78 56 34 12 και στη συνέχεια F0 DE BC 9A.
Συνηθισμένα λάθη και οριακές περιπτώσεις
Η είσοδος πρέπει να είναι ακέραιος αριθμός bytes (ζυγός αριθμός δεκαεξαδικών ψηφίων) και ακέραιος αριθμός λέξεων (διαιρείται με το ρυθμισμένο μέγεθος λέξης σε bytes). Ασυμφωνίες μεγεθών επιστρέφουν σφάλμα αντί να γίνεται σιωπηρή αποκοπή. Το network byte order είναι πάντα big-endian, ενώ τα x86 / ARM χρησιμοποιούν little-endian — αντιστρέψτε τα bytes όταν διαβάζετε ή γράφετε ακέραιους σε wire format.
Πότε να χρησιμοποιήσετε αυτό το εργαλείο έναντι κώδικα
Χρησιμοποιήστε το εργαλείο του browser για εφάπαξ μετατροπές ενώ διαβάζετε δυαδικά dumps ή κάνετε debugging. Στον κώδικα, προτιμήστε `DataView` με ρητές σημαίες `littleEndian` σε JavaScript, `byteorder='little'|'big'` στο `int.from_bytes` της Python, `binary.LittleEndian.Uint32` στη Go ή `ntohl` / `htonl` στη C — αυτά είναι πιο σαφή ως προς την πρόθεση και αποφεύγουν round-trips μέσω hex.