أسماء الرموز المُترجَمة في Rust وC++ تكون "مشوَّهة" — مُرمَّزة إلى صيغة ASCII مضغوطة تحزم مساحات الأسماء والمعاملات العامة وتوقيعات الدوال. _ZN4core3fmt5Write9write_fmt17h... ليس مُعدًّا ليقرأه إنسان، لكن المعلومة بداخله مهمة: أي حزمة (crate)، أي وحدة، أي دالة. تفكّ أداة فك تشويه رموز WASM هذا التشويه، بالكامل داخل متصفحك.
طريقتان لاستخدامها:
- رمز واحد — الصق اسمًا مشوَّهًا وشاهد فك تشويهه فوريًا أثناء الكتابة. تدعم C++ Itanium (
_Z…)، ومخطط Rust القديم المبني على Itanium (_ZN…17h[hash])، ومخطط Rust الأحدث v0 (_R…). - مسح جماعي — ارفع ملف
.wasmوستستخرج الأداة كل اسم دالة من قسم "name" الخاص بالتصحيح في الوحدة بالإضافة إلى كل اسم تصدير، ثم تفكّ تشويهها جميعًا دفعة واحدة في جدول قابل للبحث يمكنك النسخ منه أو تصديره كـ CSV.
كلمة عن الصدق، لأنها مهمة هنا: يغطي فك تشويه C++ Itanium المجموعة الشائعة من الـ ABI (الأسماء المتداخلة، القوالب، الاستبدالات، المعاملات)، وقد تم التحقق منه مقابل c++filt على رموز حقيقية. مخطط Rust القديم يُبنى فوق Itanium وهو بنفس القدر من المتانة. مخطط Rust v0 أكثر تعقيدًا بكثير — تعيد هذه الأداة بناء المسار (الحزمة، الوحدة، أسماء الدوال) على أساس بذل أفضل جهد، لكنها لا تعيد بناء قائمة المعاملات العامة الكاملة أو بنية impl/trait، وتبقى المراجع الخلفية والمعرّفات المُرمَّزة بـ punycode دون فك تشفير. كل نتيجة v0 تنطوي على هذا التبسيط تُعلَّم بـ"جزئي" وتأتي مع ملاحظة تشرح بالضبط ما هو المفقود — لا تُقدَّم أبدًا كفك تشويه كامل. أي رمز لا يطابق أي مخطط معروف يُعرض كما هو، ومُعلَّم بوضوح بأنه غير معروف، ولا يُهمَل بصمت.
مفيدة عند تدقيق وحدة .wasm من طرف ثالث، أو فهم تتبع مكدس عطل ما، أو ببساطة لاستكشاف ما يحتويه فعليًا ملف Rust أو C++ ثنائي مُترجَم.
Tiny Online Tools







