.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바이트)short– 부호 있는 정수(2바이트, 빅엔디안)medium– 부호 있는 정수(3바이트, 빅 엔디안)blob– { length: short, data: byte[length] }char– ASCII 문자를 포함하는 바이트string– UTF-8로 인코딩된 텍스트를 포함하는 blob
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[]
}