تطبيقات بايثون:هل يمكنك تأمين الرمز الخاص بك بطريقة أو بأخرى؟

StackOverflow https://stackoverflow.com/questions/475216

سؤال

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

إذا لم تكن هناك طريقة "أفضل"، فما هي الخيارات المختلفة المتاحة؟

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

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

المحلول

والأمن من خلال الغموض <م> لا يعمل. إذا كان يجب استخدام رخصة الملكية، وفرض ذلك من خلال القانون، وليس ناضج محاولات التشويش.

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

نصائح أخرى

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

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

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

وعلى سبيل المثال: سمبي الواقع يجعل مدوناتها لموقعه على الانترنت المتاحة. هل هذا يؤذي قدرتها على تشغيل موقعه على الانترنت؟ لا.

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

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

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

والكلمة التي تبحث عنه تشويش. جوجل تكشف سريعة:

http://www.lysator.liu.se/~astrand/ مشاريع / pyobfuscate /

ولكن:

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

وب) ومن الممكن أيضا لتحقيق الربح على التطبيقات مفتوحة المصدر إذا كنت ذكية حول هذا الموضوع.

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

py2exe

على نظام التشغيل Windows، يعد py2exe إحدى طرق شحن التعليمات البرمجية إلى المستخدمين النهائيين، حيث يقوم py2exe بتجميع مترجم python وملفات dll الضرورية والتعليمات البرمجية الخاصة بك التي تم تجميعها إلى python bytecode.

فيما يلي تعليمات python bytecode للحصول على بعض الأدلة حول الشكل الذي يبدو عليه:

http://www.python.org/doc/2.5.2/lib/bytecodes.html

أو يمكنك استخدام ديس لتفكيك بعض ملفات pyc/pyo.

لذا، فإن استخدام py2exe يشبه توزيع ملفات python المترجمة (pyc/pyo).

مترجم Shedskin C++

يقوم مترجم Shedskin بتجميع مجموعة فرعية من لغة python إلى C++ والتي يمكنك تجميعها إلى كود أصلي باستخدام أي مترجم.

pypy

لا أعرف الكثير عن PyPy.وفقًا لمستنداتهم، فإن Pypy قادر على إنشاء كود C.

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