파일 및 페이지

다중 계층 디코더

로컬에서 실행신규

도구 자체는 영어로 되어 있지만, 이 페이지에서는 귀하의 언어로 설명해 드립니다.

다중 계층 디코더을(를) 사용하세요

기능

인코딩되거나 난독화된 텍스트를 붙여 넣으면 디코더가 각 단계를 보여 주면서 읽을 수 있는 텍스트나 알려진 파일 형식이 남을 때까지 계층을 하나씩 벗깁니다. 모든 처리는 브라우저에서 이루어집니다.

이 서비스는 전적으로 브라우저에서 실행되며, 사용자가 입력한 내용은 전혀 업로드되지 않습니다.

다중 계층 디코더 사용 방법

  1. 인코딩된 텍스트 붙여 넣기. 스크립트에서 나온 Base64 덩어리, 긴 16진수 문자열, 퍼센트 인코딩된 텍스트 또는 String.fromCharCode 목록을 Encoded text에 붙여 넣습니다.
  2. 디코딩. Decode layers 또는 Ctrl+Enter를 누릅니다. 인식된 계층을 최대 12개까지 차례로 벗깁니다.
  3. 계층 순서 읽기. 맨 위 줄에 계층이 순서대로 나열됩니다. 각 단계에는 방법, 전후 크기, 미리 보기가 표시됩니다.
  4. 결과 활용. 디코딩된 텍스트를 복사하거나 Indicators in the result를 읽거나, Send to로 HTML Attachment Analyzer, Link Unwrapper, IOC Converter, URL Defanger에 넘깁니다.
  5. 직접 단계 진행. 계층을 놓쳤다면 Decode as에서 방법을 골라 적용합니다. Undo last layer는 한 단계 되돌립니다.

예시

gzip을 Base64로 인코딩한 뒤 URL 인코딩한 문자열

입력
H4sIAAAAAAACA7MpTi7KLCixK8%2FMS8kv18vJT04syczP08soSk1TsFVQyigpKSi20tdPrUjMLchJ1UvOz9UvSy3KTKu0L04tLgYqtTVPM05UsrbRh5oEACvqcc1SAAAA
출력 결과 (2026-10-20에 캡처됨)
3 layers: URL percent-encoding → Base64 → gzip

No further encoding recognised.

