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

بعد أن تم فتح السورس كود لبرامج .NET ماذا ستفعل؟

مغلق
بدأه ابوأنس في 15 يوليو 2005 · 28 رد · 4,342 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#2

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

اعتقد ان ذلك لن يوقفنا عن الاستمرار في التطوير بواسطة الدوت نت

ولكنن يجب ان نبحث عن طرق لمنع الاطلاع علي السورس كود

سلام

حكمتي الدائمة.....................................................

ان ما عند الله لا يطلب الا بطاعته

.....................................................................

?who is Ingm

Name: Hasan Adel Hasan

Education: BCs in IS from Faculty of computers & information systems

Mansoura University- 2003

E-mail: hsn_3004@yahoo.com

#3

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

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

#4

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

#5

والله يأخي تعبر مشكلة كبيرة......... لكن لاتوجد مشكلة إلاولها حل

#6

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

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

#7

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

crazy-man كتب:
و متاحة و مصممة من قبل مايكروسفت و بعد ذلك لن يتمكن اي برنامج من فك التشفير  !!!!!

أين ذلك :unsure: فأن كنت تعرف شيء جديد يا أخي أرجو أن نكون علي علم به ;) ؟

أخوك عمرو عيسي

#8

حقيقة أنا لم أعني انها مصممة من مايكروسفت(يبدو أني في قلقي خرجت عن سيطرتي لكلماتي :D) لكن أعرف برنامج و هو Obfuscator

يمكنك ان تقرأ حوله هنا

http://www.preemptive.com/products/dotfuscator/FAQ.html

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

/index.ph...96&hl=reflector

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

و هناك أيضا برنامج للحماية اسمه XenoCode

تم تعديل هذه المشاركة بواسطة crazy-man في 16 يوليو 2005 في 01:51

#9

بعد أن تم فتح السورس كود لبرامج .NET ماذا ستفعل؟

عنوان الاستبيان غريب جدا :).

عموما أنا أستخدم برنامج الـ XenoCode ... وفيه كمان نسخه من برنامج الـ Dotfuscator Community Edition موجود ضمن الأدوات Tools اللي بتنزل مع الـ Visual Studio.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#10
اقتباس
بعد أن تم فتح السورس كود لبرامج .NET ماذا ستفعل؟

هذه ميزة ;)

و هذه الميزة تمكننا من الـ Debugging دون الحاجة الى الـ VS.Net :D

رأس الحكمة الإيمان بالله

#12

يا جماعة مافي داعي لهذا التوتر. الحلول كثيرة و قد قدم الأخوان الكثير منها. تذكروا أن الجافا لها أيضأً نفس "المشكلة" و هذا لم يمنع من انتشار اللغة و استخدام الشركات لها. كما أن البرامج المكتوبة باللغات الأخرى ليست بذلك الدرجة من الأمان كما يعرف أي من استخدم برنامج كراك أو منتج مفاتيح! :D

#13

خبرائنا الاعزاء ميزو وcrazy منين احمل XenoCode ؟

عايز الرد بسرعة شوية وبلاش الكسل ده :lol: :lol:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#15

شكراً لك W3Developer

اما انت ياميزو انت وcrazy :angry: :angry:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#16

أنا آسف يا GHOST والله النت عندي بطئ طحن اليومين دول ومكنتش عارف أدخل غير تخاطيف كدا.

البرنامج كامل في اللينك ده.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#17

ايوه كده يعنى لازم تخاف علشان ترد :lol: :lol: :lol: :lol:

اوعى تزعل انا باهزر معاك :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#18

حسب علمي البسيط، obfuscator المضلل وظيفته 3 أشياء:

1- تغيير أسماء المتغيرات، والفئات والأوامر لتكون a b c d e بدلا من Person getTotal saveOnDisk MySpecialForm ماعدا الأوامر التي لا تريد تشفيرها حتى تتمكن من إعادة استعمال هذه الأوامر في برامج متوافقة!!

2- تصغير حجم شفرة البرنامج إلى الثلثين تقريبا حسب تجربتي!!

