كيفية اكتشاف خيارات سطر الأوامر (إن وجدت) لأحد الأصل غير الموثوق من أصل غير معروف؟

StackOverflow https://stackoverflow.com/questions/2341095

سؤال

خذ قابلة للتنفيذ غير موثقة من أصل غير معروف. محاولة /؟ ، -H ، -help من سطر الأوامر لا تعطي شيئًا. هل من الممكن اكتشاف ما إذا كان القابل للتنفيذ يدعم أي خيارات سطر الأوامر من خلال النظر داخل القابل للتنفيذ؟ ربما عكس الهندسة؟ ماذا سيكون أفضل طريقة للقيام بذلك؟

أنا أتحدث عن Windows قابلة للتنفيذ ، لكنني سأكون مهتمًا بسماع الأساليب المختلفة التي ستكون مطلوبة مع نظام تشغيل آخر.

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

المحلول

لنظام التشغيل Windows ، يمكنك أن ترى هذا السؤال حول إزالة تجميع النوافذ التنفيذيين. يجب أن يكون من السهل نسبيًا اكتشاف الخيارات على الأقل (ما يفعلونه بالفعل هو قصة مختلفة).

نصائح أخرى

في Linux ، سيتم تشغيل الخطوة الأولى strings your_file الذي يتفريغ جميع سلاسل الأحرف القابلة للطباعة في الملف. وبالتالي سيتم عرض أي ثوابت ، بما في ذلك أي تعليمات "الاستخدام".

قد تكون الخطوة التالية هي الركض ltrace على الملف. هذا يوضح جميع وظائف المكالمات التي يقوم بها البرنامج. إذا كان يشمل getopt (أو مألوفة) ، فهي علامة مؤكدة على أنها تقوم بمعالجة معلمات الإدخال. في الواقع ، يجب أن تكون قادرًا على رؤية الحجة التي يتوقعها البرنامج بالضبط لأن هذه هي المعلمة الثالثة لـ getopt وظيفة.

إذا كانت محاولة قابلة للتنفيذ العاكس. سيؤدي ذلك إلى تحويل رمز MSIL إلى رمز C# المكافئ الذي قد يسهل فهمه. لسوء الحظ ، سيتم فقد أسماء المتغيرات الخاصة والمحلية ، حيث لا يتم تخزينها في MSIL ولكن يجب أن يكون من الممكن متابعة ما يجري.

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