สแกนไฟล์แนบ HTML หรือ SVG เพื่อค้นหาข้อมูลที่ซ่อนอยู่, โซ่ atob/eval และแบบฟอร์มที่อยู่นอกเว็บไซต์
ตัวถอดรหัสหลายชั้น
เครื่องมือนี้ใช้ภาษาอังกฤษ; หน้านี้อธิบายด้วยภาษาของคุณ
ใช้ตัวถอดรหัสหลายชั้น
หน้าที่ของมันคืออะไร
วางข้อความที่ได้รับการเข้ารหัสหรือทำให้เข้าใจยาก และตัวถอดรหัสจะค่อยๆ ถอดรหัสชั้นละชั้น โดยแสดงขั้นตอนแต่ละขั้น จนกระทั่งเหลือข้อความที่อ่านได้หรือรูปแบบไฟล์ที่รู้จัก ทุกอย่างทำงานภายในเบราว์เซอร์ของคุณ
ระบบนี้ทำงานทั้งหมดในเบราว์เซอร์ของคุณ: ข้อมูลที่คุณป้อนจะไม่ถูกส่งขึ้นเซิร์ฟเวอร์เลย
วิธีใช้ตัวถอดรหัสหลายชั้น
- วางข้อความที่เข้ารหัสแล้ว. วางสตริงลงในช่อง "ข้อความที่เข้ารหัส": บล็อก Base64 จากสคริปต์, สตริงฐานสิบหกที่ยาว, ข้อความที่เข้ารหัสด้วยเปอร์เซ็นต์ หรือรายการ String.fromCharCode
- ถอดรหัส. กด Decode layers หรือ Ctrl+Enter ชั้นที่ระบบระบุได้จะถูกแยกออกทีละชั้น จนถึง 12 ชั้น
- อ่านสายโซ่. หัวข้อแสดงชั้นต่าง ๆ ตามลำดับ แต่ละขั้นตอนจะแสดงวิธีการ ขนาดก่อนและหลัง รวมถึงภาพตัวอย่าง
- ใช้ผลลัพธ์. คัดลอกข้อความที่ถอดรหัสแล้ว อ่านตัวชี้วัดในผลลัพธ์ หรือใช้ตัวเลือก "ส่งไปยัง" เพื่อส่งไปยัง HTML Attachment Analyzer, Link Unwrapper, IOC Converter หรือ URL Defanger.
- ใส่ด้วยมือ. หากมีชั้นใดที่พลาดไป ให้เลือกวิธีหนึ่งภายใต้ส่วน "Decode as" แล้วนำไปใช้ หากต้องการย้อนกลับ ให้คลิก "Undo" เพื่อย้อนกลับไปยังขั้นตอนของชั้นสุดท้าย
ตัวอย่าง
Base64 ที่เข้ารหัสด้วย URL ของ 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)สามชั้น: การเข้ารหัส URL แบบเปอร์เซ็นต์ (%2F), Base64 ที่ถอดรหัสเป็นข้อมูล gzip, และ gzip เอง โดยสิ้นสุดด้วยสคริปต์ที่ส่งเบราว์เซอร์ไปยัง https://example.com/verify.
สิ่งที่ระบบตรวจสอบ
| สัญญาณ | ความหมายของคำนี้คืออะไร |
|---|---|
| โซ่ชั้น | รูปแบบการเข้ารหัสตามลำดับ เช่น Hex → Base64 การมีหลายชั้นรอบ URL สั้นหรือคำสั่งมักหมายความว่า มีคนต้องการซ่อนมันไว้ |
| ขนาดต่อขั้น | จำนวนไบต์ที่เข้าและออกจากแต่ละชั้น ชั้น gzip หรือ deflate ที่ขยายตัวอย่างมากนั้นคือการคลายการบีบอัดตามปกติ |
| ข้อความ UTF-16LE | 2 ไบต์ต่อตัวอักษร ซึ่งเป็นลักษณะทั่วไปของ PowerShell -EncodedCommand คำสั่งที่ถอดรหัสแล้วซึ่งใช้เพื่อดาวน์โหลดหรือเริ่มต้นสิ่งใดสิ่งหนึ่ง ถือเป็นสัญญาณเตือน |
| ผลลัพธ์แบบไบนารี | หากผลลัพธ์สุดท้ายไม่ใช่ข้อความ จะแสดงข้อมูลแบบ hex dump ของ 512 ไบต์แรก พร้อมรูปแบบที่ตรวจพบ ให้คัดลอกข้อมูลนั้นในรูปแบบ hex หรือ Base64; ห้ามรันมันเด็ดขาด |
| ตัวชี้วัดในผลลัพธ์ | URL, ที่อยู่อีเมล และที่อยู่ IPv4 ที่พบในข้อความที่ถอดรหัสแล้ว แสดงในรูปแบบที่ถูกตัดส่วนที่อันตรายออก พร้อมปุ่มเพื่อคัดลอกข้อมูลแบบดิบ |
| ข้อความหยุด | ไม่พบการเข้ารหัสเพิ่มเติม ไม่ถึงขีดจำกัด 12 ชั้น หรือขั้นตอนที่จะทำซ้ำผลลัพธ์ก่อนหน้านี้ เมื่อถึงขีดจำกัด อาจมีชั้นเพิ่มเติมได้ |
| ตัวเลือกการถอดฟัน | เปิดโดยค่าเริ่มต้น: URL และที่อยู่อีเมลในผลลัพธ์จะแสดงในรูปแบบที่ถูกตัดส่วนที่อันตรายออกแล้ว ส่วนการคัดลอกจะให้ข้อความต้นฉบับเสมอ |
| ตัวเลือก "继续剥皮" | หลังจากดำเนินการถอดรหัสแบบมือในขั้นตอนนั้นแล้ว การถอดรหัสจะดำเนินต่อไปโดยอัตโนมัติ จนกว่าคุณจะยกเลิกการเลือกตัวเลือกนี้ |
| แปลงเป็นรายการ | Base64, Base64 ที่ปลอดภัยสำหรับ URL, hex, การเข้ารหัสเปอร์เซ็นต์สำหรับ URL, เอนทิตี HTML, การหลบหลีกอักขระ, รหัสอักขระ, quoted-printable, gzip, zlib, raw deflate และ UTF-16LE สำหรับขั้นตอนที่ระบบข้ามไปโดยอัตโนมัติ |
| ปุ่มคัดลอก | ตัวเลือก "Copy" จะให้ข้อความที่ถอดรหัสแล้วในรูปแบบดิบ ส่วนผลลัพธ์แบบไบนารีจะให้ตัวเลือก "Copy as hex" และ "Copy as Base64" แทน |
ตัวอย่างเพิ่มเติม
เวกเตอร์ทดสอบ RFC 4648
Zm9vYmFyชั้นที่ 1: Base64, 8 → 6 ไบต์ ผลลัพธ์คือข้อความ foobar ซึ่งเป็นค่าที่ระบุไว้ใน RFC 4648.
เข้ารหัส Hex รอบ Base64 รอบ URL
6148523063484d364c793973623264706269356c654746746347786c4c6d356c644339795a584e6c64413d3d2 ชั้น: Hex → Base64 (88 → 44 → 31 ไบต์). ผลลัพธ์คือ https://login.example.net/reset ซึ่งได้ถูกตัดส่วนที่เป็นอันตรายออกแล้ว และแสดงอยู่ในส่วน Indicators ของผลลัพธ์
คำสั่งที่เข้ารหัสด้วย PowerShell
UwB0AGEAcgB0AC0AUAByAG8AYwBlAHMAcwAgACcAaAB0AHQAcABzADoALwAvAGUAeABhAG0AcABsAGUALgBvAHIAZwAvAHUAcABkAGEAdABlACcA2 ชั้น: Base64 → ข้อความ UTF-16LE ซึ่งถือเป็นลักษณะทั่วไปของ PowerShell -EncodedCommand ผลลัพธ์คือ Start-Process 'https://example.org/update' โดย URL ดังกล่าวถูกระบุไว้เป็นตัวบ่งชี้
คำถามที่พบบ่อย
มันรองรับรูปแบบการเข้ารหัสใดบ้าง?
Base64 (แบบมาตรฐานและแบบปลอดภัยสำหรับ URL, การเติมช่องว่างเป็นตัวเลือก), รูปแบบเลขฐานสิบหกแบบธรรมดา, 0x, \x, แบบมีช่องว่าง หรือแบบแยกด้วยเครื่องหมายจุดสองจุด, การเข้ารหัสเปอร์เซ็นต์สำหรับ URL, เอนทิตี HTML, \x, \u, \u{…} และ %u escapes, String.fromCharCode lists, quoted-printable, gzip, zlib และ raw deflate รวมถึงข้อความ UTF-16LE เช่น PowerShell -EncodedCommand การเรียกใช้เช่น atob('…') หรือ base64_decode('…') และ data: URIs ก็ถูกถอดรหัสเช่นกัน
ทำไมมันถึงหยุดลง หรือปล่อยข้อความของฉันไว้อย่างเดิม?
ชั้นจะถูกยอมรับก็ต่อเมื่อผลลัพธ์ของมันเป็นข้อความที่อ่านได้ รูปแบบไฟล์ที่รู้จัก หรือสตรีมที่สามารถคลายการบีบอัดได้อย่างสมบูรณ์ ดังนั้น คำทั่วไปที่บังเอิญเป็น Base64 ที่ถูกต้องจะไม่ถูกแตะต้อง ดังนั้น การเข้ารหัสที่สั้นหรือผิดปกติอาจถูกมองข้ามได้: ใช้ Decode as เพื่อใช้วิธีการด้วยตนเอง และ Undo เพื่อย้อนกลับ มันจะหยุดหลังจาก 12 ชั้น
เนื้อหาที่ถอดรหัสแล้วจะถูกเรียกใช้หรือส่งไปที่ใดบ้างหรือไม่?
ไม่ การถอดรหัสใช้ JavaScript แบบธรรมดาและ DecompressionStream ของเบราว์เซอร์; ผลลัพธ์จะแสดงออกมาในรูปแบบข้อความหรือในรูปแบบ hex dump และจะไม่ถูกดำเนินการ แสดงผล หรืออัปโหลดขึ้นเลย
ข้อความแบบนี้มาจากไหนกัน?
หน้าเว็บและไฟล์แนบที่ใช้เทคนิคฟิชชิ่งจะซ่อน URL และโค้ดในรูปแบบ Base64 หรือ hex ส่วนหน้าเว็บ ClickFix จะคัดลอกคำสั่ง PowerShell ที่ถูกเข้ารหัสไปยังคลิปบอร์ดของคุณ และอีเมลจะถูกส่งมาในรูปแบบ quoted-printable โปรดวางข้อความนี้ที่นี่แทนที่จะรันมัน
ผมสามารถถอดรหัสชั้นละชั้นได้ไหมครับ?
ใช่ครับ ให้ยกเลิกการเลือกช่อง “After a manual step, keep peeling automatically” แล้วเลือกวิธีการภายใต้ส่วน “Decode as” และกด “Apply to the current result” สำหรับแต่ละขั้นตอน
สามารถวางข้อความได้มากเท่าใด?
สูงสุด 5 MB ผลลัพธ์ที่มีมากกว่า 200,000 ตัวอักษรจะถูกตัดสั้นลงบนหน้าจอ แต่เมื่อคลิก "คัดลอก" จะแสดงข้อความเต็ม
quoted-printable และ percent-encoding คืออะไร?
ทั้งสองวิธีต่างเขียนไบต์หนึ่งตัวเป็นตัวเลขที่มีเครื่องหมายตามด้วยตัวเลขฐานสิบหกสองตัว Quoted-printable มาจากเนื้อหาของอีเมล ซึ่ง =3D แทน = ส่วน Percent-encoding มาจาก URL ซึ่ง %2F แทน /