الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

فكرة مجنونة لحماية ال Unity فهل من مفكر معى ^_^

بدأه Black_Drag0n في 10 أغسطس 2012 · 8 رد · 1,744 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أولا ما هو ال Unity لمن لا يعرفه ؟؟ اليونتى هو محرك العاب يقوم ببرمجة الألعاب عن طريق لغات البرمجة مثلا C# و جافا سكربت

أنا اتعلم برمجة الألعاب لأن هدفى برمجة لعبة أون لاين MMO ووجدت أن أنسب برنامج هو Unity كما أنه مجانى

لكن مشكلة البرنامج هو أنه يمكن أظهار السورس كود الخاص به كمثل بررامج ال C#

ملفات ال DLL الموجودة معه والموجود بها السكرب يمكن فكها بكل سهولة وهذا يجعل خطر كبير على اللعبة

وكان كل همى بالنسبة لل Unity هو حمايته وواتتنى فكرة بالأمس عن حمايته ولا أعلم ان كانت صحيحة أم خطأ

ال Unity يمكن تشغيله على جهاز لا يوجد به .net framework وقد لاحظت أنه مدرج معله ملفات Mono أى أنه يستخدم ال Mono فى ترجمة السكربت الخاص به ومن هنا جأتنى الفكرة

مترجم ال Mono مجانى ومفتوح المصدر لماذا لا يتم التعديل عليه لتغير بعد المصطلحات الخاصة به وتغير الشفرة الخاصة به

يعنى مثلا نحول

ال Public إلى %mT%^G

وال Var إلى GHJs^7G

كمثال ومن ثم بعد بناء السكربت طبعا يكون C#

فهل هذا ممكن

هذا ما أفكر به الأن التشير عن طريق ال مترجم نفسه أظنها فكرة رائعة قد تجنن مهندسى الهندسة العكسية D:

فما رأيكم يا شباب بالفكرة وأنا ابحث وأرجم منكم البحث أيضا هل هى ممكنة أم لا

من قبل قمت بعمل شئ أجده جيد لحماية برامجى من السرقة وهو أن أقوم بقراءة سيريال البروسيسور الخاص بالجهاز ومن ثم تشفيره

يعنى مثلا السيريال الخاص بالبروسيسور هكذا

B00120F0021511230FD

يظهر للمستخدم العادى هكذا

ال B = HdH

وال 0 = HGB

وهكذا

وأنا أخذ منه الكود الذى ظهر له وأقوم بتحليله ليصبح برقم البروسيسور من جديد

ثم وضعت فى البرنامج مرة أخرى جملة ثانية وهى أن ال B = TRRT

والصفر شئ أخر وهجذا فيتم مقرانتهم برقم البروسيسور مع أزالة جزء منه مثلا ال F00 مثلا

فإذا كان متطابقا يتم تفعيل البرنامج وان لم يكن متطابق فيتم أغلاق البرنامج

هذا أشرح لكى أوضح أنى أدخلت مهندس البرمجة العكسية فى متاهة

فهو فى الأصل لا يعلم ما الرقم الذى ظهر له له هل هو رقم سيريال البروسيسور أم الهارد ام المازر بورد ام ماذا فهو رقم مشفر

ولو تم أكتشاف انه رقم البروسيسور فتأتى مرة أخرى فى محاولة فك تشفير السيرير اليه ليعرف كل حرف أو رقم ما يقلبله من الشفرة

وهنا تأتى اخفاء بعض ارقام السيريال فيواجة مشكلة أكبر فى المعرفة

وهنا تأتى الحماية كاملة

أسف على الاطلة ولكنها لفكرة أخى

هل تشفير ال String وال int كمثال لتحويله الى شفرة يصعب اكتشافها

يعنى مثلا

int 10 ;

يتم تفصيل العشرة لتصبح

1 = JHK*&

0 = KYOL

متاهى كبيرة

فما رأيكم فى الفكرة للمبرمجين أيضا

وهنا يأتى سؤالى وأنا أعلم أن هذا المنتدى به من الخبرات من سيفيدنى أن شاء الله

هل : يمكننا فعلا فعل ذلك أم أنها فكرة مجنونة

وأسف على الأطلة

وتقبلوا تحياتى

أخوكم فى الله خالد

#2

ليس لي إطلاع على اليونتي ولكن سمعت به لذلك لن أتحدث فيه ..

ولكن بخصوص الحماية ، حمايتك جيدة قد تتيه المبتدئين ولكن المتوسطين وذوي الخبرة قد لا تنطلي عليهم ..

فهم يتعلمون على أساس إتباع البرنامج خطوة خطوة فسيجدون الأحرف المخفية .. وسيجدون طريقة التشفير .. وسيجدون أيضاً رقم البرسسور ..

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

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

لذى طريقتك جيدة ولكن سيتم كسرها ..

لم أكتب التعليق لأتهجم عليك ولكن لتبحث عن طريقة أنفع ، لأن هذه الطريقة راودتني من قبل ..

تحياتي :happy:

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#3

مشكور أخى الغالى على ردك ولكنها فكرة جائتنى وقمت بتنفيذها

وأنا أعلم جيدا أن ما فى برنامج بالكون ما يتم كسر حمايته لكن مهمة أصحاب البرامج تصعيب كسر الحماية

وأنا اجد فكرتى جيدة بالنسبة للبرامج

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

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

فما رأيك بفكرة الكمبيلر الذى يقوم بقرأة التشفيرات ؟؟ اليس هذا يزيد من قوة الحماية ولو بنسبة 50 %

