سؤال

كنت أبحث عن أفضل تشفير لمفتاح ترخيص أحد التطبيقات، وقال أحدهم إنه يمكن لشخص ما فك التطبيق بسهولة ثم تخطي اختبار مفتاح الترخيص.

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

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

المحلول

حاول فتح التطبيق الخاص بك مع العاكس.ربما ستفاجأ :-)

وبمجرد أن يحدد أحد المتسللين الموقع الصحيح في التعليمات البرمجية الخاصة بك، فيمكنه استخدام مجموعة من ildasm/ilasm لإزالة الشيك من التطبيق الخاص بك - حتى لو لم يتم تجميع الكود الذي ينشئه Reflector.

نصائح أخرى

إذا تم تجميع التعليمات البرمجية المصدر بشكل طبيعي، فمن السهل جدًا فك تجميعات .NET.

يمكنك استخدام صافي العاكس, ، تم تطويره في الأصل بواسطة Lutz Roeder، ويدعمه الآن برنامج Redgate.توجد لقطة شاشة في أسفل هذه الإجابة والتي تمنحك انطباعًا عما يفعله Reflector.

يمكنك تصفح مساحات الأسماء والفئات الخاصة بك ورؤية التعليمات البرمجية المصدر والأساليب بلغة .NET المفضلة لديك.دينيس باور مفكك الملف سيسمح لك (أو للمتسللين الأشرار في حالتك) بتحويله إلى حل VS وإجراء تعديلات على البرنامج.

هناك بعض الإجراءات المضادة مثل استخدام أ رمز التعتيم لجعل التعليمات البرمجية الخاصة بك غير قابلة للقراءة عمليا.

هناك بعض الأسئلة الأخرى المثيرة للاهتمام على StackOverflow حول هذا الموضوع:

لقطة شاشة من العاكس:

alt text

صدر

وجوش سميث أيضا Crack.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 التجارية لقد انعكس أكثر، تظهر هذه الشيكات "تافهة جدا" المشتركة.

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top