ISO C (C99): File HexViewer

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: ISO C (C99): File HexViewer

Δημοσίευσηαπό Star_Light » 01 Μαρ 2012, 22:02

Aυτο με τις tiff εικονες που έχουν στην αρχη ιδια byte headers σε ποιο λήμμα το λεει?

Το διορθωσα αυτο στην buffer_dump
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ISO C (C99): File HexViewer

Δημοσίευσηαπό migf1 » 01 Μαρ 2012, 22:06

Star_Light έγραψε:Aυτο με τις tiff εικονες που έχουν στην αρχη ιδια byte headers σε ποιο λήμμα το λεει?...

Δες για παράδειγμα εδώ: http://www.awaresystems.be/imaging/tiff/faq.html#q3
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: ISO C (C99): File HexViewer

Δημοσίευσηαπό migf1 » 01 Μαρ 2012, 22:08

Βρήκα και την επίσημη τεκμηρίωση: http://partners.adobe.com/public/develo ... /TIFF6.pdf (δες στο Section 2: TIFF Structure)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: ISO C (C99): File HexViewer

Δημοσίευσηαπό Star_Light » 01 Μαρ 2012, 22:22

migf1 έγραψε:Βρήκα και την επίσημη τεκμηρίωση: http://partners.adobe.com/public/develo ... /TIFF6.pdf (δες στο Section 2: TIFF Structure)


Και εγω το βρηκα αυτο... τελοςπαντων παω να ριξω μια ματια στον hex editor... και μετα να κανω και καμια δοκιμη...
γιατι ακομη δεν εχω δει πραγματικα πως δουλευει ουτε τι ειναι τα πεδια του.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ISO C (C99): File HexViewer

Δημοσίευσηαπό migf1 » 01 Μαρ 2012, 22:28

Δεν είναι μόνο τα TIFF, η συντριπτική πλειοψηφία όλων των αρχείων περιέχουν συγκεκριμένα bytes στην αρχή τους, ως αναγνωριστικά του τύπου τους.

Άνοιξε για παράδειγμα στον HexView 3-4 διαφορετικά αρχεία .PDF... θα δεις πως όλα έχουν μια κοινή ακολουθία από bytes στην αρχή τους (αυτό το αναγνωρίζεις στα γρήγορα κοιτώντας πρώτα στην περιοχή που παρουσιάζει τα bytes σαν χαρακτήρες ASCII, τέρμα δεξιά ;) )
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: ISO C (C99): File HexViewer

Δημοσίευσηαπό Star_Light » 01 Μαρ 2012, 22:42

migf1 έγραψε:Δεν είναι μόνο τα TIFF, η συντριπτική πλειοψηφία όλων των αρχείων περιέχουν συγκεκριμένα bytes στην αρχή τους, ως αναγνωριστικά του τύπου τους.

Άνοιξε για παράδειγμα στον HexView 3-4 διαφορετικά αρχεία .PDF... θα δεις πως όλα έχουν μια κοινή ακολουθία από bytes στην αρχή τους (αυτό το αναγνωρίζεις στα γρήγορα κοιτώντας πρώτα στην περιοχή που παρουσιάζει τα bytes σαν χαρακτήρες ASCII, τέρμα δεξιά ;) )


Nαι ρε συ πολυ ενδιαφεροντα ολα αυτα.... για αυτο διαβαζω τωρα λιγο μπας και μαθω και τιποτα
και βοηθησουμε και σενα εννοειται.

p.s Οντως το decimal system εφευρέθηκε απο τους Πέρσες?
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ISO C (C99): File HexViewer

Δημοσίευσηαπό simosx » 01 Μαρ 2012, 22:50

Αυτά υπάρχουν στο /usr/share/file/magic.mgc εδώ και καιρό.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: ISO C (C99): File HexViewer

Δημοσίευσηαπό Star_Light » 01 Μαρ 2012, 22:59

Δηλαδη αν θελησει κάποιος να μετρήσει απο το 0 ως το 61 αλλα στο 16-δικο

τοτε ειναι αυτο εδω ->

Κώδικας: Επιλογή όλων
0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21
22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D


Αν καταλαβα καλα...

Edit: Ειναι οκ!
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ISO C (C99): File HexViewer

Δημοσίευσηαπό Star_Light » 02 Μαρ 2012, 01:39