3- التخلص من أي أوامر زائدة في الشفرة لا تغني ولا تسمن!

أنا استعملت obfuscator في الجافا فقط للوظيفة الثانية. وذلك في برامج الجوال حتى يصغر حجم البرنامج!

ملاحظة: obfuscator لا يشفر البرنامج ليصبح مثل assembly لكن برنامج مثل هذا:

using System;

public class HelloWorld{ 
public static void Main(){
doYourSecretAction();
}
public static void doYourSecretAction(){
Console.WriteLine("HELLO WORLD");
}
}

ليصبح

using System;

public class HelloWorld{ 
public static void Main(){
a();
}
public static void a(){
Console.WriteLine("HELLO WORLD");
}
}

لاحظ معي أنه تم تشفير الأمر doYourSecretAction ولم يشفر using System مثلا!

ولم يشفر اسم الفئة HelloWorld وذلك لأن الحفاظ على هذا الاسم أساسي لتشغيل البرنامج. فلو تغير إلى b مثلا ، فلن تستطيع تشغيل البرنامج لأن الفئة الرئيسية أصبحت b.

ولم يشفر Main لأن بيئة .Net ستبحث عن هذا الأمر، ولو شفر هذا إلى v لما تمكنت من تشغيل البرنامج!

زبدة القول، أن obfascator يشفر الأوامر الخاصة فقط ببرنامجك وليس الأوامر العامة!

وهذا يعني أيضا أنه بإمكانك استرجاع شفرة البرنامج بسهولة لكن عليك ببضع دقائق أو ساعات لتعيد أسماء الفئات مثلا لتصبح مفهومة لك!

تم تعديل هذه المشاركة بواسطة أبومازن في 19 يوليو 2005 في 05:52

#20

نعم كلامك صحيح أخ ابو مازن لكن ... شوف معي المثال أسفله و هو مثال من ال msdn ...

private void CalcPayroll(SpecialList employeeGroup) {
   while (employeeGroup.HasMore()) {
        employee = employeeGroup.GetNext(true);
        employee.UpdateSalary();
        DistributeCheck(employee);
    }
}

هذا الكود قبل استعمال برنامج Dotfuscator

لكن بعد استعمال البرنامج Dotfuscator على برنامجنا ماذا ستكون النتيجة !!!

private void a(a b) {
    while (b.a()) {
        a = b.a(true);
        a.a();
        a(a);
    }
}

وهنا نلاحظ انه تم تقليص حجم الكود كم ذكرت سالفا و أيضا تغير شكل الكود كاملا فكيف بالله عليك أن يستطيع أحد ان يعكس هذه النتيجة ذا أنه لا علاقة منقية مثلا بين a و employee.UpdateSalary بل كما تلاحظ أن الحرف استعمل أيضا كمقابل (اذا صح التعبير) ل GetNext و أيضا DistributeCheck و مع العلم أنه يمكن استعمال الحرف a ليقابل حتى 70% من ال Methods في برنامج ما !!!!!

و انت قلت في آخر كلامك

اقتباس
وهذا يعني أيضا أنه بإمكانك استرجاع شفرة البرنامج بسهولة لكن عليك ببضع دقائق أو ساعات لتعيد أسماء الفئات مثلا لتصبح مفهومة لك!

ممكن تعطينا وصلة لبرنامج ما يقوم بقراءة الشفرة بعد تمريرها ببرنامج Dotfuscator

#21

على فكرة أنت في مثالك تركت النص HELLO WORLD كما هو حتى بعد عمل استعمال البرنامج مثلا XenoCode لكن يجب أن تعلم أنه من بين خصائص هذه البرامج عمل تشفير شبه مستحيل للنصوص لأي انسان أن يحله و أنت تعرف ايجابية هذا فمثلا أنا لو أردت أن أعمل Crack لبرنامج ما سوف أرى المسج الذي سيعطيني اياه عندما ادخل كلمة سر مثلا خاطئة و أذهب لعمل Disassemble للبرنامج و أبحث عن الرسالة ذلك لأنها String و أنت تعرف ان ال Strings تبقى كما هي فأستطيع بعد العثور على الرسالة تغيير الشرط أو عمل Jump عليه لكن بهذه الطريقة ( يعني تشفير النصوص) أصبح من الصعب عمل تلك العملية :)