1
URL percent-encoding
1 escape · 130 → 128 bytes
H4sIAAAAAAACA7MpTi7KLCixK8/MS8kv18vJT04syczP08soSk1TsFVQyigpKSi20tdPrUjMLchJ1UvOz9UvSy3KTKu0L04tLgYqtTVPM05UsrbRh5oEACvqcc1SAAAA
2
Base64
decodes to gzip · 128 → 96 bytes
00000000  1f 8b 08 00 00 00 00 00  02 03 b3 29 4e 2e ca 2c  |...........)N..,|
00000010  28 b1 2b cf cc 4b c9 2f  d7 cb c9 4f 4e 2c c9 cc  |(.+..K./...ON,..|
00000020  cf d3 cb 28 4a 4d 53 b0  55 50 ca 28 29 29 28 b6  |...(JMS.UP.())(.|
… 48 more bytes
3
gzip
96 → 82 bytes
<script>window.location.href = "hxxps://example[.]com/verify?session=7f3a";</script>
Result

Text, 82 bytes.

<script>window.location.href = "hxxps://example[.]com/verify?session=7f3a";</script>

Indicators in the result (1)
URL
hxxps://example[.]com/verify?session=7f3a
Copy indicators (raw)

세 계층입니다. URL 퍼센트 인코딩(%2F), gzip 데이터로 디코딩되는 Base64, 그리고 gzip 자체이며, 마지막에는 브라우저를 https://example.com/verify로 보내는 스크립트가 남습니다.

검증 대상

신호그 의미는 무엇인가
계층 순서인코딩이 순서대로 나열됩니다. 예: Hex → Base64. 짧은 URL이나 명령을 여러 계층이 감싸고 있다면 대개 누군가 그것을 숨기려 했다는 뜻입니다.
단계별 크기각 계층의 입력과 출력 바이트 수입니다. gzip이나 deflate 계층에서 크기가 크게 늘어나는 것은 일반적인 압축 해제입니다.
UTF-16LE 텍스트문자당 2바이트로, PowerShell -EncodedCommand에서 전형적입니다. 디코딩된 명령이 무언가를 다운로드하거나 실행한다면 위험 신호입니다.
바이너리 결과최종 결과가 텍스트가 아니면 처음 512바이트의 16진수 덤프와 감지된 형식이 표시됩니다. 16진수나 Base64로 복사하되 절대 실행하지 마세요.
Indicators in the result디코딩된 텍스트에서 찾은 URL, 이메일 주소, IPv4 주소가 디팽되어 표시되며, 원본 그대로 복사하는 버튼이 있습니다.
중지 메시지더 이상 인식되는 인코딩이 없거나, 12개 계층 한도에 이르렀거나, 다음 단계가 이전 결과를 반복하는 경우입니다. 한도에 이르렀다면 계층이 더 있을 수 있습니다.
디팽 옵션기본으로 켜져 있어 결과 속 URL과 이메일 주소가 디팽되어 표시됩니다. Copy는 항상 원본 텍스트를 복사합니다.
계속 벗기기 옵션Decode as로 직접 한 단계를 진행한 뒤에도, 선택을 해제하지 않는 한 디코딩이 자동으로 계속됩니다.
Decode as 목록자동 처리가 건너뛴 단계를 위한 Base64, URL-safe Base64, 16진수, URL 퍼센트 인코딩, HTML 엔티티, 이스케이프, 문자 코드, quoted-printable, gzip, zlib, raw deflate, UTF-16LE입니다.
복사 버튼Copy는 디코딩된 텍스트를 원본 그대로 복사합니다. 바이너리 결과에는 대신 Copy as hex와 Copy as Base64가 제공됩니다.

더 많은 예시

RFC 4648 테스트 벡터

입력
Zm9vYmFy
결과

1개 계층: Base64, 8 → 6바이트. 결과는 RFC 4648에 공개된 값인 텍스트 foobar입니다.

URL을 감싼 Base64를 다시 감싼 16진수

입력
6148523063484d364c793973623264706269356c654746746347786c4c6d356c644339795a584e6c64413d3d
결과

2개 계층: Hex → Base64(88 → 44 → 31바이트). 결과는 https://login.example.net/reset이며, 디팽되어 표시되고 Indicators in the result에 나열됩니다.

PowerShell 인코딩 명령

입력
UwB0AGEAcgB0AC0AUAByAG8AYwBlAHMAcwAgACcAaAB0AHQAcABzADoALwAvAGUAeABhAG0AcABsAGUALgBvAHIAZwAvAHUAcABkAGEAdABlACcA
결과

2개 계층: Base64 → UTF-16LE 텍스트이며, PowerShell -EncodedCommand에서 전형적이라는 안내가 붙습니다. 결과는 Start-Process 'https://example.org/update'이고, URL이 지표로 나열됩니다.

자주 묻는 질문

어떤 인코딩을 인식하나요?

Base64(표준 및 URL-safe, 패딩 선택), 일반·0x·\x·공백 구분·콜론 구분 형태의 16진수, URL 퍼센트 인코딩, HTML 엔티티, \x·\u·\u{…}·%u 이스케이프, String.fromCharCode 목록, quoted-printable, gzip, zlib, raw deflate, 그리고 PowerShell -EncodedCommand 같은 UTF-16LE 텍스트입니다. atob('…')나 base64_decode('…') 같은 호출과 data: URI도 풀어냅니다.

디코딩이 멈추거나 텍스트가 그대로 남는 이유는 무엇인가요?

출력이 읽을 수 있는 텍스트, 알려진 파일 형식, 또는 깔끔하게 압축이 풀리는 스트림일 때만 계층으로 인정하므로, 우연히 유효한 Base64인 일반 단어는 건드리지 않습니다. 그래서 짧거나 특이한 인코딩은 놓칠 수 있습니다. Decode as로 방법을 직접 적용하고 Undo로 되돌리세요. 12개 계층 후에는 멈춥니다.

디코딩된 내용이 실행되거나 어딘가로 전송되나요?

아니요. 디코딩은 일반 JavaScript와 브라우저의 DecompressionStream을 사용하며, 결과는 텍스트나 16진수 덤프로 표시될 뿐 실행, 렌더링, 업로드되지 않습니다.

이런 문자열은 어디에서 나오나요?

피싱 페이지와 첨부 파일은 URL과 코드를 Base64나 16진수로 숨기고, ClickFix 페이지는 인코딩된 PowerShell 명령을 클립보드에 복사하며, 이메일은 quoted-printable로 도착합니다. 실행하지 말고 이곳에 붙여 넣으세요.

한 번에 한 계층씩 디코딩할 수 있나요?

네. After a manual step, keep peeling automatically의 선택을 해제한 뒤, 단계마다 Decode as에서 방법을 고르고 Apply to the current result를 누르세요.

얼마나 많은 텍스트를 붙여 넣을 수 있나요?

최대 5MB입니다. 200,000자를 넘는 결과는 화면에서 줄여서 표시되지만, Copy는 전체 텍스트를 복사합니다.

quoted-printable과 퍼센트 인코딩은 무엇인가요?

둘 다 바이트 하나를 기호와 16진수 두 자리로 씁니다. quoted-printable은 이메일 본문에서 쓰이며 =3D가 =를 뜻합니다. 퍼센트 인코딩은 URL에서 쓰이며 %2F가 /를 뜻합니다.

용어 설명

PhishDestroy 연구