إنضمامك إلي منتديات استراحات زايد يحقق لك معرفة كل ماهو جديد في عالم الانترنت ...

انضم الينا
استراحات زايد الصفحة الرئيسية


 
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 04-21-2009, 05:00 PM
عضو ماسي
بيانات محروم.كوم
 رقم العضوية : 503
 تاريخ التسجيل : Dec 2007
الجنس : female
علم الدوله :
 المشاركات : 2,100,669
عدد الـنقاط :3341
 تقييم المستوى : 2140

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

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

أولا: ما هو مفهوم (( إعادة هندسة الكود )) ؟
قد يتسائل البعض عن معنى مصطلح ((إعادة هندسة الكود)) عندما قرأه في المقدمة، لذلك سأقدم شرحاً موجزاً عن معنى هذا المصطلح.
إن من أكثر الطرق انتشاراً لحماية البيانات بشكل آمن هو تخزينها في قواعد بيانات وحمايتها بكلمة مرور، وبالتأكيد سنستخدم كلمة المرور هذه في الكود التابع للمشروع.
ولكن هناك أمر أهم من حماية البيانات وهو حماية الكود. وكما نعلم أن تطبيقات الدوت نت هي تطبيقات تتحول فيما بعد إلى لغة قريبة جداً من الأسمبلي، حيث إن هذا الكود يترجم في وقت التنفيذ من قبل الـ CLR (JIT). إذاً باستطاعة أي محرر أسمبلي العبور من هذه البوابة ويكتشف كودك بالكامل، ولذلك باستطاعة أي مبرمج محترف كان أو مبتدأ أن يحصل على الكود باستخدام مولد أكواد.
هناك الكثير من مولدات الأكواد منتشرة على الإنترنت ولكن أعظمها وأخطرها ذاك الذي يستطيع أن يعطيك حتى ملفات المشروع كاملةً وكأنك كنت تصممه وتعمل عليه وهو Lutz Roeder's Reflector ويمكنك تحميله مجاناً من هنا.
إن هذه العملية التي تعطيك الكود المصدري للبرامج والتطبيقات المكتوبة على الدوت نت تسمى إعادة هندسة الكود أو Reverse Engineering .

