[COLOR="black"]السلام عليكم ورحمة الله
الطريقة ببساطة:
- خذ أهم وظيفة من برنامجك وضعها في DLL منفصلة
- خذ بعض الـ Bytes الثابتة من مكتبة DLL
- اجعل برنامجك يقوم بـ Try "استخدام الوظيفة" و Except "يعرض رسالة النسخة التجريبية"
- رقم التسجيل هو نفسه الـ Bytes المسروقة، طبعا مع بعض بهارات التشفير والتمويه...

المثال المرفق يوضح ببساطة مبدأ الطريقة.
طريقة البايتات المسروقة من أقوى طرق الحماية ولا يمكن القيام بشيء حيال ذلك
لتبقى البرمجة وليسقط الكراكرز

...
من سلبياتها أن رقم التسجيل يكون ثابت وعام مما يسهل قرصنة النسخة ويكفي نسخ مكتبة DLL المسجلة
يمكن جعل رقم التسجيل متغير بإحدى الخدع وبالتالي الحصول على نتيجة أفضل
... لكن ما الذي يجعله يتغير؟
أيضا ينبغي استخدامها بحكمة فالحماية ليست في ذات الطريقة
في النهاية قد يكون من الحكمة (أحيانا) أن تترك بعض الهفوات التي تمكن من قرصنة برنامجك
فقد يوفر ذلك بعض عناء التسويق عليك، ويسـاعدك على قياس سمعة المشروع.[/COLOR]
[COLOR="#0000ff"]
إقتباس :...لا يمكن القيام بشيء حيال ذلك
هناك مقولة اجنبية او مثل لااتذكره ما معناه: ما قام به انسان يمكن لانسان اخر القام به (او بعكسه)
لكن ما الذي يجعله يتغير؟
استخدم Polymorphism
تغير الكود (OpCode) بكود اخر مختلف ويؤدي نفس الغرض
يمكنك مراجعة بعض المقالات والملفات المصدرية الخاصة بالفيروسات مثل الموجودة بموقع VX Heavens
احسن من طريقة طريقة البايتات المسروقة طريقة الالة الافتراضية virtual machines
[/COLOR]
اخي كاش واحد اختلف معك في هذا الموضوع فطريقة ال Stolen bytes مستخدمة من قبل العديد من برامج الحماية من فترة طويلة مثل Themida و ASProtect وهي تعتبر اسهل مرحلة في عملية فك الضغط Unpacking

[COLOR="black"]شكرا لكم على المشاركة

