سؤال

لدي برنامج كبير جدًا في .NET 3.5 SP1 والذي يتم تجميعه بشكل جيد. ومع ذلك ، عندما أرغب في تشويشها مع Obfuscator Pro (التقييم في الوقت الحالي) ، يتوقف Obfuscator مع الخطأ التالي:

إخراج البناء] طلب هذا التطبيق وقت التشغيل لإنهائه بطريقة غير عادية.
إخراج البناء] يرجى الاتصال بفريق دعم التطبيق لمزيد من المعلومات.
Build Output] عاد Ilasm 3
بناء الإخراج] بناء خطأ.

نظرًا لأن الخطأ يأتي من Ilasm ، فقد اعتقدت أن يتيح القيام بما يفعله Obfuscator (w/o opfuscation) ونفذ الأوامر التالية:

=> ildasm.exe /out=c: myapp.exe.il /text /nobar /raweh /queallnames /utf8 /linenum /forward c: myapp bin relext myapp.exe
=> ilasm c: myapp.exe.il

يمر الأمر الأول (ildasm) على ما يرام ، أحصل على ملف IL 450 ميجابايت.
الأمر الثاني (ilasm) ومع ذلك يتعطل مع الخطأ التالي:

طلب هذا التطبيق وقت التشغيل لإنهائه بطريقة غير عادية.
يرجى الاتصال بفريق دعم التطبيقات للحصول على مزيد من المعلومات.

هل لدى أي شخص أي فكرة عما يمكن أن يكون الخطأ؟
نظامي هو Windows 7 X64 مع الأدوات من Visual Studio 2008 (SP1).

تحديث:
لقد اتصلت بدعم Obfuscator وقمت ببعض الاختبارات لهم. بالمناسبة لديهم أشخاص مفيدون حقًا.
لقد اكتشفنا أن الخطأ يحدث فقط عند استخدام X86 Ilasm من مجلد .NET 2.0 Framework. عند استخدام واحد من Framework64 v2.0 ... ثم لا يحدث الخطأ.
أيضًا عند استخدام إما (x86 أو x64) ilasm من .NET 4.0 (بيتا 2) ، يمر بشكل جيد.
لذلك هذا يبدو حقًا وكأنه خطأ في Ilasm of .NET 2.0 لـ x86.

هل كانت مفيدة؟

المحلول

على الرغم من أن المشكلة في Ilasm لم يتم حلها حقًا ، إلا أن المشكلة التالية:

  • استخدم Ilasm من مجلد Framework64
    X64 ilasm يعمل بشكل جيد. ومع ذلك لم أستطع إجبار Dotfuscator على استخدامه.
  • تثبيت .NET Framework 4.0 (بيتا 2)
    عندما يتم استخدام Ilasm من .NET Framework 4.0 ، فإنه يعمل بشكل جيد.
  • قم بتشغيل dotfuscator مع العلم '/inpl: on'
    أخبرني دعم Dotfuscator باستخدام هذا العلم وعمل بشكل جيد.
    وفقًا لهم ، لا ينبغي أن يكون هناك أي فرق في EXE تم إنشاؤه ، لذا فأنا أستخدم هذا الحل حاليًا (العلم غير متوفر في واجهة المستخدم الرسومية).
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top