كيف نقوم بالربط remote على openwrt x86 باستخدام idapro ? - نسخة قابلة للطباعة +- الفريق العربي للهندسة العكسية (https://www.at4re.net/f) +-- قسم : منتديات الهندسة العكسية - Reverse Engineering Forums (https://www.at4re.net/f/forum-4.html) +--- قسم : الأسئلة والإستفسارات، حلول المشاكل و تبادل الخبرات - Expert Exchange Newbie Questions Answers (https://www.at4re.net/f/forum-36.html) +--- الموضوع : كيف نقوم بالربط remote على openwrt x86 باستخدام idapro ? (/thread-1180.html) |
كيف نقوم بالربط remote على openwrt x86 باستخدام idapro ? - alaa2003 - 21-10-2019 السلام عليكم نسخة openwrt x86 على فيرشوال ماشين جربت linux_server ولكن لم تعمل .. الملف لم يشتغل اصلا رغم اني اعطيته التصريح 777 جربت gdbserver نسخة 6 ، ربطت مع برنامج idapro ولكن يبدون ان فيها مشاكل لذا ما الحل يا شباب ؟ RE: كيف نقوم بالربط remote على openwrt x86 باستخدام idapro ? - ام عائشة - 21-10-2019 جرب هذه الأداة
ساقدم شرح وافي حولها و عن بعض الحيل المفيدة جدا في قادم الايام مسالة وقت والتزامات فقط RE: كيف نقوم بالربط remote على openwrt x86 باستخدام idapro ? - Gu-sung18 - 21-10-2019 ما هو البرنامج الذي تستخدمه كـ VM لتشغيل openwrt x86 عليه؟ بشكل عام فـ Qemu هو البرنامج الامثل لهذه الاغراض. ما هي الخطوات التي اتبعتها انت؟ كان يجب ان تضع الخطوات التي اتبعتها لكي نعرف أين المشكلة يا عزيزي هذا شرح من مبرمجي IDA لكيفية التنقيح باستخدام gdbserver على برنامج Qemu و vmware:
RE: كيف نقوم بالربط remote على openwrt x86 باستخدام idapro ? - alaa2003 - 22-10-2019 الاخ المحترم [email protected] لم استطع استخدام الادارة ، لذا نرجو الشرح الوافي منك الاخ الفاضل [b]Gu-sung18[/b] بستخدام vmware انا لاحظت ان اللينكات اللي حضرتك وضعتها تخص تنقيح للكيرنل ، ولكن انا الهدف هو تنقيح ملف دي النسخة لتجربة الربط 20 ميجا فقط root / AzsAzs29هتغير الايبي بتاع جهازك الى مثلا 10.0.0.2 و ادخل على المتصفح و ادخل عليه 10.0.0.1 وهتضغط Edit و بعدها تضع ايبي في نفس رينج شبكتك ، مثلا اذا كانت شبكتك 192.168.1.0 فتضع ايبي مثلا 192.168.1.20 جرب ادخل من الايبي الجديد بعد ما ترجع الايبي بتاع شبكتك ومتنساش تقفل dhcp علشان هيبنج 10 بنجات و يفصل 10 بالنسبة للملف اللي عايز يتعمل له debug /usr/sbin/vibe المشكلة زي ما وضحت هي البداية و الربط فقط طبعا الشغل كله على ida اجباري RE: كيف نقوم بالربط remote على openwrt x86 باستخدام idapro ? - Gu-sung18 - 23-10-2019 بالنسبة للرابط فما هو مصدرة؟ هذه النسخة بالذات تابعة لاي منتج او بالأحرى لماذا تريد تنقيحها بالذات انا اسأل لانها لا تقبل التحديث لانها قديمة ولان gdb غير مثبت فيها بالتالي امامي خيارين اما بناء نسخة مع gdb او تنصيب gdb من خلال حزم الشركة الجاهزة عن طريق الامر opkg نحتاج ان نثبت gdbserver متوافق مع openwrt x86 لكي يعمل على openwrt x86 وبالتالي يمكننا الاتصال مع منقح gdb او منقح IDA pro إقتباس :انا لاحظت ان اللينكات اللي حضرتك وضعتها تخص تنقيح للكيرنل ، ولكن انا الهدف هو تنقيح ملف لانهم يستخدمون Qemu للانظمة المضمنه وليس vmware، حتى موقع openwrt يوفر نسخ لـ Qemu وليس لـ vmware والرابط الاول هو خاص بالتنقيح لملف على Qemu RE: كيف نقوم بالربط remote على openwrt x86 باستخدام idapro ? - alaa2003 - 23-10-2019 بالنسبة للنسخة فهي openwrt ولكن من خلال x-wrt اللي توقفواX-Wrt is an extension of OpenWrt for the end-user. ومن هنا تقدر تشوف ال history https://en.wikipedia.org/wiki/X-Wrt ولكن انت بنفسك لاحظت ان الكيرنل بتاعها مش قديم!!! يعني مش هيكون نفس كيرنل النسخة ال discontinued لذا كنت فكرت في حاجتين .. اما اني اعيد وضع روابط ال package resources مرة ثانية و اضع روابط نسخة مماثله من openwrt مباشرة ,وده لانها بتكون نفس الباكدجات ipk وبالتالي ممكن تقبل التحديث من موقع openwrt مباشرة وفقا ل arc الخاص بيها او اني اسحب ipk مباشرة من openwrt وانصبها يدوي زي ما بنعمل في ريسيفرات ال enigma مع ملاحظة اختيار x86 المتوافق معاها عموما كنت نفذت الاختيار الثاني: ولكن مع مناقشتي لاحد الاصدقاء قالgbd + ida is bad pair... it is buggy when target uses pthreads (vibe uses a lot) إقتباس :ولان gdb غير مثبت فيها بالتالي امامي خيارين اما بناء نسخة مع gdb او تنصيب gdb من خلال حزم الشركة الجاهزة عن طريق الامر opkgياليت لو يتم بناء نسخة gdbserver ممكن تحل مشكلة pthreads ورغم اني مش فاهم معنى pthreads (ياليت توضح معناها ) وكمان هل هناك اي فرصة لتشغيل linux_server الخاص ب ida_pro RE: كيف نقوم بالربط remote على openwrt x86 باستخدام idapro ? - Gu-sung18 - 24-10-2019 إقتباس :لذا كنت فكرت في حاجتين .. اما اني اعيد وضع روابط ال package resources مرة ثانية و اضع روابط نسخة مماثله من openwrt مباشرة ,وده لانها بتكون نفس الباكدجات ipk وبالتالي ممكن تقبل التحديث من موقع openwrt مباشرة وفقا ل arc الخاص بيهااو تنقل الملف عبر ssh من ويندوز الى openwrt عبر WinSCP إقتباس : ولكن مع مناقشتي لاحد الاصدقاء قال لا اعتقد ان هذا الكلام صحيح فـ GDB هو منقح مشهور ومستخدم على نطاق واسع من انظمة السيرفرات والحواسيب الشخصية وحتى الانظمة المضمنه ويدعم العديد العديد من الميزات وله عدد مطويرين هائل، كما ان ida له دعم ممتاز من قبل مطوري البرانامج ويستخدم بكثر في تحليل الانظمة المضمنة. قبل قليل ولكي اتأكد قرأت مقالة عن تحليل Bot يستخدم معالج MIPS باستخدام openwrt + qemu + ida pro ولم يواجه كاتب المقالة اي مشكلة مع الـpthreads وهذا يثبت كلامي https://sourceware.org/gdb/onlinedocs/gdb/Threads.html وكذلك https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Debugging_with_gdb/threads.html فالتوثيق الرسمي يقول ان GDB يمكنه التعامل مع الامر (و ida pro عندما يستخدم linux_server فهو يدمج قدرات منقح GDB مع المحلل الخاص بـ ida pro) ولكن بشكل عام لو البرنامج استخدم multithreaded اي اكثر من thread واحد فالمنقح سيراقب الكل ولكن سيركز اهتمامة على thread واحد والذي يسمى بـ current thread او الـthread الحالي. ولكنه بشكل عام قادر على اتمام المهمة. إقتباس :ورغم اني مش فاهم معنى pthreads (ياليت توضح معناها ) سأقوم بشرح الامر بشكل مبسط حسب فهمي للامر، عندما تقوم بتشغيل برنامج ستنشأ عملية او process (افتح task manager في ويندوز وسيتوضح لك الامر) وهذه العملية او process تحوي مجموعة خيوط او threads والخيوط (threads) هي عبارة عن مجموعة من التعليمات البرمجية التي تكون مسار معين للعملية، فيبدو البرنامج كأنه يقوم بأكثر من وظيفة في نفس الوقت. ( اقرأ ردي هنا pid3434 حيث ستجد مثال على برنامج عملت dump لجميع الـ threads تبعه حيث ان كل thread يقوم بمهمة يقوم بتنفيذها وكل مهمة له قيم مسجلات خاصة وذاكرة خاصة تتشارك بها مع بقية الـthreads في ذاكرة البرنامج الواحد) الان هذا الـthreads هو مبدأ و تاريخيا كانوا المصنعين يقومون ببرمجة نسختهم الخاصة من هذه المبدأ لذلك ظهرت مشكلة عدم التوافقية لان كل مصنع يبرمج نسختة الخاصة ويصنع API لها لذلك تقرر برمجة programming interface لهذا المبدأ يستخدم بشكل واسع كـstandard اي جعلة الستاندارد او القياسي لحل مشكلة عدم التوافقية والان المصنعين اما يستخدمون نسختهم الخاصة مع النسخة القياسية PThreads او يستخدمون PThreads حصراً وانظمة لينكس ويونكس وماك (نظام ابل) هو من النوع الاخير. PThreads: وهي اختصار للـ POSIX Threads إقتباس : وكمان هل هناك اي فرصة لتشغيل linux_server الخاص ب ida_pro نعم توجد فرصة وحتى لو لم تتمكن من تشغيل السيرفر الذي يأتي مع IDA يمكنك استخادم السيرفر الذي ياتي مع GDB لانه حسب الكتاب الخاص بـ IDA يمكنك التواصل مع سيرفر gdb إقتباس :Remote Debugging with IDA ----------- انا حاولت ان استخدم WinSCP لنقل الملف ولكن لدي مشكلة مع الايبيات والاتصال بالنت وابى openwrt ان يتصل وبالتالي لم اتمكن من نقل الملف. RE: كيف نقوم بالربط remote على openwrt x86 باستخدام idapro ? - alaa2003 - 25-10-2019 جزاك الله خيرا على هذه المعلومات المفيدة والقيمة إقتباس :نعم توجد فرصة وحتى لو لم تتمكن من تشغيل السيرفر الذي يأتي مع IDA يمكنك استخادم السيرفر الذي ياتي مع GDB لانه حسب الكتاب الخاص بـ IDA يمكنك التواصل مع سيرفر gdbهذه اخبار سارة منك يا صديقي،بشرك الله بالخير اذن لنتبع خارطة الطريق الأولية: 1- سيرفر IDA المرفق 2- GDBServer إقتباس :انا حاولت ان استخدم WinSCP لنقل الملف ولكن لدي مشكلة مع الايبيات والاتصال بالنت وابى openwrt ان يتصل وبالتالي لم اتمكن من نقل الملف.سويت لك فيديو يشرح الطريقة التي ذكرتها في المشاركة#4 وبينت فيها استخدام winscp عملي https://www.sendspace.com/file/itxhfv ونسيت اسوي امر بينج من داخل التيرمنال ، طبعا شغاله تمام RE: كيف نقوم بالربط remote على openwrt x86 باستخدام idapro ? - Gu-sung18 - 02-11-2019 شكرا لك لقد حللت مشكلة الايبيات الان بالنسبة لسيرفر IDA فيبدوا انه لن يعمل بسبب نقص في المكتبة التي يعتمد عليها السيرفر: لقد جربت مختلف الطرق حتى تغيير المسارات وكذلك الصلاحيات وفي الاخير قررت فحص مكتبات الـruntime التي يعتمد عليها ووجدت اختلاف عن طريق فحص الملف من خلال الامر file في لينكس لقد فحصت سيرفر IDA
وهذا فحص لملف vibe من openwrt
كما ترى فسيرفر IDA يستخدم مكتبة ld-linux.so.2 بينما openwrt يستخدم ld-uClibc.so.0 وهي النسخة التي تستخدم بكثرة في الأنظمة المضمنة. ------------- قمت برفع سيرفر GDB وبعدها تنصيبة عن طريق الامر
ونجح التنصيب: وكذلك استطعت تشغيل السيرفر بنجاح: وهذا منقح GDB من على نظام ويندوز استطاع التنقيح عن بعد. بالنسبة لـ IDA فلم اجرب على نظامي بعد ولكن بما ان GDB استطاع العمل بنجاح فـ IDA يمكنه العمل كذلك فهو يعتمد على GDB لتنقيح انظمة لينكس. كل ما عليك هو وضع الـ IP والـport كما في GDB ( لا تنسى اسم root وكلمة المرور) انا اعلم انك كنت ترغب بتشغيل سيرفر IDA ولكن اهلاً بك في عالم الأنظمة المضمنة حيث اغلب البرامج لن تعمل، وتلك التي تعمل تعمل بسبب وجود مطورين خاصين بها واحب ان اقول لك ان GDB هو البرنامج السائد في عالم الأنظمة المضمنة و IDA يستخدم بقلة في التنقيح (التحليل الديناميكي) ولكن بكثرة في التحليل الستاتيكي. (بالمناسبة اذا كان هدفك هو تحليل امني لايجاد الثغرات فـ GDB افضل من IDA من حيث الدعم للأنظمة المضمنة وكذلك من حيث الميزات خاصة اذا نصبت اضافة له مثل pwndbg) |