تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مساعدة في تفكيك ملفات Firmware
#1
أرجو المساعدة من أهل الخبرة و الإختصاص و حتى الهوات مثلي في الولوج إلى عالم الـ Firmware و ملفات الـ BIN الخاصة بأجهزة الإستقبال (الرسيفر) و كيفية فك الضغط عليها و قرائتها و التعديل عليها من غير نظام الـ HEX لأنه مقعد بعض الشيء.
كل ما أريده هو فهم مبدأ عمل هذه البرامج و كيفية تحكمها في جهاز الإستقبال (الرسيفر)، و بأي لغة تمت كتابتها و تطويرها و هل يمكن عمل مثلها من الألف إلى الياء و تحميلها إلى جهاز الإستقبال (الرسيفر).
أرجو المشاركة على أوسع نطاق من الإخوة الأكارم (خاصة أهل الإختصاص) و إثارة جميع جوانب الموضوع لكي تعم الفائدة على الجميع، و ينجلي الغموض عن هذا الموضوع المحتكر من طرف المصنعين.
تحياتي الخالصة و إحتراماتي للجميع.
أعضاء أعجبوا بهذه المشاركة :
#2
إقتباس :كيفية فك الضغط عليها

 توجد اداة حالياً تعتبر رقم #1  في هذا المجال تسمى binwalk، الاداة مبرمجة ببايثون ويمكنك برمجة اضافات او اضافة قواعد فحص جديدة لها.
binwalk هي اداة سريعة وسهلة لتحليل واستخراج والهندسة عكسياً لملفات الـfirmware  
 
https://github.com/ReFirmLabs/binwalk
 مخرجات الفحص
$ binwalk firmware.bin

DECIMAL HEX DESCRIPTION
-------------------------------------------------------------------------------------------------------------------
0 0x0 DLOB firmware header, boot partition: "dev=/dev/mtdblock/2"
112 0x70 LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 3797616 bytes
1310832 0x140070 PackImg section delimiter tag, little endian size: 13644032 bytes; big endian size: 3264512 bytes
1310864 0x140090 Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 3264162 bytes, 1866 inodes, blocksize: 65536 bytes, created: Tue Apr 3 04:12:22 2012
 
طريقة استخراج الملفات من الـfirmware
binwalk -e firmware.bin
طريقة استخراج الملفات وكذلك الملفات الفرعية (الملفات التي بداخل الملفات)
binwalk -Me firmware.bin
 
لاسخراج نوع معين من الملفات مثلا الصور او صفحات الويب او ملفات جافا سكربت، لاسخراج الصور كمثال:
binwalk -D 'png image:png' firmware.bin
لتحليل الـEntropy
خاصية مهمة في حالة لم تجد توقيع مطابق عند الفحص او للبحث عن اقسام مهمة
binwalk -E firmware.bin
[صورة مرفقة: 61085404-2cca8000-a3fe-11e9-9555-98b258c9e249.png?s=100]
هذا في حالة ان ملف الـFirmware بحوزتك
بالنسبة للتنصيب يفضل نظام لينكس لان نظام ويندوز يوفر دعم ضعيف لمتطلبات الاداة
(لاحظ ان الاداة لا يمكنها تحليل وفك الضغط عن جميع الملفات وبعض الملفات تحتاج عمل يدوي وقراءة للتوثيق الرسمي للهاردوير الذي تعمل عليه)
اذا لم يكن بحوزتك فتوجد عدة طرق :
 
  • الاولى وهي اسهلها عن طريق تحميل الملف من موقع الشركة في حال توفرة
  • والطريقة الثانية هي اعتراض التحديث قبل وصولة الى الجهاز من شبكة الشركة وذلك عن طريق برامج الـ Sniffer
  • والطريقة الثالثة والاصعب تتطلب منك فتح الجهاز وربما فك اللحام وعمل لحام وبعض الادوات لعمل  dump للـFirmware من الذاكرة (هذه طريقة فعالة للحصول على Firmware مفكوك التشفير في حال كان هنالك تشفير) وذلك عن طريق اما JTAG  او UART او  SPI (Serial Peripheral Interface Bus)
 
