ملتقى الفيزيائيين العرب

ملتقى الفيزيائيين العرب (http://www.phys4arab.net/vb/index.php)
-   منتدى الفيزياء الكهربائية والمغناطيسية. (http://www.phys4arab.net/vb/forumdisplay.php?f=11)
-   -   قصتي مع الـ FPGA " قصة في تحايل المبرمجين على التقنية" (http://www.phys4arab.net/vb/showthread.php?t=14654)

البالود 15-05-2007 23:22

قصتي مع الـ FPGA " قصة في تحايل المبرمجين على التقنية"
 
قصتي مع الـ FPGA






في بداية العام 1996 ، عندما طرحت شركة سوني جهاز الألعاب البلاي ستيشن لأول مرة في العالم ، فاجأت الجميع بأن الجهاز يعمل على الأقراص المدمجة وليس الكارتريدج كما توقع البعض .. ونظراً لبساطة نسخ الأقراص المدمجة .. وضعت الشركة نظام حماية فعال ، وهو رمز لكل منطقة ، وهي : PAL لأوروبا والشرق الأوسط ، NTSC\UC للنظام الأمريكي ، NTSC\J للنظام الياباني .
وفي هذه الحالة لن تعمل الأقراص المنسوخة المستوردة من أمريكا على الأجهزة في الشرق الأوسط نظراً لإختلاف الكود ..
يبدو أن سوني نجحت في فكرتها ... لكن ليس طويلاً !
ففي منتصف العام 1997 ( في هذا العام اشتريت جهاز سيجا ميجا درايف ، يعمل على الكارتريدج ، نظراً للثمن الباهظ للبلاي ستيشن في ذلك الوقت ) ، ظهرت مجموعة في هونج كونج في الصين ، تطلق على نفسها الإسم - Old Crow - متخصصة في الإلكترونيات الرقمية ... حيث قامت هذه المجموعة بمحاولة فهم لنظام الحماية فوجدوا التالي :
إن كل قرص مخصص للبلاي ستيشن عليه كود للحماية ، وهو مخزن في الأربع مسارات الأولى من القرص .
فمثلاً : القرص المخصص للنظام الأمريكي يحمل الكود التالي :
بترميز ASCII :
0x9, 0xA9, 0x3D, 0x2B, 0xA5, 0xF4
وبالنظام الثنائي :
1001 10101001 00111101 00101011 10100101 11110100
وإذا لم يتوافق هذا الكود مع الكود المخزن في شريحة الـ BIOS بالجهاز ، فلن يتم تشغيل القرص .. وستظهر الرسالة : Please Insert Playstation Format Disk
---
إذاً .. فما العمل ؟
إن مجموعة Old Crow لديها الجواب الشافي .. وهو أننا يمكن أن نتحايل على الجهاز وذلك بحقن الكود السابق في شريحة البيوس ! حيث قامت المجموعة بتخزين جميع أكواد الأنظمة في مايكروكنترولير من شركة MicroChip وهو المتحكم القديم ذو 16 دبوس
الذي يحمل الرقم PIC16C541
وعند بداية تشغيل الجهاز ، فإن المتحكم سيبدأ بإرسال الأكواد إلى المعالج بالترتيب التالي :
1- كود النظام الياباني .
2- كود النظام الأمريكي .
3- كود النظام الأوروبي .
وعند توافق أحد الأكواد المخزنة في المايكروكنترولير مع الكود الموجود في شريحة البيوس سيقوم الجهاز بتشغيل القرص المدمج بغض النظر عن نظامه !!

( شايفين يا شباب !! )


وهذه الطريقة متبعة حتى الآن .. وهي فعالة وسريعة ، وتغني عن الطريقة القديمة وهي باستخدام أقراص المقايضة !
لكن حدث تطور بسيط ، وهو أن المتحكم PIC16C541 قديم وذاكرته الداخلية صغيرة ، بالإضافة للعدد الكبير لأطرافه ، حيث يتم توصيل 10 دبابيس في كل جهاز من أصل 16 دبوس ،، فعندما طرح المتحكم PIC12C508 ، الذي له 8 دبابيس فقط بالإضافة إلى ضعف الذاكرة الموجودة في المتحكم القديم ، فإن عدد الدبابيس التي توصل مع الجهاز هي 4 فقط !

http://elec.olom.info/fpga2/post-4-26650-modchip.jpg
صورة المايكروكنترولير PIC12C508 المستخدم حالياً
في بداية العام 2000 ... وعندما قامت سوني بطرح جهازها الخارق البلاي ستيشن 2 الذي يعمل على أقراص DVD الرقمية ... حدث انقلاب كبير !!
ففي ذلك الوقت كانت أقراص الدي في دي غالية الثمن .. بالإضافة إلى أنها لم تكن منتشرة بشكل تجاري .. لكن القراصنة لم ييأسوا ، فقاموا بنسخ قرص الدي في دي على 4 أو 5 أقراص سي دي !! لكن النتائج لم تكن مقبولة ، فقد أصبح هناك مشاكل تقنية في تشغيل الأقراص المنسوخة وكذلك لم تكن ذات جودة عالية !
وكانت تستخدم طريقة المايكروكنترولير البسيطة كما في جهاز البلاي ستيشن القديم .. بالإضافة لإستخدام أقراص المقايضة الخاصة ..
فالقراصنة لم يستطيعوا الوصول للكود الرئيسي المخصص للحماية بأقراص البلاي ستيشن الثاني ، وذلك لأنه مشفر بقوة 128 بت .. وكذلك نظام الحماية العالي في أقراص الدي في دي .
لذلك لم يكن أمامهم سوى الرجوع للطريقة القديمة واستخدام أقراص المقايضة ، بجانب قطعة ذاكرة تحتفظ بالمعلومات المؤقتة !!
وتتلخص فكرة العمل كالتالي :
قبل تشغيل الجهاز نضع قطعة الذاكرة الخاصة في فتحة USB الخاصة بالجهاز ، ونشغله .. فتصبح الذاكرة جاهزة لتسجيل أية معلومات .. نفتح صينية القرص ونضع قرص المقايضة أو أي قرص أصلي بنظام الحماية المطابق للجهاز .. ونغلق الباب .. فيقوم الجهاز بقرآءة كود الحماية الصحيح فتقوم الذاكرة باختزان هذا الرقم بداخلها مؤقتاً .. بعد ذلك .. نخرج هذا القرص ونضع أي قرص آخر منسوخ ومن أي نظام ونغلق الباب ، فتقوم الذاكرة بإعادة إرسال الكود إلى المعالج وبالتالي يتم التحايل على الجهاز وتشغيل القرص .
لكن هذه الطريقة متعبة وذات كفاءة قليلة ...

في نهاية العالم 2001 وبداية العام 2002 ،، حدث انقلاب كبير !!
حيث قامت شركة تشانيل تكنولوجي بمساعدة مجموعة ( لي سانج الصينية ) .. بتطوير أول قطعة تعديل ( Modification Chip ) لجهاز البلاي ستيشن 2 ذات كفاءة لاتضاهى إلى هذا اليوم .. حيث بعدها انتشرت أقراص الدي في دي المنسوخة بشكل رهيب .. وأصبحت تطغى على أقراص السي دي !!
إن هذه القطعة أحدثت انقلاب كبير في عالم القرصنة .. فلحد الآن لا توجد قطعة تعديل بمثل مميزاتها الرهيبة .. فهي تستطيع تشغيل جميع أقراص البلاي ستيشن الأول والثاني كذلك تشغيل جميع أفلام الدي في دي لكل المناطق من 1 إلى 8 !! وأيضاً تستطيع إغلاق خاصية المايكرو فيجن ... كل هذا لأنها تستخدم تقنية FPGA ..
هيا بنا لنذهب بجولة للتعرف على هذه القطعة ..

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

فور معرفتي بنزول هذه القطعة ... توجهت إلى سوق ألعاب الكمبيوتر لشرائها والتعرف عليها أكثر ..
لكن ما لفت انتباهي بشدة هو العبارة ( FPGA MESSIAH MAIN IC ) كما في الصورة السابقة .. مما جعلني أتساءل !!؟ ماهو FPGA ؟؟
فأنا أعرف في القطع التي سبقتها وجود شيئين أساسيين وهما : Flash Memory و Interface IC .. لكن هذه القطعة اخترقت القاعدة واستخدمت تقنية جديدة كلياً ..

الصورة السابقة بداية المشوار ...

نعم .. بمجرد نظري لهذه القطعة .. وبسبب فضولي الزائد لمعرفة المزيد عنها .. لاحظت وجود كلمة ACTEL على الشريحة السوداء وهي شركة متخصصة بشرائح FPGA ، وقمت بعمل بحث في النت عن هذا الإسم لأجد موقع هذه الشركة .. وقمت بتحميل الداتا شيت لهذه الشريحة لكنني لم أفهم شيء ولم أزداد سوى تشويشاً وشوقاً لمعرفة المزيد ..

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

لو دققت النظر في الجزء الإيمن من الصورة ، وعلى المبرمج المتصل بجهاز البلاي ستيشن 2 ، لوجدت شريحتين في المبرمج مكتوب عليها Xilinx وكذلك مكتوب على الصورة نفسها
HDL .... وهي لغة وصف الأجهزة hardware description language مشتقة من لغة السي .. وهي لغة مستخدمة من قبل المهندسين في اللألكترونيات و الدوائر الكهربائية وهندسة مكونات الحاسب ، و تستخدم كذلك في تصميم الخوارزميات و الفلب فلوبس و الترانسيستورس وعمل محاكاة simulation ونماذج تطويريه prototypes وكذلك ستجد قرصين فوق الجهاز لونهما أزرق .. وهي أقراص المقايضة .. نعم ،، يمكنك ربط جميع هذه الأشياء لتتأكد من صحة كلامي ..
إنهم يبرمجون هذه القطع ، كما لو كنا نبرمج المتحكم PIC بلغة الإسمبلي
إنني أحاول جاهداً التعامل مع هذه القطع .. ومعرفة المزيد عنها ،، وأورد لكم هنا صور من موضوع دار بيني وبين أحد الأعضاء الذين يعرفون القليل عن هذه التقنية ، وإليكم صورة من واجهة برنامج تصميم دوائر منطقية باستخدام لغة HDL وهو برنامج Xilinx Foundation Tools

صورة الميسايا وهي موصلة مع نظام البلاي ستيشن 2 ...

هذه القطعة توصل مع البلاي ستيشن 2 بـ 23 سلك .. وهو أقل عدد ممكن حتى اليوم !
إن القطعة NEO4 المبنية على المتحكم PIC16CA33 ، التي طرحت قبل قطعة الميسايا بستة أشهر ، توصل مع الجهاز بواسطة 44 سلك !! لكن هذه القطعة فشلت سريعاً نظراً لعدد الأسلاك الهائل .. وكذلك عدم كفاءتها !!
لكن هناك 3 أسلاك رئيسية توصل مع جميع القطع ، أو أي دائرة إضافية وهي :
VCC مصدر التغذية .
GND الأرضي .
CLOCK نبضات الساعة .
وبقية الأسلاك لإرسال واستقبال البيانات .. لكن كيف تكتشف ؟
ممممممممم ..
بعد هذه القصة .. ماذا تستفيدون ؟ هل ألفت انتباهكم لشيء جديد ؟ هل أجد اهتام في المستقبل ؟ أم أن هذا الشيء سيبقى حلماً لا نستطيع تحقيقه ؟
هل تعرفون شيئاً عن لغة HDL ؟
هل تساءلتم كيف يكتشف هؤلاء الهاكرز نقاط الإختراق بالجهاز ؟
هل يستطيع أحدكم توصيل مبرمج مع جهاز غير معتاد ؟ كما سبق ؟
كل هذه تساؤلات لم أجد لها إجابة .. وربما يطول الإنتظار إلى وقت غير معلوم !!

لكن .. حتى اللحظة التي أستطيع فيها الإجابة على هذه التساؤلات ... أترككم مع هذا الموضوع ... والذي آمل أن تكونوا قد استفدتم منه ما أرجوه ..

صورة الإيموشن إينجن .. المعالج الرئيسي لجهاز البلاي ستيشن 2 :


صورة لأحد المخترقين ..

موقع يشرح أساسيات المعالجات :
http://www.izabella.freeuk.com/index.html
بعض المصطلحات التي تخص موضوع الدارات عالية السعة والقابلة للبرمجة ،، وهذه هي::

( PLDs ) Programmable logic Devices.
( PAL ) for programmable array logic .
( GAL ) for generic array logic .
( ELPD ) for electrically programmable devices .
( IFL ) for integrated fuse logic .
( FPL ) for fuse-programmable logic .
( PLA ) for programmable logic arrays .
( PEEL ) for programmable electrically erasable logic .
( FPGA ) for field-programmable gate arrays .
( CPLD ) for complex programmable logic device .
( SRAM FPGA ) or static RAM field-programmable gate array


منقــــــــــــــول


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

ربي لك الحمد على نعمك التي لاتحصى





ارجوا أن ينال أعجابكم
تقبلوا خالص الود والتقدير

عادل الثبيتي 16-05-2007 01:09

رد: قصتي مع الـ FPGA " قصة في تحايل المبرمجين على التقنية"
 
يعطيك العافيه وبارك الله فيك وجزاك الله خيراً ،،،

خلف الجميلي 16-05-2007 16:34

رد: قصتي مع الـ FPGA " قصة في تحايل المبرمجين على التقنية"
 

الله يعطيك العافية

kingstars18 16-05-2007 16:44

رد: قصتي مع الـ FPGA " قصة في تحايل المبرمجين على التقنية"
 
[GRADE="00008B FF6347 008000 4B0082"]
شكرا لك وبارك الله فيك،،
[/GRADE]

البالود 16-07-2008 10:56

رد: قصتي مع الـ FPGA " قصة في تحايل المبرمجين على التقنية"
 
بارك الله فيكم جميعا

أشكركم جزيل الشكر

لكم مني خالص الود والتقدير

البيلسان2010 18-07-2008 00:47

رد: قصتي مع الـ FPGA " قصة في تحايل المبرمجين على التقنية"
 
[align=center]الله يعطيك العافية[/align]


الساعة الآن 08:28

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. TranZ By Almuhajir