본문으로 건너뛰기
HWID Checker
hwidwindows튜토리얼

Windows, macOS, Linux에서 HWID 확인 방법

PowerShell, 시스템 설정 또는 터미널 명령을 사용하여 Windows, macOS, Linux에서 MachineGuid, SMBIOS UUID, 디스크 시리얼 및 기타 하드웨어 식별자를 확인하는 방법을 알아봅니다.

HWID Checker · 2026년 8월 10일 · 4 분 분량

게임, 소프트웨어 벤더 또는 IT 관리자가 HWID(하드웨어 ID)를 요청하는 경우, 먼저 어떤 식별자를 원하는지 확인하십시오. "HWID"는 Windows MachineGuid, SMBIOS UUID, 디스크 시리얼 또는 벤더 고유 복합 해시를 의미할 수 있습니다. 아래 방법은 하나의 보편적 값이 존재하는 것처럼 가장하지 않고, 각 명령이 반환하는 값을 보여줍니다.

방법 1 — 레거시 명령 프롬프트 (구형 Windows)

구형 Windows 설치에서는 wmic로 시스템 펌웨어가 제공하는 SMBIOS UUID를 표시할 수 있습니다. 현재 Windows 11 릴리스에서는 아래의 PowerShell 방법을 먼저 사용하십시오.

  1. Win + R을 누르고, cmd를 입력한 후 Enter를 누르십시오.
  2. 다음 명령을 붙여넣고 Enter를 누르십시오.
wmic csproduct get uuid
  1. 3F2504E0-4F89-41D3-9A0C-0305E82C3301과 같은 형태의 줄이 보일 것입니다. 이것이 시스템의 UUID이며, 대부분의 목적에서 HWID에 해당합니다.

Windows 11 참고: wmic는 Windows 10 21H1에서 더 이상 사용되지 않으며, 새로 설치한 Windows 11 24H2에서는 기본적으로 비활성화되어 있습니다. 명령을 사용할 수 없다면 방법 2의 PowerShell CIM 명령을 사용하십시오.

방법 2 — PowerShell CIM (현재 Windows 권장)

PowerShell의 CIM cmdlet은 wmic를 대체하며 모든 현재 Windows 버전에서 작동합니다.

Get-CimInstance Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID

기타 유용한 한 줄 명령:

# BIOS 시리얼
Get-CimInstance Win32_BIOS | Select-Object -ExpandProperty SerialNumber

# 마더보드 시리얼
Get-CimInstance Win32_BaseBoard | Select-Object -ExpandProperty SerialNumber

# 디스크 시리얼
Get-CimInstance Win32_DiskDrive | Select-Object Model, SerialNumber

# Windows MachineGuid (대부분의 라이선스 시스템이 "HWID"로 부르는 값)
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Cryptography" | Select-Object -ExpandProperty MachineGuid

방법 3 — 레지스트리 MachineGuid

대부분의 Windows 라이선스 시스템이 실제로 "HWID"로 사용하는 값은 레지스트리에 저장된 MachineGuid입니다. PowerShell 없이도 읽을 수 있습니다.

  1. Win + R을 누르고, regedit을 입력한 후 Enter를 누르십시오.
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography로 이동하십시오.
  3. MachineGuid 값을 찾으십시오 — a1b2c3d4-...와 같은 UUID 형태입니다.

또는 명령줄에서:

reg query "HKLM\SOFTWARE\Microsoft\Cryptography" /v MachineGuid

방법 4 — 장치 관리자 (그래픽, 명령줄 없음)

명령줄보다 그래픽 인터페이스를 선호하는 경우:

  1. 시작 버튼을 우클릭하고 장치 관리자를 선택하십시오.
  2. 하드웨어 범주(예: 디스크 드라이브, 네트워크 어댑터)를 펼치십시오.
  3. 장치를 우클릭하고 속성을 선택하십시오.
  4. 세부 정보 탭으로 이동하십시오.
  5. 속성 드롭다운에서 하드웨어 ID를 선택하십시오.

표시되는 값은 Windows가 인식하는 장치의 하드웨어 식별자입니다. 이는 드라이버가 장치를 매칭하는 데 사용하는 동일한 식별자이며, 라이선스 시스템도 사용할 수 있는 식별자입니다.

방법 5 — macOS 및 Linux 명령

Mac 또는 Linux 머신에서는 명령이 다르지만 마찬가지로 간단합니다.

macOS

# 하드웨어 UUID (기본 머신 식별자)
system_profiler SPHardwareDataType | grep "Hardware UUID"

# 시리얼 번호
system_profiler SPHardwareDataType | grep "Serial Number"

# MAC 주소
ifconfig en0 | grep ether

또는 모든 하드웨어 정보를 한 번에 확인:

system_profiler SPHardwareDataType

Linux

# 머신 ID (배포판 수준 식별자)
cat /etc/machine-id

# 마더보드 UUID (root 필요)
sudo dmidecode -s system-uuid

# 디스크 시리얼 번호
lsblk --nodeps -o NAME,SERIAL

# MAC 주소
ip link show | grep ether

방법 6 — 휴대용 Windows 보고서 및 복합 해시

위 명령들은 각각 한 종류의 식별자만 반환합니다. Windows와 펌웨어에서 사용 가능한 값을 포함한 단일 보고서가 필요하다면 휴대용 Windows 유틸리티를 사용하십시오.