انظر في المثال أسفله و ستدرك ماذا أعني

الكود العادي

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox("salut ayoub")
    End Sub

لكن بعد تمرير البرنامج عبر XenoCode أنظر للفرق

Private Sub x44d0c0526a414989(ByVal xe0292b9ed559da7d As Object, ByVal xfbf34718e704c6bc As EventArgs)
      Interaction.MsgBox(String.Intern(x1110bdd110cdcea4._d574bb1a8f3e9cbc("fgcoafjoifapofhpkfopdafabemagfdbjekbmebcgdic", 1607786994)), MsgBoxStyle.OKOnly, Nothing)
End Sub

اذا لاحظت أن "salut ayoub" أصبحت "fgcoafjoifapofhpkfopdafabemagfdbjekbmebcgdi" من هذا العبقري الذي يستطيع عكس هذا النص ليعود كما كان :blink: ؟؟؟

تم تعديل هذه المشاركة بواسطة crazy-man في 20 يوليو 2005 في 03:45

#23

معك حق، يتم تشفير Strings، وهذا جزء كبير من التضليل!

أما أسماء الفئات المشفرة والأوامر ففيها تفاوت، مثلا: اقرأ هذا:

public class a : Form{
//code
//call super or base methods, no change in the name of the method!!
this.show(); //method show has not changed!!
//also manupulate base instance variables, they wont change
// 
}

أضف إلى ذلك لو تريد إنشاء Library مكتبة وقد تبيعها وتوزعها ليستعملها مبرمجون، ومعها شرح الحزمة Documentation كما في MSDN ... بهذه الحالة لن تستعمل (المضلل) لأنه سيغير أسماء الأوامر التي من المفترض أن يستعملها مبرمج!! فبدلا من أن يستعمل SpecialDataBase.read() سيستعمل a.b() وهذا لن يفهم (مستخدم حزمتك "المبرمج") أوامر هذه الحزمة الغريبة!! (مثل MSDN: ستقرأ أوامر الفئة Form وتجد فيها الأمر show مع أنك لا تعلم ماذا بداخل الأمر show فتخيل لو شفرة مايكروسفت اسم الأمر show!!!)

فزبدة القول أنه يمكنك فهم الشفرة ولو بعد حين! مع صعوبة ذلك لو كانت البرامج كبيرة!! على الأقل المسألة أسهل من إرجاع شفرة برنامج بالسي مثلا!! والله أعلم..

أما عن برنامج لقراءة الشفرة، فأنا أستعمل Java Decompiler، وهذا للجافا!! وهو موجود في منتدى الجافا!

ولم أتعامل مع قارئ لشفرة برنامج على .Net خاصة وأنا لم أصنع برنامجا على .NET إلا أشياء بسيطة مثل أهلا وسهلا!!

#24

خطيرة عندك "زبدة القول" :D

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

اقتباس
أما عن برنامج لقراءة الشفرة، فأنا أستعمل Java Decompiler، وهذا للجافا!! وهو موجود في منتدى الجافا!

هل تعني ان هذا البرنامج يقوم بقراءة الشفرة حتى بعد تمريرها من برنامج DashO و هو مقابل Dotfuscator في الجافا على ما أظن ؟؟؟

#25

يا شباب

أحيانا عندما نعمل decompile لبرنامج ما يحصل فشل في ذلك لبعض الدوال ويطبع

  // Decompilation not complete!

وأحيانا لا يستطيع ان يقوم بفك الClass بتاتا وتخرج رسالة:

Decompilation Failed

اسؤال هو: كيف يمكننا أن نجعل فك الكود لبرامجنا غير مكتمل او يسبب Exception؟

لدي برنامج .NET Exploror وجربت فك بعض الClasses من XenoCode.exe

تم تعديل هذه المشاركة بواسطة W3Developer في 20 يوليو 2005 في 11:46

هذا الموضوع مغلق.

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