سؤال

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

وفقا للمستندات التي تقدمها سافينت في " حماية البرمجيات والترخيص غويد.قوات الدفاع الشعبي " نحن من المفترض أن تبقي لدينا رمز بائع السري, حق?

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

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

شكرا.

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

المحلول

لقد لاحظنا نفس الشيء.السبب const سلاسل ليست غامضة من المرجح أن يرجع ذلك إلى حقيقة أن متغير كونست هو ترجمة الوقت ثابت, ، مما يسمح للمترجم باستبدال الإشارات إلى أ const متغير مع القيمة الثابتة نفسها في وقت الترجمة.لذلك هناك أساسا لا const حقل سلسلة للتشويش بحلول الوقت الذي تبدأ فيه عملية التغليف.(هذا ليس صحيحا تماما-تعريف const واستمر في إيل ، ولكن فقط لأغراض التوثيق;لم تتم الإشارة إليه بأي رمز.)

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

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