Windows용 HWID Checker 다운로드 — 설치 프로그램이 없는 약 2.4 MB x64 실행 파일입니다. 명령 프롬프트나 PowerShell에서 실행하여 사용 가능한 식별자와 복합 SHA-256 HWID를 출력할 수 있습니다:

hwid-checker.exe -save     # 타임스탬프가 있는 .txt로 저장
hwid-checker.exe -json     # 스크립트용 JSON 출력

유틸리티는 보고서를 로컬에서 처리하며, -save를 사용할 때만 파일을 작성합니다. 누락되거나 일반적이거나 권한이 제한된 펌웨어 값은 출력에서 생략될 수 있습니다.

실제로 어떤 식별자가 필요한가요?

서로 다른 시스템이 "HWID"라는 이름으로 서로 다른 값을 요구합니다:

| 필요할 가능성이 높은 값 | 출처 | 확인 방법 | | --- | --- | --- | | UUID | SMBIOS UUID | 방법 2의 PowerShell CIM 명령 | | Windows MachineGuid | 레지스트리 | 위 방법 3 | | 복합 SHA-256 HWID | 정규화된 사용 가능 식별자 세트 | 방법 6 | | MAC 주소 | 네트워크 어댑터 | getmac 또는 Get-NetAdapter | | 디스크 시리얼 | 물리 저장 장치 | 방법 2의 PowerShell CIM 명령 |

확실하지 않은 경우 어떤 필드와 형식이 필요한지 물어보십시오. 상대방이 하나의 값만 필요로 할 때 원시 시리얼 번호가 포함된 전체 보고서를 보내지 마십시오.

자체 코드에서 HWID 읽기

머신을 식별해야 하는 소프트웨어를 개발 중이라면, 세 가지 언어로 된 최소 예시를 참고하십시오. 각 예시는 몇 가지 하드웨어 식별자를 읽어 하나의 핑거프린트로 해시합니다.

Go

package main

import (
	"crypto/sha256"
	"encoding/hex"
	"fmt"
	"os/exec"
	"strings"
)

func main() {
	uuid := powershell("(Get-CimInstance Win32_ComputerSystemProduct).UUID")
	board := powershell("(Get-CimInstance Win32_BaseBoard).SerialNumber")
	disk := powershell("(Get-CimInstance Win32_DiskDrive | ForEach-Object { $_.SerialNumber }) -join ','")

	combined := strings.Join([]string{uuid, board, disk}, "|")
	hash := sha256.Sum256([]byte(combined))
	fmt.Println(hex.EncodeToString(hash[:]))
}

func powershell(command string) string {
	out, _ := exec.Command("powershell", "-NoProfile", "-Command", command).Output()
	return strings.TrimSpace(string(out))
}

C# (.NET)

using System.Management;
using System.Security.Cryptography;
using System.Text;

string cpu = new ManagementObjectSearcher("SELECT ProcessorId FROM Win32_Processor")
    .Get().Cast<ManagementObject>().First()["ProcessorId"].ToString();
string board = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BaseBoard")
    .Get().Cast<ManagementObject>().First()["SerialNumber"].ToString();
string disk = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_DiskDrive")
    .Get().Cast<ManagementObject>().First()["SerialNumber"].ToString();

string combined = $"{cpu}-{board}-{disk}";
byte[] hash = SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(combined));
Console.WriteLine(Convert.ToHexString(hash));

참고: System.Management은 .NET Core 3.1+ 및 .NET 5+에서 System.Management NuGet 패키지가 필요합니다.

Python

import subprocess, hashlib

def powershell(command):
    result = subprocess.run(
        ["powershell", "-NoProfile", "-Command", command],
        capture_output=True, text=True, check=True
    )
    return result.stdout.strip()

uuid = powershell("(Get-CimInstance Win32_ComputerSystemProduct).UUID")
board = powershell("(Get-CimInstance Win32_BaseBoard).SerialNumber")
disk = powershell("(Get-CimInstance Win32_DiskDrive | % SerialNumber) -join ','")

fingerprint = hashlib.sha256(f"{uuid}|{board}|{disk}".encode()).hexdigest()
print(fingerprint)

CPU ProcessorId 참고: wmic cpu get ProcessorId(또는 CPUID 명령)가 반환하는 값은 CPU의 제조사, 제품군, 모델 및 스테핑을 인코딩한 것이며, 칩마다 고유한 시리얼이 아닙니다. 같은 모델의 두 CPU는 동일한 ProcessorId를 반환합니다. 복합 핑거프린트의 한 컴포넌트로는 유용하지만, 단독으로 머신을 고유하게 식별하기에는 충분하지 않습니다.

프로덕션 시스템은 일반 시리얼, 권한, 가상 머신, 정규화 및 정당한 하드웨어 변경도 처리해야 합니다. Windows CLI 소스 및 빌드 지침은 프로젝트 저장소를 참조하십시오.

누군가 보낸 HWID를 확인하고 싶으신가요?

이미 HWID 문자열을 가지고 있고 어떤 형식인지, 유효한지, 목록과 대조하고 싶다면 온라인 HWID 체커에 붙여넣으십시오. 브라우저에서 완전히 실행되며 아무것도 업로드되지 않습니다.