@TF6M
@Ahmed18
كما وضح أخونا Zool@nder في الـ Plugin تلك البياتات المسروقة هي من OEP للبرنامج
أي أنها هي نفسها الموجودة في التطبيقات المترمجة بنفس الـ Compiler
هنا لا نتحدث عن سرقة بايتات بشكل آلي (كما يفعل ASProtect وغيره)
بل البايتات تؤخذ من دوالك الخاصة الأكثر أهمية في برنامجك (الطباعة، الحذف، العمليات الحسابية...)
سأرفق مثال للحماية بطريقة غير حكيمة...
إقتباس :هناك مقولة اجنبية او مثل لااتذكره ما معناه: ما قام به انسان يمكن لانسان اخر القام به (او بعكسه)
بالفعل، سمعتها من أحدهم يدافع عن أخطاء Micro$oft
إقتباس :استخدم Polymorphism
تغير الكود (OpCode) بكود اخر مختلف ويؤدي نفس الغرض
كنت أقصد ما يتغير في كل نسخة (اسم المستخدم وبعض البيانات...)
لكن هذه تبدو شهية، سأبحث...
إقتباس :طريقة الالة الافتراضية virtual machines
تبدو مكلفة (الجهد)، وأعتقد أنها تهاجم بـ Emulator! سأبحث...[/COLOR]
مثال للحماية من حذف السجلات بسرقة 12 bytes المسؤولة عن ذلك
تم استخدام هذه الطريقة في برنامج تجاري للمبيعات
طبعا، بفرض أن قاعدة البيانات ليست BDE وأنك لا تملك صلاحية الحذف مباشرة
التجاوز سهل جدا...
الحل بعد أسبوع من اليوم.
و عليكم السلام و رحمة الله
الكل يعلم من دون شك ان:
- المنتجات DEMO يتم عدم وضع اصلا اوامر معينة مثل الطباعة و الحذف و التسجيل...الخ
- المنتجات TRIAL محدودة المدة او مرات الاستعمال و عدم تفعيل خصائص معينة و لكن هذه الخضائص اوامرها موجودة في المنتج.
الآن طريقة Stolen bytes:
حسب ما فهمت من شرح كاش واحد، يتم برمجة التطبيق باضافة دوال الخضائص كاملة بشكل عادي، ثم يتم حذف بايتات معينة منها و نشرها كنسخ تجريبية محدودة الخضائص.
اخ كاش واحد هل يمكن شرح آلية التحقق من حيث:
هل خوارزمية التسجيل تحتوي على ثوابت Hard coded للبيتات المسروقة و في حالة نجاح عملية التسجيل يتم عمل Patch للتطبيق لاضافة الباتات الناقصة من هذه الثوابت ؟
او ان معلومات التسجيل بعد معالجتها تصبح نفسها البايتات المسروقة ؟ على طريقة تحديات Mouradpr
الأمر الذي يهمني هو اين يتم حفظ البيتات المسروقة و كيف -اقصد المنبع و ليس الهدف- لانني اعتبرها الحلقة الضعيفة في كسر الحماية....
كيف يتم التحكم في عدم نشر النسخ الكاملة على النت بعد شراءاحد الكراكرز نسخة مرخصة من الشركة المنتجة ؟
بالتوفيق ان شاء الله
السلام عليكم و رحمة الله
إقتباس :لكن الفرق سهولة التسجيل بإرسال رقم تسلسلي فقط عوض الملفات...
حسب رائي... هنا يكمن ضعف الحماية، ارسال رقم يتاثر عمله بصحة ما يتم ادخاله، يعني اذا كان الرقم صحيح تتم عملية الباتش لاضافة البايتات المسروقة و تصبح الخصائص كاملة... و طبعا اذا كان الرقم غير صحيح لا يتم الباتش...
حسب ما فهمت فان البايتات المسروقة تكون مخزنة في البرنامج نفسه بما انه يتم ارسال رقم تسلسلي فقط لا غير، في هذه الحالة يكفي تتبع البرنامج و خوارزمية التسجيل الى الوصول الى شرط او شروط التحقق.
و ان كان جل عملك يدور حول محاولة منع الوصول الى شرط او شروط التحقق فان مبدأ Stolen bytes في الحماية يصبح غير نافع لانك ان استطعت منع الوصول الى الأجزاء الحساسة من خوارزمية التسجيل، اي طريقة اخرى في الحماية مثل Trial تصبح فعالة.
لان السر في حماية البرامج هو منع او تعطيل الوصول الى الأجزاء الحساسة -الضعيفة- في آلية التسجيل بكاملها...
إقتباس :لو استطعنا أن نمزج الفكرتين استخدام Polymorphism Code (كما قال أشار الأستاذ عبد العزيز) مع فحص HardwareID مثلا، أعتقد أننا
- Polymorphic Code سوف يسبب لك المشاكل لانك تعتمد على عناوين ثابتة Offsets للتعديل على بايتات الخصائص.
- البصمة HardwareID طريقة جيدة لمنع عدم تكرار استعمال مفاتيح التسجيل على اجهزة اخرى.
هناك عمل تقني على احد برامج الحماية EXECryptor لــ Zoolander يوضح فيه الية الحماية
من وجهة نظر من يحاول كشفها، ربما احد الأخوة عنده نسخة من العمل يرفعها لاثراء الموضوع...
بالتوفيق ان شاء الله