Skip to content

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

.dat file signature | application/octet-stream

Microsoft® Windows® User State Migration Tool (USMT).USMT 3.0applies to Windows XP and Windows Vista®, andUSMT 4.0is for Windows 7.

Safe

Magic Bytes

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

Sources: Wikipedia, Gary Kessler

All Known Signatures

27 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
6F 3C 0 Gary Kessler
6F 70 64 61 74 61 30 31 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
CE BD AF FF FF 0 Gary Kessler
CE BD AF FF FF FF 0 Gary Kessler
CE BD AF FF FF 0F FF FF FF 0F 0 Gary Kessler
CE BD AF FF FF 0F FF FF FF FF 0 Gary Kessler
F9 BE B4 D9 0 Gary Kessler

Extension

.dat

MIME Type

application/octet-stream

Byte Offset

0

Risk Level

Safe

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).USMT 3.0applies to Windows XP and Windows Vista®, andUSMT 4.0is for Windows 7.

What are the magic bytes for .dat files?

The magic bytes for Microsoft® Windows® User State Migration Tool files are 50 4D 4F 43 43 4D 4F 43 at byte offset 0. These bytes uniquely identify the file format regardless of the file extension.

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.