Λοιπον επανήλθα.

Καταρχην τα θερμα μου συγχαρητηρια στον migf1 αν και ξέρουμε
τι πυραύλους μπορει να φτιάχνει κάθε φορα!!!!! Λοιπον ειναι πολυ ομορφο
και αρκετα βολικο. Το τεστάρισα με 2 δικα μου pdf's με μεγέθη 0.759Μb και 0.204Μb
αντιστοιχα. ΟΛη η 1η σειρά για τα pdf's οπως πολυ ευστοχα μου ειπε και πιο πανω ειναι ακριβως η ιδια

Κώδικας: Επιλογή όλων
25 50 44 46 2D 31 2E 37
0D 25 E2 E3 CF D3 0D 0A


btw αυτο το CF τι ειναι? :S 2 δεκαεξαδικα ψηφια με γραμματα και τα 2? :S

Έκανα το τεστακι που μου ειπε με αυτα τα 2 λοιπον οταν βάζω ]0 για την σελιδα ωστε να μετακινηθω
μου παρέχει το ιδιο αποτέλεσμα με το αν έβαζα ]1 αυτο δεν ξερω αν θα ηθελες να το διορθωσεις....

κατα τα αλλα παρολο που δοκιμασα να ζορισω το προγραμμα δεν ξεφυγε εκτος των οριων του και παντα
σταματουσε στις ακριβως τελευταιες σελιδες που δειχνει και η 1η μπαρα δηλαδη .

Μια ερωτηση .... πως θα μπορουσα να αλλαξω ενα byte μεσα στο αρχειο pdf ωστε να αλλαξω το περιεχομενο του????

οτι αλλα τεστακια θες πες μου να τα δοκιμασω και εγω... και παλι μπραβο φοβερο μαραφέτι :D
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ISO C (C99): File HexViewer

Δημοσίευσηαπό migf1 » 02 Μαρ 2012, 13:29

Star_Light έγραψε:Δηλαδη αν θελησει κάποιος να μετρήσει απο το 0 ως το 61 αλλα στο 16-δικο

τοτε ειναι αυτο εδω ->

Κώδικας: Επιλογή όλων
0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21
22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D


Αν καταλαβα καλα...

Edit: Ειναι οκ!

Όχι, δεν είναι οκ!. Το 16αδικό από το 0 μέχρι το 9 είναι ίδιο με το 10αδικό, από το 10 έως το 16 όμως χρησιμοποιεί τα γράμματα Α έως F.

Οπότε:
Κώδικας: Επιλογή όλων

10αδικό: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 61
16αδικό: 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F ... 3D

έγραψε:
Το τεστάρισα με 2 δικα μου pdf's με μεγέθη 0.759Μb και 0.204Μb
αντιστοιχα. ΟΛη η 1η σειρά για τα pdf's οπως πολυ ευστοχα μου ειπε και πιο πανω ειναι ακριβως η ιδια

Κώδικας: Επιλογή όλων

25 50 44 46 2D 31 2E 37
0D 25 E2 E3 CF D3 0D 0A