طبعا لن احاول التوسع اكثر لان ذلك يتطلب موضوع  كامل لكل طريقة ولكني اوضحت النقاط الاساسية.
إقتباس :
و قرائتها و التعديل عليها من غير نظام الـ HEX لأنه مقعد بعض الشيء.
بما انها ملفات binary فالاطلاع عليها والتعديل يكون عن طريق disassembler مثل IDA Pro (هذا يتطلب منك معرفة باسمبلي المعالج الذي يخص جهازك)، بعض الـFirmware يحوي صفحات ويب وصور وملفات جافا سكربت وهي يمكن الاطلاع والتعديل عليها عن طريق اي محرر اكواد برمجية ومحررات الصور.
 
إقتباس :كل ما أريده هو فهم مبدأ عمل هذه البرامج و كيفية تحكمها في جهاز الإستقبال (الرسيفر)،
لا يوجد طريقة شاملة وكل جهاز وله خصائصه وطرقة الخاصة، بالأخص الانظمه المضمنة فهي عالم ثاني  عن عالم الحواسيب والغموض يكتنفها، افضل وسيلة هي الاطلاع على التوثيق الرسمي الذي توفره الشركة وكذلك الاطلاع على قطع الهاردوير المستخدمة في الرسيفر وقراءة توثيقها الرسمي كذلك، خذ بالاعتبار بعض الشركات تستخدم برامج مفتوحة المصدر واذا كانت تستخدم برامج برخصة GPL   فهي ملزمة باعطائك الكود البرمجي في حال طلبته.
إقتباس :
و بأي لغة تمت كتابتها و تطويرها و هل يمكن عمل مثلها من الألف إلى الياء و تحميلها إلى جهاز الإستقبال (الرسيفر).
 الغالبية العظمى تبرمج بلغة السي، ونعم يمكن تطوير مثلها فمن طورها وبرمجها هو بشر مثلك، بالنسبة لكيفية فعل ذلك فهو خارج تماما عن تخصص المنتدى Smile
 
سبحان الله وبحمده، سبحان الله العظيم
أعضاء أعجبوا بهذه المشاركة : mribraqdbra , لحرش حرزالله , mohamad , [email protected] , ام عائشة
#3
شكرا جزيلا أخي [b]Gu-sung18[/b]  على التفصيل في الإجابة و على الإهتمام أولا.
في الحقيقة ما يثير دهشتي هي و بمقارنة بسيطة بين الحاسب و الرسيفر من ناحية حساب الوقت و مراقبته و الربط بين السوفت و الهردوير في هذه العملية، العملية بسيطة و جلية في ما يخص الحاسب، أما بالنسبة إلى الرسيفر فلا أكاد أجد لها إجابة أي كيف يمكن للرسيفر مراقبة الوقت و التاريخ بالنسبة لمدة صلاحية الخادم (Server) و التي من خلالها يفك التشفير عن القنوات المشفرة. بالنسبة للحاسوب فذلك يكمن بين البايوس و بطارية التوقيت لضبط الوقت و التاريخ و مراقبته، أما الرسيفر فكيف يتم ذلك لأنه لا يحتوي على بطارية و لا على بايوس على مستوى الهرد الخاص به. و عذرا على كثرة الأسئلة لأنه في الحقيقة أمر في غاية الأمهمية بالنسبة لي و أيضا لعالمنا العربي كوننا إقتحمنا عالم الحواسيب و الهواتف و كشفنا أسرارها و إستطعنا مجارات الغرب في تطويرها، لكن و للأسف مجال الرسيفر و الخوادم المرتبطة به يكاد يكون مبهم بشكل كبير للسواد الأعظم من الناس، لذى أردت الخوض فيه و صبر أغواره لأنه عالم تجاري واسع محتكر من قبل الشركات المصنعة.
تحياتي القلبية.
أعضاء أعجبوا بهذه المشاركة : mribraqdbra
#4
(27-07-2019, 10:32 AM)لحرش حرزالله كتب : كيف يمكن للرسيفر مراقبة الوقت و التاريخ بالنسبة لمدة صلاحية الخادم (Server) و التي من خلالها يفك التشفير عن القنوات المشفرة.

