Tiny Online Tools logoTiny Online Toolssearchابحث في الادوات…grid_viewكل الادوات
الرئيسيةchevron_rightأدوات الهندسة العكسيةchevron_rightمُفكِّك ترجمة WASMمُفكِّك ترجمة WASM

مُفكِّك ترجمة WASM

حوّل ملف WebAssembly ثنائي إلى نص WAT مقروء، مع رسم بياني لاستدعاءات كل دالة، وشكل تدفق التحكم، وتخمين لسلسلة أدوات البناء.

upload_file

انقر للتصفح او اسحب الملفات وافلتها هنا

أسقط ملف .wasm لفك ترجمته

الامتدادات المقبولة: .wasm

ادوات مشابهة

أداة فك تشويه رموز WASM

أداة فك تشويه رموز WASM

فُكّ تشويه أسماء رموز Rust وC++ الموجودة في ملف WebAssembly ثنائي، واحدًا تلو الآخر أو دفعة واحدة عبر ملف كامل.

مستكشف WASM الثنائي

مستكشف WASM الثنائي

تصفّح أقسام ودوال واستيرادات وتصديرات وذواكر وجداول ومتغيرات عامة وحدة WebAssembly مع إزاحات وأحجام دقيقة بالبايت.

مُصوِّر استيراد/تصدير WASM

مُصوِّر استيراد/تصدير WASM

شاهد ما تحتاجه وحدة WebAssembly من مضيفها وما تقدّمه بالمقابل، مُجمّعًا حسب مساحة الاسم، جنبًا إلى جنب.

محلِّل حجم WASM

محلِّل حجم WASM

اكتشف أي الدوال وقِطع البيانات تهيمن على حجم وحدة WebAssembly، مع تفصيل دقيق مرتّب وخريطة شجرية مرئية.

فاحص ملفات ELF

فاحص ملفات ELF

افحص الملفات الثنائية ELF الخاصة بلينكس ويونكس: الترويسات والأقسام والمقاطع والرموز واعتماديات المكتبات المشتركة، مباشرة في متصفحك.

تدوير PDF

تدوير PDF

دوّر صفحات PDF لإصلاح اتجاهها.

تقسيم PDF

تقسيم PDF

قسّم ملف PDF إلى صفحات فردية أو نطاقات صفحات.

apps

المزيد من الادوات

تصفح مجموعتنا الكاملة من الادوات المجانية عبر الانترنت.

ملف .wasm الثنائي غير مُعدّ للقراءة المباشرة — لكن يمكن تحويله إلى WAT، صيغة WebAssembly النصية المقروءة، وتحليله بنيويًا بما يتجاوز مجرد تدفق التعليمات. يقوم مُفكِّك ترجمة WASM بكلا الأمرين، بالكامل داخل متصفحك.

لنكن واضحين حول ما هي هذه الأداة وما ليست عليه. لا تسترجع هذه الأداة الكود المصدري الأصلي بلغة Rust أو C أو C++ — تُفقد تلك المعلومة بمجرد أن ينتج المترجم ملف WASM. ما تسترجعه بدقة هو:

  • تفكيك WAT كامل، أنتجته أداة wabt (WebAssembly Binary Toolkit)، مع تطبيق أسماء التصحيح عندما تحمل الوحدة قسم "name".
  • رسم بياني للاستدعاءات، مبني بتتبع بايت كود كل دالة الفعلي بحثًا عن تعليمات call وcall_indirect — وليس مُخمَّنًا من نص WAT. يُظهر call_indirect توقيع نوع الدالة الذي يستهدفه، وليس أبدًا دالة محددة مُخمَّنة، لأن الهدف الحقيقي لا يُحسم إلا وقت التشغيل — هذه حقيقة بنيوية في الكود، وليست قصورًا في هذه الأداة.
  • شكل تدفق التحكم لكل دالة: أقصى عمق تداخل لـ block/loop/if، وعدد كل منها، مما يعطي فكرة تقريبية عن مدى التعقيد البنيوي لدالة ما دون الحاجة إلى رسم بياني كامل لتدفق التحكم.
  • تخمين لسلسلة أدوات البناء مبني على أدلة — "على الأرجح Rust"، أو "على الأرجح Emscripten (C/C++)"، أو "على الأرجح AssemblyScript" — استنادًا إلى أدلة حقيقية قابلة للتحقق: بادئات رموز Rust المشوَّهة، استيرادات وقت تشغيل Emscripten المميزة (emscripten_*، __cxa_*، __wasm_call_ctors)، أو سلاسل مسار المكتبة القياسية لـ AssemblyScript ~lib/ الموجودة في مقاطع بيانات الوحدة. تُظهر الأداة دائمًا الدليل المحدد الذي عثرت عليه وتصيغ النتيجة بعبارة "على الأرجح" — ليست يقينًا أبدًا، وليست تخمينًا بلا سند أبدًا.

تُعلَّم أي دالة يستخدم بايت كودها تعليمة خارج مجموعة رموز العمليات التي تنمذجها الأداة (SIMD، العمليات الذرية، عمليات الذاكرة الجماعية) بـ"تفكيك جزئي" بدلًا من عرضها بصمت كأنها كاملة — الصدق بشأن حدود التحليل أهم من نتيجة أنيقة.

مفيدة لتدقيق بنية وحدة .wasm من طرف ثالث، أو فهم كيفية استدعاء دوالها لبعضها البعض، أو الحصول على قراءة أولى لملف ثنائي غير مألوف قبل تحليل أعمق.