هدفى هو الحماية من المتطفلين البدائين ومن ثم ننظر الى العمالقة لكن الأن الدوت نت عرضة للأختراق من طفل صغير ولم أجد أفكار غير البرامج الجاهزة ولن تنفع مع ال Unity

فهل من مفكر معى يا أخاوىن

#4

لا أجد فكرة الكمبلير فكرة جيداً ، ففي الأساس الدوت نيت هي كمبلير للتحويل إلى لغة الأسمبلي ..

بل في الأصل كل لغات البرمجة ما عدا لغات برمجة الويب تحتاج إلى كمبلير للتحويل إلى الأسمبلي ..

فإذا قمنا بعمل كمبلير فبالأساس يجب علينا عمل لغة برمجة جديدة ..

فالفكرة غير جيدة ..

أنت فكر بما تستطيع وأنا أيضاً إن شاء الله ..

وإن شاء الله ننتج حماية قوية ..

تحياتي :happy:

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#5

بالظبط أخى هذا ما اتكلم عنه هو أن كل شخص يقوم بعد البرمجة يقوم بتغيل الأشياء الموجودة فى البرنامج بتاعه

هى تعتبر لغة برمجة جديدة لكنها هتكون لغة جديدة صعب الوصول الى مصطلحاتها والكلمات المحجوزة بها وبكدا يكون صعبنا ولو واحد فى % من أختراقها بسهولة

#6
Black_Drag0n كتب:

بالظبط أخى هذا ما اتكلم عنه هو أن كل شخص يقوم بعد البرمجة يقوم بتغيل الأشياء الموجودة فى البرنامج بتاعه

هى تعتبر لغة برمجة جديدة لكنها هتكون لغة جديدة صعب الوصول الى مصطلحاتها والكلمات المحجوزة بها وبكدا يكون صعبنا ولو واحد فى % من أختراقها بسهولة

أولاً ما هي إمكانياتنا للصنع للغة برمجة بحيث لم تصنع من قبل مع أن المنتدى كان نشيطاً بحيث أنك لا تستطيع قراءة المواضيع

الجديدة ، فكيف بالآن ..

ثانياً لن تكون لها مصطلحات وكلمات محجوزة غير مفهومة للكراك لأن بالنهاية يجب أن تحول لغة البرمجة إلى للغة الآلة إذاً لم نستفد شيئاً ولو -1% ..

ثالثاً يجب أن نفكر في خطوات حماية تتجاوز الـ20% لأن واحد بالمئة قد يفكها الكراكر بصدفة ، أو تمرس قليل ، إذاً لن تنفع ..

تحياتي :happy:

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#7

أخى الغالى أعتقد انك مو فاهمنى

مثلا كتبنا برنامج يجد به الأتى

int s ;

Public arabteam ()

{

s = 5 + 6 ;

}

لنقل أن هذا البرنامج

فى المترجم نقوم بتغير الأتى

Public = أى رمز

int = اى رمز

وإذا استطعنا أن نقوم بعمل مثل التشفير الى شرحته فوق على المتغيرات نفسها والكلمات وطبعا نغيره بعد كدا فى ال البرنامج بتاعنا مثلا

فيأتى الهاكر يرا رموز فلا يفهم شئ وعشان يعرف لازم يدخل جوة المترجم ويعرف أنت عملت ايه لتحويل الرموز وأظن ده مش سهل

ولا أنت ايه رأيك

#8

أخي أنا فاهمك ..

ولكن عند تشغيل البرنامج يجب أن يتطابق مع لغة الأسمبلي ، أو أن البرنامج لن يعمل ..

وهنا تكمن المشكلة !!

فملاً لو أن int حولت إلى @i مثلاً ولم نقم بترجمتها إلى لغة الأسمبلي فستحدث مشكلة وهذا ما لا نريده ..

وإذا حولناها إلى لغة الأسمبلي الكراكر عارف المسألة !! ..

تحياتي :happy:

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#9
bahbah كتب:

أخي أنا فاهمك ..

ولكن عند تشغيل البرنامج يجب أن يتطابق مع لغة الأسمبلي ، أو أن البرنامج لن يعمل ..

وهنا تكمن المشكلة !!

فملاً لو أن int حولت إلى @i مثلاً ولم نقم بترجمتها إلى لغة الأسمبلي فستحدث مشكلة وهذا ما لا نريده ..

وإذا حولناها إلى لغة الأسمبلي الكراكر عارف المسألة !! ..

تحياتي :happy:

أنت محق أخي الكريم..

بالنسبة لفكرة الحماية التي اتبعها الأخ الكريم كاتب الموضوع فهي مجدية فعلاً ، لكن مثلاً لو تضيف عليها كود تعريف الـ Motherboard والـ Bios والـ CPU والـ Hard Disk جميعها معاً فيجب أن يضمن المخترق توافق جميع القطع مع الأكواد الخاصة بها، يمكن الوصول إلى الأكواد عن طريق الأوبجيكت :

$oService = ObjGet('winmgmts:\\.\root\cimv2')

مع ذلك، أنت تستمير في تصعيب الإختراق فقط، لا أدري إن كانت جميع الأكواد متاحة للتعديل في قطعها الأصلية عن طريق برامج معينة، ولكن يمكن تجنب ذلك فيما إذا كانت اللغة التي تصمم فيها برنامجك عصية على الفك أو التعامل مع الـ Key-gens أو الـ Cracking Tools.

بالتوفيق.

تم تعديل هذه المشاركة بواسطة TinyHacker في 15 أغسطس 2012 في 10:37

VIVA AutoIt :)

syriarose-149999cf45.jpg

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…