Είναι ίδια όλη η σειρά γιατί και τα 2 pdf είναι ίδιας έκδοσης. Βασικά τα 8 πρώτα bytes (αν το θυμάμαι καλά) αναγράφουν την έκδοση, π.χ "%PDF-1.2", "%PDF-1.3", κλπ ... ανάλογα τα specifications της κάθε έκδοσης του PDF τα υπόλοιπα bytes μπορεί να δίνουν κι άλλες πληροφορίες (π.χ. από ποιο πρόγραμμα δημιουργήθηκε το συγκεκριμένο pdf αρχείο, αν και τι είδους συμπίεση έχει, κλπ, κλπ.

έγραψε:btw αυτο το CF τι ειναι? :S 2 δεκαεξαδικα ψηφια με γραμματα και τα 2? :S

Αυτό είναι ο 10αδικός αριθμός 207 εκφρασμένος σε 16αδική βάση (ως 16αδικός δηλαδή). Μέσα στον HexView αν πας τον κέρσορα σε ένα byte που έχει τιμή CF θα δεις στην κάτω γραμμή της οθόνης, στο κουτάκι με την ετικέτα d:, σε ποια 10αδική τιμή αντιστοιχεί η CF... 207 όταν εκφράζεται ως unsigned 10αδικός αριθμός ή -49 όταν εκφράζεται ως signed 10αδικός. Για να βάλεις τον HexView να πάει απευθείας στο επόμενο byte που έχει μια συγκεκριμένη 16αδική τιμή, χρησιμοποιείς την εντολή αναζήτησης για byte-sequence, το ελληνικό ερωτηματικό δηλαδή. Π.χ. για να βρει το επόμενο byte με τιμή e9 πληκτρολογείς: ;e9 ... αν θες να βρεις συγκεκριμένη ακολουθία από bytes, γράφεις τις 16αδικές τιμές τους όλες μαζί, κολλητά: ;e90061 ... αυτό θα ψάξει να βρει την 1η εμφάνιση της ακολουθίας τριών bytes με 16αδικές τιμές: ε9 00 61.

Τώρα, μιας και το 207 ως ASCII code είναι μεγαλύτερο από το 127 (0 έως 127 αντιστοιχούν στους ίδιους χαρακτήρες σε όλες τις γραμματοσειρές) μπορείς να γυρίσεις τον HexViewer σε extended-ASCII mode (με το t) και να δεις σε ποιον χαρακτήρα αντιστοιχεί η κωδικοσελίδα του συστήματός σου το ASCII code 207. Μιας και στο Ubuntu η κωδικοσελίδα είναι η UTF-8 τότε πρέπει να δεις στον πίνακα αντιστοίχισης ASCII με UTF-8 ποιος είναι ο χαρακτήρας με κωδικό 0xCF (= 207)... "0χ" είναι ο συμβολισμός της C για 16αδικά νούμερα (αλλού μπορεί να συναντήσεις ένα σκέτο "h").

To UTF-8 είναι συμβατό με το ASCII στους αρχικούς χαρακτήρες, αλλά χρησιμοποιεί έως και 4 bytes για να υποστηρίξει (πάαααααααρα) πολύ περισσότερους χαρακτήρες από τους 256 που υποστηρίζει το ASCII.

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

έγραψε:
Έκανα το τεστακι που μου ειπε με αυτα τα 2 λοιπον οταν βάζω ]0 για την σελιδα ωστε να μετακινηθω
μου παρέχει το ιδιο αποτέλεσμα με το αν έβαζα ]1 αυτο δεν ξερω αν θα ηθελες να το διορθωσεις....

Εδώ υπάρχει μια αναντιστοιχία στην αναζήτηση θέσης σελίδων, συγκριτικά με την αναζήτηση θέσης γραμμών ή απλών bytes. Οι γραμμές (rows) και τα bytes θεωρούνται πως ξεκινάνε από το 0 την αρίθμησή τους, ενώ οι σελίδες από το 1. Αν δεις τις ενδείξεις στην 1η σελίδα του αρχείου, θα δεις πως για το 1ο byte και για την 1η γραμμή λέει 0, ενώ για τη σελίδα λέει 1. Επίσης, όταν αναζητάς της θέση γραμμής ή byte μπορείς να την πληκτρολογήσεις είτε ως 16αδικό αριθμό, είτε ως 8αδικό, είτε ως 10αδικό (τσέκαρε την Help screen). Ενώ όταν αναζητάς θέση σελίδας μπορείς να δώσει μόνο 10αδικό αριθμό.

Για παράδειγμα, αν θες να μεταβείς άμεσα στην 10η γραμμή, μπορείς να γράψεις οποιοδήποτε από τα παρακάτω:

Κώδικας: Επιλογή όλων

r10
r0xA
r012
10αδική, 16αδική (0χ) και 8αδική (0) βάση, αντίστοιχα.

Το ίδιο μπορείς να κάνεις και με την εντολή b που είναι για άμεση μετάβαση σε byte. Για τις σελίδες (εντολή p) μπορείς να δώσεις μόνο 10αδικό αριθμό θέσης.

Κώδικας: Επιλογή όλων

Μια ερωτηση .... πως θα μπορουσα να αλλαξω ενα byte μεσα στο αρχειο pdf ωστε να αλλαξω το περιεχομενο του????

Για αυτό χρειάζεσαι hex editor (αντί για σκέτο viewer).

ΥΓ. Ευχαριστώ για τα καλά λόγια.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι

cron