يجب أن تكون مشفرة غلق بمشبك رمز بائع / غموض?
-
27-12-2019 - |
سؤال
هذا هو فيما يتعلق سافينت/علاء الدين الحارس مفاتيح غلق بمشبك.لقد نشرت على موقعهم ولكن فقط في حالة أي شخص آخر يعرف الجواب أو سوف تجد الجواب مفيد أنا نشر هنا أيضا.
وفقا للمستندات التي تقدمها سافينت في " حماية البرمجيات والترخيص غويد.قوات الدفاع الشعبي " نحن من المفترض أن تبقي لدينا رمز بائع السري, حق?
حسنا ، إذا كنت بناء العينة المقدمة في "\عينات\وقت التشغيل\كشارب\" ، ثم حماية التطبيق مع المغلف ، ثم فك التطبيق المغلف في جيتبرينز دوتبيك ، أستطيع أن أرى سلسلة رمز البائع هناك بسهولة جدا.يبدو أن المغلف لا يعتم السلاسل الثابتة.أو ربما انها سلاسل مستوى الطبقة ، وأنا لا أعرف.
هل هذه هي الطريقة الموصى بها لاستخدام رمز البائع?لا يبدو سرا جدا.إذا وضعت سلسلة رمز البائع في متغير مؤقت في وظيفة ثم يحصل على غموض.غير أن الطريقة التي ينبغي القيام به?لو ذلك, لا ينبغي أن يعكس نموذج التعليمات البرمجية ذلك?
شكرا.
المحلول
لقد لاحظنا نفس الشيء.السبب const
سلاسل ليست غامضة من المرجح أن يرجع ذلك إلى حقيقة أن متغير كونست هو ترجمة الوقت ثابت, ، مما يسمح للمترجم باستبدال الإشارات إلى أ const
متغير مع القيمة الثابتة نفسها في وقت الترجمة.لذلك هناك أساسا لا const
حقل سلسلة للتشويش بحلول الوقت الذي تبدأ فيه عملية التغليف.(هذا ليس صحيحا تماما-تعريف const
واستمر في إيل ، ولكن فقط لأغراض التوثيق;لم تتم الإشارة إليه بأي رمز.)
الطريقة التي تعاملنا بها مع هذا هي باستخدام static
readonly
سلاسل ، تهيئة في static
منشئ.يؤدي القيام بذلك إلى تخزين قيم السلسلة كثوابت وقت التشغيل ، مما يسمح لعملية التغليف بالوصول إليها بشكل صحيح للتشويش.(يتم التحقق من ذلك عن طريق فك تجميع التجميع ، كما ذكرت.)