في الحقيقة لست خبير بالكترونيات وعلمي محدود بالموضوع لننتظر احد الاعضاء الخبراء بالموضوع فيوجد لدينا من هم خبراء بالكترونيات  هنا، من خلال بحثي وجدت هذا الموضوع عن جهاز Outernet رغم انه ليس خاص بالتلفاز ولكنه شبيه نوعا ما.
إقتباس :يتم استخدام Outernet time service لتحديث الساعة على رسيفرات Outernet، نظرًا لأن هذه الرسيفرات مصممة للتشغيل دون اتصال بالإنترنت وعادة ما لا يكون لديها ساعة داخلية لمعرفة الوقت الحقيقي. الـ time service تبث time packet تقريبًا كل دقيقة. تحتوي هذه الحزمة ( او الـpacket) على Unix timestamp (كـ big-endian 32bit integer)، ويستخدم
برنامج الرسيفر الخاص بـ Outernet هذا الـ timestamp لضبط ساعة النظام.

الرابط
https://destevez.net/2016/10/reverse-engineering-outernet-time-and-file-services/
^ مقالتان سابقتان للموضوع أعلاه
http://destevez.net/2016/10/reverse-engineering-outernet-modulation-coding-and-framing/
https://destevez.net/2016/10/reverse-engineering-outernet-l3-and-l4-protocols/

محاضرتة في مؤتمر الهكر ccc في المانيا بعنوان Reverse engineering Outernet
الـ presentation
http://destevez.net/wp-content/uploads/2016/12/slides.pdf
الفيديو
https://media.ccc.de/v/33c3-8399-reverse_engineering_outernet

---------------------------------------------------
المهندس العكسي Sofiane Mohamed Talmat من شركة ioactive في مؤتمر الهكر EKOPARTY  بعنوان  SATELLITE TV RECEIVERS: FROM REMOTE CONTROL TO ROOT SHELL

الـ presentation
https://www.ekoparty.org/archivo/2015/eko11-Satellite_TV_Receivers.pdf

الفيديو
https://vimeo.com/showcase/3682874/video/148910624
---------------------------------------------------
فيديوهات اخرى من مؤتمرات مختلفة
  • How Do I Crack Satellite and Cable Pay TV? (33c3)
https://www.youtube.com/watch?v=lhbSD1Jba0Q
  • Reverse Engineering Satellite Based IP Content Distribution
    • هنا يشرح نظام مختلف قليلاً ولكن الاساسيات نفسها تقريباً، هنا يتكلم عن الـ satellite based IP content delivery وهو عملية بث المسلسلات والافلام حسب الطلب عبر الستلايت او " video on demand"  هنا يتكلم عن الهندسة العكسية للـ satellite reception  و تحليل الحزم او packet analysis  وكذلك error correction مع شرح الرياضيات المستخدمة
https://www.youtube.com/watch?v=U1WyBP4lKZk
---------------------------------------------------

مواضيع تخص الهندسة العكسية لرسيفرات مختلفة
  • الهندسة العكسية لـ Prifix 9500 Digital Satellite TV Receiver
https://greysec.net/showthread.php?tid=1773
  • الهندسة العكسية لـ Prifix 9500 Digital Satellite TV Receiver
https://defensivetech.blogspot.com/2014/04/from-boot-to-root-reverse-engineering_7.html
سبحان الله وبحمده، سبحان الله العظيم
أعضاء أعجبوا بهذه المشاركة : لحرش حرزالله , mribraqdbra , [email protected] , th3m4tr!x
#5
شكرا جزيلا أخي الغالي [b]Gu-sung18[/b]
الإهتمام نصف الإجابة.
سأبحث و أوافيك بالجديد إن شاء الله.
يعطيك الصحة، تحياتي
أعضاء أعجبوا بهذه المشاركة : mribraqdbra
#6
السلام عليكم
لست خبير ولكن سأحاول الإجابه على قدر ما أفهم
فالسوفتوير يتحكم في الجهاز عن طريق البوت (سوفتوير) أي يمكن القول مع بعض التحفظ على هذه العباره هو عباره عن نظام تشغيل الجهاز التحم في الصوت والصوره ....
فمعرفة تشفير السوفتوير وفك الضغط عليك بأهل الإختصاص
أما بخصوص السيرفر ما دام السيرفر يتصل بصحابه أي من يقم بتزويدك بالشفرات فهنا يمكن معرفه التاريخ والساعه من خلال الإتصال
مع العلم أن الريسيفر إن لم تخني الذاكره يمكن أن يقوم بتصحيح الساعه بمجرد إتصاله بالإنترنات يقوم بتصحيح التاريخ والساعه والله أعلم
أعضاء أعجبوا بهذه المشاركة : mribraqdbra , [email protected] , لحرش حرزالله
#7
السلام عليكم
اهلا بك اخي  تعاملت كثيرا في هدا المجال 

