Skip to content

Microsoft® Windows® User State Migration Tool magic bytes (.dat)

.dat file signature: 50 4D 4F 43 43 4D 4F 43 | application/octet-stream

Microsoft Windows User State Migration Tool (USMT) is a file format associated with Microsoft’s USMT utilities for capturing and restoring user state data during system migrations. It is used to transfer user profiles, settings, and application data between Windows installations, especially in enterprise deployment and upgrade scenarios. The format is generally safe and historically tied to older Windows versions, including Windows XP, Vista, and Windows 7.

Safe

Magic Bytes

Offset 0
50 4D 4F 43 43 4D 4F 43

Sources: Wikipedia, Gary Kessler

All Known Signatures

21 signature variants are documented for .dat files across multiple sources.

Hex Signature Offset Sources
50 4D 4F 43 43 4D 4F 43 0 Wikipedia, Gary Kessler
72 65 67 66 0 Wikipedia, Gary Kessler
00 00 00 00 62 31 05 00 09 00 00 00 00 20 00 00 00 09 00 00 00 00 00 00 8 Gary Kessler
1A 52 54 53 20 43 4F 4D 50 52 45 53 53 45 44 20 49 4D 41 47 45 20 56 31 2E 30 1A 0 Gary Kessler
41 56 47 36 5F 49 6E 74 65 67 72 69 74 79 5F 44 61 74 61 62 61 73 65 0 Gary Kessler
43 52 45 47 0 Gary Kessler
43 6C 69 65 6E 74 20 55 72 6C 43 61 63 68 65 20 4D 4D 46 20 56 65 72 20 0 Gary Kessler
45 52 46 53 53 41 56 45 44 41 54 41 46 49 4C 45 0 Gary Kessler
49 6E 6E 6F 20 53 65 74 75 70 20 55 6E 69 6E 73 74 61 6C 6C 20 4C 6F 67 20 28 62 29 0 Gary Kessler
4E 41 56 54 52 41 46 46 49 43 0 Gary Kessler
50 45 53 54 0 Gary Kessler
50 4E 43 49 55 4E 44 4F 0 Gary Kessler
52 41 5A 41 54 44 42 31 0 Gary Kessler
52 49 46 46 0 Gary Kessler
55 46 4F 4F 72 62 69 74 0 Gary Kessler
57 4D 4D 50 0 Gary Kessler
73 6C 68 21 0 Gary Kessler
73 6C 68 2E 0 Gary Kessler
A9 0D 00 00 00 00 00 00 0 Gary Kessler
BE BA FE CA 0F 50 61 6C 6D 53 47 20 44 61 74 61 0 Gary Kessler
F9 BE B4 D9 0 Gary Kessler

Validation Code

How to validate .dat files in Python

Python
def is_dat(file_path: str) -> bool:
    """Check if file is a valid DAT by magic bytes."""
    signature = bytes([0x50, 0x4D, 0x4F, 0x43, 0x43, 0x4D, 0x4F, 0x43])
    with open(file_path, "rb") as f:
        return f.read(8) == signature

How to validate .dat files in Node.js

Node.js
function isDAT(buffer: Buffer): boolean {
  const signature = Buffer.from([0x50, 0x4D, 0x4F, 0x43, 0x43, 0x4D, 0x4F, 0x43]);
  return buffer.subarray(0, 8).equals(signature);
}

How to validate .dat files in Go

Go
func IsDAT(data []byte) bool {
    signature := []byte{0x50, 0x4D, 0x4F, 0x43, 0x43, 0x4D, 0x4F, 0x43}
    if len(data) < 8 {
        return false
    }
    return bytes.Equal(data[:8], signature)
}

API Endpoint

GET /api/v1/dat
curl https://filesignature.org/api/v1/dat

See the full API documentation for all endpoints and parameters.

Frequently Asked Questions

What is a .dat file?

A .dat file is a Microsoft® Windows® User State Migration Tool file. Microsoft Windows User State Migration Tool (USMT) is a file format associated with Microsoft’s USMT utilities for capturing and restoring user state data during system migrations. It is used to transfer user profiles, settings, and application data between Windows installations, especially in enterprise deployment and upgrade scenarios. The format is generally safe and historically tied to older Windows versions, including Windows XP, Vista, and Windows 7.

What are the magic bytes for .dat files?

The magic bytes for Microsoft® Windows® User State Migration Tool (.dat) files are 50 4D 4F 43 43 4D 4F 43 at byte offset 0. These bytes identify the file format more reliably than the extension alone.

How do I validate a .dat file?

To validate a .dat file, read the first bytes of the file and compare them against the known magic bytes (50 4D 4F 43 43 4D 4F 43) at offset 0. This is more reliable than checking the file extension alone, as extensions can be renamed.

What is the MIME type for .dat files?

There is no officially registered MIME type for .dat files. Systems typically use application/octet-stream as a generic fallback when handling this format.

Is it safe to open .dat files?

Microsoft® Windows® User State Migration Tool (.dat) files are generally safe to open. They are classified as low risk because they primarily contain data rather than executable code. However, always ensure files come from a trusted source.