ثانيا: مثال على إعادة هندسة الكود:
لنقم بكتابة مشروع صغير يساعدنا على فهم معنى إعادة هندسة الكود، ونستخدم لذلك مولد الأكواد Lutz Roeder's Reflector.
افتح الفيجوال استوديو وأنشئ مشروع Console Application.
لمبرمجي الـ C# اكتب الكود التالي:
كود PHP:
<span style="color: #000000">namespace CodeProtection
{
class
Program
{
static
void Main(string[] args)
{
MyClass myclass = new MyClass();
string msg = "Hello Absba, welcome to Code Protection Example";
int rep = 5;
myclass.MyMethod(msg, rep);
}
}
class
MyClass
{
public
void MyMethod(string msg, int rep)
{
for (
int l = 0; l <span style="color: #007700">Module CodeProtection
Sub Main
()
Dim cls As New MyNewClass()
Dim msg As String = "Hello Absba, welcome to Code Protection Example"
Dim rep As Integer = 5
cls
.MyMethod(msg, rep)
End Sub
Class MyNewClass
Public Sub MyMethod(ByVal msg As String, ByVal rep As Integer)
Dim i As Integer

For i = 0 To rep
Console
.WriteLine(msg)
Next i
End Sub
End
Class
End Module


الآن بعد ترجمة التطبيق قم بفتح الـ Reflector وافتح التطبيق الذي أنشأناه




استكشف الآن تطبيقك بسلاسة ويسر. وانظر إلى الكود الذي كتبناه:



ويمكنك رؤية الكود بأكثر من لغة: IL , C#, Visual Basic, MC++, Delphi, Chrome

ثالثاً: ما هو حل المشكلة؟
لحل المشكلة، طرحت شركة PreEmptive Solutions برنامجها Dotfuscator
وقد تبنت شركة Microsoft هذا الحل وأدخلته مع حزمتها Visual Studio ولكن النسخة التي أدخلتها مايكروسوفت هي Community Edition بمعنى، أن هذه النسخة محدودة الوظائف ولا تعطيك كامل المزايا ولكنها تؤدي الغرض المطلوب لحماية أكوادنا.
إن فكرة Dotfuscator تقوم على تغيير المتغيرات وبعض الأسطر إلى رموز أخرى، بمعنى آخر، تحويل الكود إلى كود آخر يصعب فهمه!
أي أن الهكر الذي يريد أن يكسر برنامجك سيجد صعوبة في فهم الكود وفكه، وهذا ما نريده نوعاً ما.

رابعا: كيفية ((تشويش)) الكود:
بعد ترجمة الكود والحصول على الناتج النهائي للتطبيق (*.EXE أو *.DLL)
نفتح الـ Dotfuscator من بيئة التطوير Visual Studio 2008 (هذا ما أستخدمه):
Tools --> Dotfuscator Community Edition
ستظهر لك نافذة تطلب منك التسجيل. اختر No, I don’t want to register
اتبع الشرح الآن:







من Options لدينا خيار واحد فقط على اعتبارنا نستخدم إصدار Community Edition
وهو Disable Renaming الذي يقوم بتغيير المتغيرات وأسماء الـ functions بطريقة تجعلها صعبة الفهم، فقيمة Yes تلغي هذا الخيار وقيمة No تفعله. طبعاً نحن نريد تفعيل وإلا لما لجأنا للـ Dotfuscator لذلك نضع No.



من Input نختار Honor obfuscation Attributes و Library و Strip Obfuscation Attributes انظر الصورة:



الآن من Build تستطيع اختيار موقع الهدف (الذي سينشأ فيه التطبيق المشوش) ومن ثم نبدأ عملية التشويش بالنقر على زر Build. انظر الصورة:



الآن لقد انتهينا من حماية التطبيق يمكنك استكشاف التطبيق الجديد من خيار Output أو من خلال الـ Reflector. انظر إلى الكود قبل وبعد:






أخيراً آمل أن يكون الشرح واضحاً لديكم فقد بذلت ما أستطيع لتبسيطه وإيصاله إلى مختلف المستويات. وآمل أني أفدتكم في حماية برامجكم من الاختراق والتهكير والحفاظ على الملكية الفكرية العربية. وأنا جاهز للإجابة عن أي سؤال يدور في بالكم. كما يمكنكم نقل الموضوع مع الحفاظ على اسم الكاتب (جميع الحقوق محفوظة ).
أنتظر تعليقاتكم وآرائكم وتقييمكم للموضوع ... والسلام عليكم ورحمة الله وبركاته.


ملاحظة: هناك بعض الجمل المقتبسة من أحد المواضيع الأجنبية.
__DEFINE_LIKE_SHARE__
رد مع اقتباس
 

مواقع النشر (المفضلة)

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الحق بسرعة Microsoft .NET Framework 4 محروم.كوم منتدى أخبار المواقع والمنتديات العربية والأجنبية 0 06-20-2009 09:40 PM
[ برنامج ] : حصرياً Microsoft. NET Framework 3.5 وحزمة التحديثات SP1 محروم.كوم منتدى أخبار المواقع والمنتديات العربية والأجنبية 0 06-03-2009 06:30 AM
موعدكم اليوم مع الاصدار المنتظر Microsoft .NET Framework 4 من عقر دار مايكروسوفت محروم.كوم منتدى أخبار المواقع والمنتديات العربية والأجنبية 0 05-24-2009 12:40 AM
برنامج Microsoft .NET Framework 3.5 Service Pack 1 ضروري لكل جهاز محروم.كوم منتدى أخبار المواقع والمنتديات العربية والأجنبية 0 04-17-2009 04:40 AM
برنامج Microsoft .NET Framework 3.5 Service Pack 1 ضروري لكل جهاز محروم.كوم منتدى أخبار المواقع والمنتديات العربية والأجنبية 0 04-15-2009 06:50 AM


الساعة الآن 10:09 AM


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.5.2 TranZ By Almuhajir

RSS RSS 2.0 XML MAP HTML