سؤال

لا أحد يعرف من المفكك ل ARMV4i الملفات التنفيذية وملفات DLL؟

لقد حصلت على البرنامج الإضافي DLL الذي أكتبه باستخدام نادر جدًا data abort (<5% من الوقت) قمت بتضييق نطاقه إلى وظيفة محددة (عبر سلة المهملات وإخراج العنوان بواسطة data abort).ومع ذلك، فهي وظيفة كبيرة إلى حد ما وأود تضييق نطاقها قليلاً.أعلم أن ذلك يحدث في memset() اتصل، ولكن هذه الوظيفة المحددة بها حوالي 35 وظيفة، لذلك كنت آمل أنه من خلال النظر إلى التفكيك، يمكنني معرفة مكان المشكلة بالفعل.

هل كانت مفيدة؟

المحلول

سيقوم IDA Pro بالتأكيد بتفكيك ARM.وقاموا (Datarescue) ذات مرة بترتيب ترخيص لي في حوالي الساعة 11 مساءً بالتوقيت المحلي، لذلك أود أن أوصي بهم...

أرى من http://www.datarescue.com/idabase/ أنه كان هناك بعض إعادة الترتيب للشركة، ولكن أعتقد أنه لا يزال منتجًا جيدًا.

وهذا رابط الناشر الجديد: http://www.hex-rays.com/idapro/

نصائح أخرى

أعتقد أن المؤسسة الدولية للتنمية برو سوف تفعل ما تريد.لقد تم ذكره في كتاب O'Reilly Security Warrior وقد رأيته موصى به في منتديات مطوري Windows Mobile.

سحر عبارة عن أداة تجميع ومفكك ومجمع يعمل بنظام Windows Mobile / Pocket PC / Win CE (لوحدات المعالجة المركزية ARM).

يمكنك أيضًا الاطلاع على BDASM، وهو برنامج مفكك للبرامج التجريبية - تحتوي الإصدارات الأحدث على مكونات إضافية لـ ARM.يبدو أن موقع الويب معطل، ولكن إذا بحثت عنه ستجد توزيع البرامج التجريبية.

الكود المصدري لمفكك ARM البسيط، نزع السلاح, ، متوفر أيضًا.

يمكن استخدام binutils (أدوات مترجم Linux) objdump لإنتاج التفكيك، "objdump -b ثنائي -m Arm7tdmi -D file_name"

-آدم

منذ عامين عثرت على أداة تفكيك ARM التي استخدمتها أثناء القيام ببعض الأعمال المضمنة.ومع ذلك، لا أتذكر اسمه - على الرغم من أنني أعتقد أنه كان جزءًا من حزمة أكبر مثل المحاكي أو شيء من هذا القبيل.

في حالتك، هل يمكنك أن تطلب من المترجم الخاص بك إنشاء قائمة تجميع للتعليمات البرمجية المترجمة؟قد يساعدك ذلك في إعطائك بعض المجال.

إذا فشل ذلك، يمكنك تقسيم وظيفتك إلى وظيفة جديدة واحدة أو أكثر، إذا كان كل ما يمكنك الحصول عليه هو تتبع المكدس.ثم قم بتقسيم الوظيفة الجديدة إلى وظيفة واحدة أو أكثر مرة أخرى.هذه هي طريقة "فرق تسد" المجربة والحقيقية.وإذا كان لديك 35 استدعاءًا لـ memset() في دالة واحدة، فقد تكون فكرة جيدة من وجهة نظر التصميم أيضًا!

تحديث:لقد وجدت الحزمة التي استخدمتها: أرمفيتامين.لقد نجح الأمر مع كود ARM9 الذي كنت أقوم بتطويره، ولكن يبدو أنه لم يتم تحديثه منذ بعض الوقت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top