Inspect your DMG in hex.
safe · secure · no server · works offline · fast
…or just start typing at the cursor.
safe · secure · no server · works offline · fast
…or just start typing at the cursor.
Drop a .dmg and OmniViewer shows its exact bytes in a
hex view: offsets, hexadecimal and a decoded ASCII panel. Jump
to the end of the file and read the koly magic in the ASCII column,
find the <plist> property list, or scan the compressed data
fork. It reads only the bytes on screen, so it opens a multi‑gigabyte image
as readily as a small one.
Hex is where you settle questions the structural tabs can’t — a truncated download, an unexpected trailer, or whether a file is really a UDIF image at all. The same drop also lists partitions, decodes the koly trailer, and reports stats.
It’s one lens on OmniViewer’s DMG Viewer — Inspect Apple Disk Images: drop a file and every tab is one click away. OmniViewer opens every file format, entirely in your browser — no upload, no server.
No. OmniViewer is a static page with no server-side processing: your .dmg is read directly by your browser, and every tab — partitions, metadata, stats and hex — runs locally in a Web Worker. The image never leaves your computer.
Yes. OmniViewer reads the UDIF structure — the koly trailer, the property list and the blkx block map — in pure JavaScript, so it works in any modern browser on Windows, Linux, macOS or a phone. No Mac, no hdiutil, no install.
No. It inspects the image’s structure — the partitions, their sizes and their compression — without mounting the filesystem or decompressing the contents. That is deliberate: it lets you see what a .dmg contains without trusting the image enough to mount it, and it is what keeps the whole thing local and fast.
Effectively unlimited. To read an image OmniViewer needs only two small reads — the 512-byte koly trailer at the end of the file, and the property list it points at (kilobytes to a few megabytes). The multi-gigabyte data fork is never read, so a 20 GB installer opens as fast as a tiny one.
A .dmg keeps its index at the end of the file, not the front: the last 512 bytes are a fixed structure whose magic number is the ASCII string "koly". It records the UDIF version, the uncompressed sector count, the checksums, and — most importantly — where the XML property list that maps the partitions begins. OmniViewer decodes it in the METADATA tab.
Each run of sectors is stored with a method named by a four-letter code: UDZO (zlib/DEFLATE, the classic default), UDBZ (bzip2), ULFO (LZFSE, Apple’s modern default) or ULMO (LZMA), plus raw (uncompressed) and zero-fill runs that cost nothing. OmniViewer shows the mix per partition in the PARTITIONS tab, the same codes you pass to hdiutil convert.
UDIF (Universal Disk Image Format) is the modern Apple disk-image format behind the .dmg extension. .smi is a "self-mounting image" variant, .dmgpart files are segments of a split image, and .img is the older NDIF extension — OmniViewer opens all of them in the same toolkit and reads them as UDIF where the koly trailer is present.