فك .NET، ما مدى سهولة ذلك؟
-
06-07-2019 - |
سؤال
كنت أبحث عن أفضل تشفير لمفتاح ترخيص أحد التطبيقات، وقال أحدهم إنه يمكن لشخص ما فك التطبيق بسهولة ثم تخطي اختبار مفتاح الترخيص.
كيف يمكن لشخص ما أن يفعل ذلك من الناحية العملية؟إذن لديهم ملف .dll الخاص بي، وعليهم فك ترجمته بطريقة ما، ثم التعليق على استدعاء الوظيفة للتحقق من الترخيص، ثم إعادة ترجمته؟يجب أن يكون برنامج فك الترجمة جيدًا جدًا بحيث لا يزال يتم تجميع الكود!
نصائح أخرى
إذا تم تجميع التعليمات البرمجية المصدر بشكل طبيعي، فمن السهل جدًا فك تجميعات .NET.
يمكنك استخدام صافي العاكس, ، تم تطويره في الأصل بواسطة Lutz Roeder، ويدعمه الآن برنامج Redgate.توجد لقطة شاشة في أسفل هذه الإجابة والتي تمنحك انطباعًا عما يفعله Reflector.
يمكنك تصفح مساحات الأسماء والفئات الخاصة بك ورؤية التعليمات البرمجية المصدر والأساليب بلغة .NET المفضلة لديك.دينيس باور مفكك الملف سيسمح لك (أو للمتسللين الأشرار في حالتك) بتحويله إلى حل VS وإجراء تعديلات على البرنامج.
هناك بعض الإجراءات المضادة مثل استخدام أ رمز التعتيم لجعل التعليمات البرمجية الخاصة بك غير قابلة للقراءة عمليا.
هناك بعض الأسئلة الأخرى المثيرة للاهتمام على StackOverflow حول هذا الموضوع:
- هل ينبغي عليك التعتيم على تطبيق .Net تجاري؟
- كيف يمكنني إلغاء ترجمة ملف .NET EXE إلى كود مصدر C# قابل للقراءة؟
- أفضل أدوات/إستراتيجية التشويش على .NET
- تشفير .NET لمفاتيح الترخيص؟
لقطة شاشة من العاكس:
والصافي هو السوبر السهل فك. والتشويش تجعل من الصعب قليلا لفهم ما يحدث، ولكن شخص إلغاء ترجمته التعليمات البرمجية الخاصة بك لا يزال الرقم بها إذا كانت مستمرة.
وهنا بعض النصائح حول حماية كود NET الخاص بك التي وجدت على الانترنت:
http://blogs.msdn.com/ericgu /archive/2004/02/24/79236.aspx
ونلاحظ فقط أن أيا من التقنيات التي نوقشت هي فعالة بنسبة 100٪، لمجرد التساؤل عن عدد الأطواق التي سوف تجعل القفزة تكسير من خلال.
و. NET تجميع بشكل عام من السهل جدا: إلى التعود على هذا بنفسك، فقط الاستيلاء على نسخة من <لأ href = "http://www.red-gate.com/products/reflector/" يختلط = " نوفولو noreferrer ">. NET العاكس ومحاولة إعطائها.
في معظم الحالات، سوف تكون هناك حاجة إلى إعادة ترجمة التعليمات البرمجية من أجل إزالة الاختيار رخصة بسيط: مجرد الترقيع في MSIL سوف تفعل خدعة.
وحماية نفسك من هذا السيناريو العوائد المتناقصة بسرعة من العوائد: سيكون هناك <ط> دائما يكون شخص ذكي بما فيه الكفاية لتجاوز كل ما اختبارات إضافية تضيفها إلى التعليمات البرمجية. على سبيل المثال، يمكنك إضافة توقيع رقمي إلى التعليمات البرمجية الخاصة بك، ورفض لتشغيل التوقيع لا يطابق (تشير إلى رمز تم العبث بها، على سبيل المثال لإزالة الاختيار الترخيص).
واللعبة ثم يصبح لإزالة الاختيار توقيع (بالإضافة إلى الاختيار مفتاح الترخيص). لذلك قمت بإضافة شيك آخر، ومن ثم يمكن تجاوزه، وهلم جرا، لا نهاية.
وهناك صناعة كاملة من كود obfuscatation و <لأ href = "http://www.google.com/search؟q=copy+protection+.net" يختلط = "نوفولو noreferrer"> نسخ أدوات حماية لمساعدتك على الدفاع عن برامجك ضد قضايا من هذا القبيل. والامر متروك لك لتقرر ما إذا كان جهد إضافي على الجانب الخاص بك، والانزعاج سوف يسبب الزبائن الشرعي، يستحق الشراء في هذه الحلول ...
وإذا كان هذا هو ما كنت تبحث للدفاع ضد، قد ترغب في قراءة حتى على كيفية مهاجمتها.
استغلال البرمجيات من قبل غريغ هولندا وغاري ماكجرو هو مقدمة ممتازة.
ومن الأفضل عدم الذهاب الى البحر على ترخيص التكنولوجيا الرئيسية. كل ما تفعله يمكن أن يكون اخترق من قبل مستخدم العزم وكنت عرضة لخطر أكبر إضافة القضايا التي وقف المستخدمين الشرعيين باستخدام التطبيق الخاص بك. حتى لقد رأيت التعليمات البرمجية التي تم حمايتها مع خطة الصحة والسلامة الدونغل الحصول على متصدع. تشفير مفتاح الترخيص الخاص بك، وينبغي أن التشويش التعليمات البرمجية يكون كافيا لعرقلة الهجمات الانتهازية، وهناك نقطة صغيرة الذهاب أبعد من ذلك.
اريك بالوعة كتب مقالة جيدة تغطي هذا القسم انظر النقطة <أ href = على "HTTP : //www.ericsink.com/bos/Transparency.html "يختلط =" نوفولو noreferrer ">" 4 لا ضايق الشرفاء " من <لأ href =" HTTP: //www.ericsink. كوم / بوس / Transparency.html "يختلط =" نوفولو noreferrer ">" العقيدة من الشفافية "
وحتى من دون العاكس، وكان الناس يفعلون هذا لمدة طويلة. في الأساس يمكنك مشاهدة التطبيق مع مصحح - وشيء من هذا القبيل WinDBG تفعل - ومن ثم معرفة متى يحدث الاختيار الترخيص. تشاهد قيمة الإرجاع، ثم ببساطة تصحيح تطبيق للقفز مباشرة إلى "كل شيء جيد" الاختيار.
وأنا أنصح كل شيء أن الناس قد نشرت أعلاه. عليك أن تدرك أنه هو عبة القط والفأر، وإذا كان العائد على الاستثمار سيكون يستحق كل هذا العناء. إذا كان لديك المستخدمين الذين لا تحاول عبة النظام، ثم شيئا بسيطا قد تفعل. إذا كان لديك شيء حيث تكسير مستشر، ثم سيكون لديك للنظر في استراتيجيات مختلفة والذهاب من هناك.
وليس لديك إلى إعادة ترجمة التطبيق لتصحيح ذلك - الكثير من أدوات التصحيح الثنائية موجودة هناك. وأنها لن تتوقف بك المفرقعات الأكثر تصميما إذا كان هناك ما يكفي من المال ليكون.
و"جدا"
وأي نوع من آلية الاختيار الترخيص / المعتادة "القياسية" هو هدف لأداة إزالة الآلي. وفي عدد قليل من التطبيقات. NET التجارية لقد انعكس أكثر، تظهر هذه الشيكات "تافهة جدا" المشتركة.
وأفضل رهان هو حماية بجعل جزء من برنامج يعتمد على خدمة الإنترنت. هذا لا ينبغي أن يكون واجهة الشطي جدا لتجنب تباطؤ عملية الإعدام، ولكن يجب أن لا تكون مكتنزة جدا، وهذه القطع يمكن فقط ثم تحميلها ومؤقتا محليا في "نسخة متصدع" ما لم يعتمد التطبيق عليها في كثير من الأحيان تغيير.
إذا كنت ترغب في تجنب الاتصال بالشبكة (بعض الاستخدامات أو المستخدمين قد يجد إشكالية / تساؤل اعتمادا على التطبيق إلا إذا كان شيء ما تصفون، ويوفر القيمة) ثم تقسيم بعض من البرنامج في دلل الأصلي أو اثنين، وجود الشيكات الترخيص في جميع أنحاء التطبيق وأقل وضوحا حتى في ودلل الأم، من المحتمل أن يكون كافيا لردع أكثر من غيرها.