Quét tệp đính kèm HTML hoặc SVG để phát hiện các tải trọng ẩn, chuỗi atob/eval và các biểu mẫu bên ngoài trang web.
Bộ giải mã nhiều lớp
Công cụ này được hiển thị bằng tiếng Anh; trang này giải thích về công cụ đó bằng ngôn ngữ của bạn.
Sử dụng Bộ giải mã nhiều lớp
Chức năng của nó là gì?
Dán văn bản đã được mã hóa hoặc làm mờ vào đây, và trình giải mã sẽ lần lượt bóc tách từng lớp, hiển thị từng bước một, cho đến khi còn lại văn bản có thể đọc được hoặc một định dạng tệp đã biết. Tất cả đều chạy ngay trong trình duyệt của bạn.
Ứng dụng này hoạt động hoàn toàn trên trình duyệt của bạn: mọi thông tin bạn nhập vào đều không được tải lên.
Cách sử dụng Bộ giải mã nhiều lớp
- Dán văn bản đã được mã hóa. Dán chuỗi vào trường “Văn bản được mã hóa”: một blob Base64 từ một tập lệnh, một chuỗi hex dài, văn bản được mã hóa theo ký hiệu phần trăm hoặc một danh sách String.fromCharCode.
- Giải mã. Nhấn vào “Decode layers” hoặc nhấn Ctrl+Enter. Mỗi lớp được nhận diện sẽ lần lượt được tách ra, tối đa 12 lớp.
- Đọc chuỗi. Tiêu đề liệt kê các lớp theo thứ tự. Mỗi bước hiển thị phương pháp thực hiện, kích thước trước và sau, cùng với hình xem trước.
- Sử dụng kết quả. Sao chép văn bản đã giải mã, xem các chỉ số (Indicators) trong kết quả, hoặc sử dụng tính năng “Gửi đến” (Send to) cho các công cụ HTML Attachment Analyzer, Link Unwrapper, IOC Converter hoặc URL Defanger.
- Điều chỉnh bằng tay. Nếu bỏ sót một lớp, hãy chọn một phương pháp trong mục “Giải mã dưới dạng” và áp dụng nó. Hoàn tác các bước của lớp cuối cùng.
Ví dụ
Base64 được mã hóa theo URL của gzip
H4sIAAAAAAACA7MpTi7KLCixK8%2FMS8kv18vJT04syczP08soSk1TsFVQyigpKSi20tdPrUjMLchJ1UvOz9UvSy3KTKu0L04tLgYqtTVPM05UsrbRh5oEACvqcc1SAAAA3 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)Ba lớp: mã hóa phần trăm URL (%2F), mã Base64 được giải mã thành dữ liệu gzip, và chính gzip, kết thúc bằng một đoạn mã kịch bản chuyển hướng trình duyệt đến https://example.com/verify.
Nó kiểm tra những gì
| Tín hiệu | Ý nghĩa của điều đó là gì |
|---|---|
| Chuỗi lớp | Các định dạng mã hóa theo thứ tự, ví dụ như Hex → Base64. Việc có nhiều lớp mã hóa bao quanh một liên kết rút gọn hoặc lệnh thường cho thấy ai đó muốn che giấu nó. |
| Kích thước mỗi bước | Số byte đi vào và đi ra khỏi mỗi lớp. Một lớp gzip hoặc deflate tăng kích thước đáng kể là hiện tượng giải nén thông thường. |
| Văn bản UTF-16LE | Hai byte cho mỗi ký tự, đây là đặc điểm điển hình của PowerShell -EncodedCommand. Một lệnh đã được giải mã có chức năng tải xuống hoặc khởi chạy một thứ gì đó là một dấu hiệu cảnh báo. |
| Kết quả nhị phân | Nếu kết quả cuối cùng không phải là văn bản, hệ thống sẽ hiển thị bản dump hệ thập lục phân của 512 byte đầu tiên kèm theo định dạng đã phát hiện. Hãy sao chép nó dưới dạng hệ thập lục phân hoặc Base64; tuyệt đối không được chạy nó. |
| Các chỉ số trong kết quả | Các URL, địa chỉ email và địa chỉ IPv4 được tìm thấy trong văn bản đã giải mã, được hiển thị dưới dạng đã được vô hiệu hóa, kèm theo nút để sao chép nguyên văn. |
| Thông báo dừng | Không nhận diện được mã hóa nào khác, giới hạn 12 lớp, hoặc một bước sẽ lặp lại kết quả trước đó. Ở giới hạn này, có thể có nhiều lớp hơn. |
| Tùy chọn vô hiệu hóa răng nanh | Mặc định được bật: Các URL và địa chỉ email trong kết quả được hiển thị dưới dạng đã được làm vô hiệu hóa. Chức năng Sao chép luôn cung cấp văn bản gốc. |
| Giữ tùy chọn bóc vỏ | Sau khi thực hiện bước “Giải mã thủ công”, quá trình giải mã sẽ tiếp tục tự động trừ khi bạn bỏ chọn tùy chọn này. |
| Giải mã thành danh sách | Base64, Base64 an toàn cho URL, hệ thập lục phân, mã hóa phần trăm URL, thực thể HTML, ký tự thoát, mã ký tự, quoted-printable, gzip, zlib, deflate thô và UTF-16LE, dành cho các bước mà quá trình xử lý tự động bỏ qua. |
| Các nút sao chép | Chức năng “Sao chép” trả về văn bản đã giải mã ở dạng thô. Kết quả nhị phân sẽ hiển thị các tùy chọn “Sao chép dưới dạng hex” và “Sao chép dưới dạng Base64” thay thế. |
Các ví dụ khác
Vectơ thử nghiệm RFC 4648
Zm9vYmFyLớp 1: Base64, 8 → 6 byte. Kết quả là chuỗi văn bản “foobar”, giá trị được công bố trong RFC 4648.
Mã hóa Hex rồi mã hóa Base64 cho một URL
6148523063484d364c793973623264706269356c654746746347786c4c6d356c644339795a584e6c64413d3d2 lớp: Hex → Base64 (88 → 44 → 31 byte). Kết quả là https://login.example.net/reset, được hiển thị dưới dạng đã được vô hiệu hóa và liệt kê trong phần “Indicators” của kết quả.
Lệnh được mã hóa bằng PowerShell
UwB0AGEAcgB0AC0AUAByAG8AYwBlAHMAcwAgACcAaAB0AHQAcABzADoALwAvAGUAeABhAG0AcABsAGUALgBvAHIAZwAvAHUAcABkAGEAdABlACcA2 lớp: Base64 → văn bản UTF-16LE, được ghi nhận là đặc trưng của lệnh PowerShell -EncodedCommand. Kết quả là Start-Process 'https://example.org/update', với URL được liệt kê làm chỉ báo.
Câu hỏi thường gặp
Nó nhận diện được những bộ mã hóa nào?
Base64 (chuẩn và an toàn cho URL, có thể tùy chọn thêm ký tự lấp đầy), định dạng thập lục phân thuần túy, 0x, \x, có khoảng trắng hoặc phân tách bằng dấu hai chấm, mã hóa phần trăm URL, các thực thể HTML, các ký tự thoát \x, \u, \u{…} và %u, danh sách String.fromCharCode, định dạng quoted-printable, gzip, zlib và deflate thô, cũng như văn bản UTF-16LE như lệnh PowerShell -EncodedCommand. Các lệnh như atob('…') hoặc base64_decode('…') và các URI dạng data: cũng được giải mã.
Tại sao nó lại dừng lại, hay để nguyên văn bản của tôi như vậy?
Một lớp chỉ được chấp nhận khi đầu ra của nó là văn bản có thể đọc được, một định dạng tệp đã biết hoặc một luồng dữ liệu có thể giải nén một cách trơn tru; do đó, các từ thông thường tình cờ là mã Base64 hợp lệ sẽ không bị can thiệp. Do đó, các mã hóa ngắn hoặc bất thường có thể bị bỏ qua: hãy sử dụng "Decode" để áp dụng phương pháp thủ công và "Undo" để quay lại bước trước. Quá trình này sẽ dừng lại sau 12 lớp.
Nội dung đã được giải mã có được thực thi hay gửi đi đâu không?
Không. Quá trình giải mã sử dụng JavaScript thuần túy và đối tượng DecompressionStream của trình duyệt; kết quả được hiển thị dưới dạng văn bản hoặc dưới dạng bản ghi hex và tuyệt đối không bao giờ được thực thi, hiển thị hay tải lên.
Những chuỗi ký tự như thế này đến từ đâu?
Các trang lừa đảo và tệp đính kèm ẩn các URL và mã dưới dạng Base64 hoặc hệ thập lục phân; các trang ClickFix sao chép các lệnh PowerShell đã được mã hóa vào khay nhớ tạm của bạn; còn các email được gửi dưới dạng quoted-printable. Hãy dán chuỗi ký tự này vào đây thay vì chạy nó.
Tôi có thể giải mã từng lớp một không?
Đúng. Hủy chọn tùy chọn “Sau khi thực hiện bước thủ công, tiếp tục tách lớp tự động”, sau đó chọn một phương pháp trong mục “Giải mã dưới dạng” và nhấn “Áp dụng cho kết quả hiện tại” cho từng bước.
Tôi có thể dán bao nhiêu văn bản?
Tối đa 5 MB. Các kết quả có độ dài vượt quá 200.000 ký tự sẽ được rút gọn khi hiển thị trên màn hình, nhưng khi nhấn “Sao chép”, bạn sẽ nhận được toàn bộ nội dung.
Quoted-printable và mã hóa phần trăm là gì?
Cả hai phương pháp đều ghi một byte dưới dạng một ký hiệu đi kèm với hai chữ số thập lục phân. Phương pháp Quoted-printable xuất phát từ nội dung email, trong đó =3D tương ứng với =. Phương pháp mã hóa phần trăm (Percent-encoding) xuất phát từ các URL, trong đó %2F tương ứng với /.