بالنسبة لبرنامج فك السوفت فهناك البلرنامج في الاعلى طرحه احد الاخوة مشكور 
الفك عادتا يعتمد على المعالج المستعمل للجهاز  وطريقة تجميعه وضغطه وحساب حماياته لكل بلوك
اغلب الاجهزة الحديثة تفك بواسطة binwalk كاجهزة الحاملة لمعالج gx ,  والبعض لا كاجهزة sunplus فلها طريقة خاصة للفك يدويات وتحتاج لوقت وتدقيق طويل وربما لها سوفت للفك من الشركات المالكة ويطول الحديث في هدا

بالنسبة للوقت ادا كنت تتكلم عن emu الداخلي للجهاز الي يتم تحديث شفراته بالنت من وقت لاخر مثل تشفير tunderberg  biss  power vu الخ
فهي تاخد التوقيت من الستريم الخاص بالقناة فعند بث القمر للقناة هناك يكون pid خاص بالتوقيت ورقم التسلس للشفرة المطلوبة وبناء على ذلك ياخد الجهاز الرقم ويقوم بعمليات حسابية لايجاد الشفرة المناسبة في الوقت المناسب


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

وهكذا عند كل اتصال اي ان تاريخ نهاية الصلاحية مسجل في الخادم وليس عندك في الجهاز 

ادا اردت تجديد السيرفر فيمك ذلك اما بالتجويل لسوفت جهاز اخر بمعالج مشابه او تعديل الجزء المحمي من ذاكرة الفلاش في الجهاز 
اتمنى ان يكون شرحي موجز ويرد على استفساراتك
أعضاء أعجبوا بهذه المشاركة : Gu-sung18 , الباحث , [email protected] , لحرش حرزالله
#8
وعليكم السلام أخي محمد

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

كما أريد أن أطلب منك إن كانت لك خبره كيف يعمل الـ Emu أي كيف يتم المحكاه ولنقل نظام الأرديتو كيف تم برمجة المحاكي هل هناك مثال أحيانا تجد الخوارزميه ولا تفهمها وهذا لعدم معرفتك بخوارزمية التشفير 
هل من مثال تطبيقي حتى على نظام تشفير قديم للأرديتو أو الفياكسس
وجزاكم الله خير
أعضاء أعجبوا بهذه المشاركة : Gu-sung18 , mribraqdbra
#9
شكرا لك أخي محمد mohmaed .
كل ما قلته بخصوص ضبط التوقيت و إكتشاف المكان جميل جدا في حالة ربط الرسيفر بالنت، و لكن السؤال المطروح كيف يقوم بنفس العملية فيما يخص (الدانغل) أو (SDS)، كيف يمكن التحكم في مدة صلاحيته و مراجعتها من طرف الرسيفر كونه غير متصل بالنت، إلا إذا كان يقوم بنفس العملية عن طريق أنترنت الساتلايت و الله أعلم.
أما فيما يخص تفكيك الملفات بواسطة (Binwalk) فلقد جربتها مع العديد من ملفات السوفت على نظام لينيكس أوبنتو خاصة لجهازي الستارسات 8800HD و الجيون (Géant) 2500hd و لكن لم أفلح في إستخراج ملفات الصور مثلا التي عادة ما تكون تحمل شعار الشركة المصنعة و التي يستدعيها الجهاز عند الإقلاع أو البوت.
تحياتي
أعضاء أعجبوا بهذه المشاركة :
#10
mohmaed@
يبدوا انه لديك خبرة بالموضوع، ممكن تكتب لنا درس (اذا توفر لديك الوقت) لكي نستفاد من خبرتك.
 
(19-08-2019, 10:12 AM)لحرش حرزالله كتب : أما فيما يخص تفكيك الملفات بواسطة (Binwalk) فلقد جربتها مع العديد من ملفات السوفت على نظام لينيكس أوبنتو خاصة لجهازي الستارسات 8800HD و الجيون (Géant) 2500hd و لكن لم أفلح في إستخراج ملفات الصور مثلا التي عادة ما تكون تحمل شعار الشركة المصنعة و التي يستدعيها الجهاز عند الإقلاع أو البوت.

ممكن ترفع الملفات
سبحان الله وبحمده، سبحان الله العظيم
أعضاء أعجبوا بهذه المشاركة :


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم