Design: الترميز الثنائي wasm غير المقروء له مزايا

تم إنشاؤها على ٢٢ أبريل ٢٠١٧  ·  6تعليقات  ·  مصدر: WebAssembly/design

لقد ألقيت نظرة سريعة على المشروع اليوم وأنا مهتم جدًا باستخدامه في أعمال التطوير العامة.

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

لا يوجد سبب لتزويد المستخدم النهائي بهذه التسهيلات - يمكن للمطور الوصول إليها عبر ملفات الخرائط أو بعض الآليات المماثلة التي تتطلب المصدر الأصلي.

في حين أنه من المستحيل ردع المحدد عن فك / هندسة عكسية لمنتج ما ، فإن أي رادع يكون مفيدًا (إذا كنت تريد التخلي عنه ، فقم بتضمين المصدر / رابط له). إذا كانت المجهود / المخاطرة في السرقة تفوق تكلفة الترخيص القانوني. إلخ إلخ إلخ.

من المرجح أن يشجع العنصر الإضافي لأمان IP في عدم توفير إمكانية القراءة على تبني أوسع / أسرع (إنه أمر لا يفكر فيه تمامًا بالنسبة لي).

من ناحية أخرى ، إذا لم تكن هناك فائدة أمنية .... فعندئذ مع محركات hw / js الأسرع بمرور الوقت ، فإن العودة إلى C / C ++ والحفاظ على مجموعة مهارات موسعة أخرى لا تبدو جذابة للغاية.

يُرجى مراعاة عدم توفير آلية لجعل الترميز الثنائي لـ wasm قابلاً للقراءة. شخص آخر سيفعل ذلك في النهاية على أي حال - في غضون ذلك ، استخدم الموارد في مكان آخر ودعنا نستمتع بعصر قصير من الشفرة الجانبية للعميل غير المفهومة.

بوب.

التعليق الأكثر فائدة

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

نحن مهتمون أيضًا بجعل شيء ما قابلاً للاستخدام ، وهذا هو سبب تحديدنا لتنسيق نص منخفض المستوى ، ومن المحتمل أن نعمل على إمكانات تصحيح الأخطاء.

ليس الهدف هو ضمان أي حماية قانونية ضد أو إلغاء ترجمة أو هندسة عكسية أو مخاوف أخرى غير تقنية. هذا متروك لمحاميك ، وأنا أحث غير المحامين على تجنب المضاربة. لا نريد أن نكون في مجال تقديم المشورة القانونية.

يبدو أن المناقشة المسبقة تتناول سؤالك؟ سأغلق ، لا تتردد في إعادة فتح أو مواصلة المناقشة إذا لم يكن كذلك.

ال 6 كومينتر

أحدث إصدارات Chrome قادرة بالفعل على تحويل WASM الثنائي إلى تنسيق نصي.

هل تقول أنه يمكنني الانتقال من (التالي مأخوذ من مدخل ويكيبيديا)

20 00
42 00
51
04 7 هـ
01 42
05
20 00
20 00
01 42
7 د
10 00
7 هـ
0 ب

ل

مضروب int (int n) {
إذا (ن == 0)
العودة 1 ؛
آخر
عودة ن * مضروب (ن -1) ؛
}

أو يمكن التعرف عليه على هذا النحو باستخدام الكروم كما هو عليه؟

لا ، يقوم بإرجاع تنسيق "WAST" غير المحدد رسميًا حتى الآن الموضح هنا: http://webassembly.org/docs/text-format/ .

get_local 0
i64.const 0
i64.eq
if i64
    i64.const 1
else
    get_local 0
    get_local 0
    i64.const 1
    i64.sub
    call 0
    i64.mul
end

تم تحسين Web Assembly لتنسيق ثنائي صغير وسهل وسريع التحليل. لا يحتفظ بمعلومات كافية لاستعادة بناء الجملة الأصلي بالكامل. كلما كانت الوظيفة أكبر وأكثر تعقيدًا ، كلما كانت عملية فك الترجمة أقل قابلية للتمييز. هذا صحيح بشكل خاص إذا نظرت في كيفية التعامل مع الهياكل والفئات والقوالب والميزات الأخرى ذات المستوى الأعلى.

ممتاز (هذا هو "التمثيل الوسيط" المدرج في مقالة ويكيبيديا) - اعتقدت أنك تقترح أنه يمكن أن يكون "جميلًا" بالفعل - أفضل ما إذا كان لا يمكن أن يكون (خارج الصندوق).

وأنا أفضل ما إذا كان كل شيء قد تم / لم يتم ، وصمم لإبقائه على هذا النحو.

(تولد لدي انطباع بأن هناك خطة لأتمكن في النهاية من ترجمتها مرة أخرى إلى كود زائف معقول وإن كان بدون معرفات ذات مغزى ، في المتصفح.)

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

نحن مهتمون أيضًا بجعل شيء ما قابلاً للاستخدام ، وهذا هو سبب تحديدنا لتنسيق نص منخفض المستوى ، ومن المحتمل أن نعمل على إمكانات تصحيح الأخطاء.

ليس الهدف هو ضمان أي حماية قانونية ضد أو إلغاء ترجمة أو هندسة عكسية أو مخاوف أخرى غير تقنية. هذا متروك لمحاميك ، وأنا أحث غير المحامين على تجنب المضاربة. لا نريد أن نكون في مجال تقديم المشورة القانونية.

يبدو أن المناقشة المسبقة تتناول سؤالك؟ سأغلق ، لا تتردد في إعادة فتح أو مواصلة المناقشة إذا لم يكن كذلك.

chintailease.wast.zip

أي فكرة عن كيفية تفكيك هذا الملف .wast إلى شفرة المصدر الأصلية؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

badumt55 picture badumt55  ·  8تعليقات

frehberg picture frehberg  ·  6تعليقات

nikhedonia picture nikhedonia  ·  7تعليقات

cretz picture cretz  ·  5تعليقات

JimmyVV picture JimmyVV  ·  4تعليقات