
هذا المستودع يدور حول الهندسة العكسية الأقدم من أجهزة الراديو سيارة فولكس واجن ، مثل راديو Premium 5 الموضح أعلاه. يبلغ عمر أجهزة الراديو التي تمت دراستها هنا أكثر من خمسة عشر عامًا وهي الحجم الفردي. على الرغم من سنهم ، فهي أذكية ودعم على متن الطائرة (باستخدام بروتوكول KWP1281 من VW على خط K-Line). ستجد ملاحظات حول البروتوكولات والأجهزة هنا ، إلى جانب تفكك جزئي للبرامج الثابتة ، ولكن لا توجد ثنائيات أصلية للبرامج الثابتة أو EEProms.
تتطلب أجهزة الراديو VW من هذه الحقبة رمز أمان من أربعة أرقام يشار إليه غالبًا باسم "الرمز الآمن". عادةً ما تقوم أجهزة الراديو بتخزين الرمز الآمن في EEPROM التسلسلي مثل 93C46 أو 24C04. يمكن العثور على الرمز الآمن عن طريق فتح الراديو ، وتهرب من EEPROM ، وقراءته ، ثم لحام EEPROM مرة أخرى. أردت أن أعرف ما إذا كانت هناك طريقة أسهل.
قمت بتفكيك البرامج الثابتة لهذه الراديو: Premium 4 (Clarion) ، Premium 5 (Delco) ، Gamma 5 (Technisat) ، و Rhapsody (Technisat). لقد وجدت أن جميعهم لديهم أجهزة خلفية لقراءة الرمز الآمن عبر التشخيصات على متن الطائرة. قراءة الكود بهذه الطريقة تعني أن الراديو لا يلزم فتحه وقد لا يلزم إزالته من السيارة. نظرًا لأن هذه المعلومات لا يتم نشرها في أي مكان ولم أتمكن من العثور على أي أداة يمكنها القيام بذلك ، فقد قمت ببناء أداة خاصة بي.
kwp1281_tool : أداة بروتوكول التشخيص (فولكس واجن KWP1281). يمكن أن يرسل أوامر تعسفية إلى راديو ، أو أي وحدة أخرى ، باستخدام بروتوكول KWP1281. يمكنه أيضًا إرسال أوامر باستخدام بروتوكول خاص موجود في أجهزة الراديو التقنية. أخيرًا ، يمكنه استرداد الرمز الآمن تلقائيًا لأي من أجهزة الراديو المذكورة أعلاه.
faceplate_emulator : محاكي الوجه (NEC µPD16432B). يتم توصيله براديو Premium 4 بدلاً من اللوحة الوجه ويسمح بالتحكم في الراديو على المسلسل. كما يمكن أن تتحكم في وقت واحد في لوحة حقيقية.
tape_emulator : محاكي شريط الكاسيت (Philips TDA3612). يتم توصيله براديو Premium 4 بدلاً من مجموعة شريط الكاسيت SCA4.4/TDA3612 ويخدع الراديو في التفكير في أن شريط يتم تشغيله.
volume_monitor : Volume Monitor (Mitsubishi M62419FP). يتصل بالتوازي مع وحدة تحكم الصوت M62419FP المستخدمة في راديو Premium 4 ويرسل تحديثات عبر المسلسل كلما تم تغيير سجلات الصوت.
reverse_engineering : ملاحظات حول أجهزة الراديو من الهندسة العكسية ، بما في ذلك قوائم التفكيك المعلقة في البرامج الثابتة الراديوية. لا يحتوي هذا المستودع على أي برامج ثابتة أو ثنائيات EEPROM.
فيما يلي بعض الاكتشافات الأكثر إثارة للاهتمام التي قمت بها حول أجهزة الراديو:
تدعم جميع أجهزة الراديو التي تمت دراستها مجموعة شائعة من وظائف التشخيص KWP1281 على عنوان الراديو العادي من 0x56. بعض أجهزة الراديو (وليس كلها) لديها أيضًا أوامر KWP1281 على هذا العنوان نفسه. تختلف الأوامر المحمية المتوفرة حسب النموذج ولكنها قد تتضمن القدرة على قراءة ROM أو RAM المتحكم ، وقراءة/كتابة EEPROM (S). يتطلب الوصول إلى الأوامر المحمية إرسال كتلة تسجيل الدخول بناءً على الرمز الآمن وأيضًا إجراء قراءة جماعية لمجموعة مخفية.
يحتوي VW Premium 4 (Clarion) على أمر KWP1281 غير محمي 0xF0 الذي يعيد الرمز الآمن. كما أنه يحتوي على وضع مخفي حيث يمكن تغيير الرمز الآمن عبر لوحة الوجه. يتطلب إدخال هذا الوضع الضغط على مفاتيح غير موجودة على لوحة الوجه. أفترض أن هناك لوحة تصنيع خاصة تستخدمها المصنع.
يستجيب VW Premium 5 (Delco) و Seat Liceo (Delco) لمجموعة مختلفة من أوامر KWP1281 على العنوان 0x7C. تتطلب هذه الأوامر المصادقة باستخدام كتلة تسجيل الدخول المتشددين. بمجرد المصادقة ، تتوفر الأوامر لقراءة وكتابة EEPROM ، والتي يمكن استخدامها لاسترداد الرمز الآمن.
لدى VW Gamma 5 (Technisat) و Rhapsody (Technisat) بروتوكول خاص ، غير KWP على العنوان 0x7C. إنه على عكس أي شيء وجدته موثقًا ومن المحتمل أن يكون من قبل Technisat فقط لتصنيع الراديو. لديها أوامر لقراءة وكتابة EEPROM ، والتي يمكن استخدامها لاسترداد الرمز الآمن. عادة ما يتم تصفية منطقة الرمز الآمن من EEPROM من هذه الأوامر ، ولكن أمر آخر يعطل التصفية.
لقد طورت أيضًا العديد من المشاريع الأخرى كتأثير جانبي لهذا العمل:
F2MC8DUMP: استغلال لتفريغ ROM الداخلي من متحكم Fujitsu F2MC-8L
F2MC8DASM: Disassembler Fujitsu F2MC-8 الذي يولد الإخراج متوافقًا مع ASF2MC8 Assembler
K0Dasm: NEC 78K0 disassembler الذي يولد الإخراج متوافق مع AS78K0 Assembem
K0EMU: NEC 78K0 محاكي قادر على تشغيل أجزاء كبيرة من البرامج الثابتة VW Premium 5
M740dasm: Mitsubishi 740 Disassembler الذي يولد الإخراج متوافق مع AS740 Assembem
مايك نابريزني