Τι είναι ένα αρχείο OBML;
Ένα αρχείο OBML (Opera Binary Markup Language) είναι μια έκδοση εκτός σύνδεσης μιας ιστοσελίδας που έχει αποθηκευτεί από το πρόγραμμα περιήγησης ιστού Opera Mini για κινητά. Είναι μια αυτόνομη, συμπαγής έκδοση των αρχείων HTML που περιέχει όλα τα στοιχεία της σελίδας για εμφάνιση σε συγκεκριμένες συσκευές ενώ είστε εκτός σύνδεσης. Η μορφή αρχείου OBML έχει αναβαθμιστεί σε πολλές εκδόσεις με τα OBML15 και OBML16 να χρησιμοποιούνται ευρέως. Ένα σημαντικό σημείο που πρέπει να λάβετε υπόψη είναι ότι κάθε έκδοση Opera Mini είναι συμβατή μόνο με μία μορφή OBML. Έτσι, η αναβάθμιση του Opera Mini θα αφήσει τις σελίδες που είχαν αποθηκευτεί προηγουμένως ευανάγνωστες. Τα αρχεία OBML μπορούν να μετατραπούν σε HTML και PDF.
Μορφή αρχείου OBML
Η μορφή αρχείου OBML αποθηκεύεται στην αποκλειστική μορφή αρχείου της Opera και οι προδιαγραφές της μορφής αρχείου δεν είναι διαθέσιμες δημόσια. Ωστόσο, η μορφή OMBL τροποποιήθηκε αντίστροφα για την αποκωδικοποίηση της δομής της ως εξής.
Τύποι δεδομένων OBML
Σύμφωνα με τα αποτελέσματα αντίστροφης μηχανικής, το OBML χρησιμοποιεί τους ακόλουθους πρωτόγονους τύπους:
- «byte» – ανυπόγραφος ακέραιος αριθμός (1 byte)
short
– υπογεγραμμένος ακέραιος (2 byte, big-endian)- «μέσο» – υπογεγραμμένος ακέραιος (3 byte, big-endian)
blob
– { length: short, data: byte[length] }- «char» – ένα byte που περιέχει έναν χαρακτήρα ASCII
- «string» – μια μάζα που περιέχει κωδικοποιημένο κείμενο UTF-8
Κεφαλίδα OBML
header := {
(if version >= 15) {
fake_file_size: medium = 0x02d355
fake_version: byte = 16
}
file_size: medium
version: byte
page_size: coords
(if version == 16) {
unknown: byte[3] // always S\x00\x00
}
unknown: short // always -1
page_title: string
unknown: blob
page_url_base: string
page_url: url
(if version >= 15) {
unknown: byte[6]
}
(if 6 < version <= 13) {
unknown: byte[5]
}
(if version == 6) {
unknown: byte[1]
}
metadata: chunk[]
content: chunk[]
}