كيف يمكنك استخراج RT_RCDATA القسم من Win32 القابل للتنفيذ (يفضل أن يكون في C#)?

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

  •  02-07-2019
  •  | 
  •  

سؤال

الطريقة الوحيدة التي أعرف كيفية القيام بذلك حاليا هو فتح EXE في Visual Studio.أحب أن تكون قادرة على القيام بذلك تماما في C# إذا كان ذلك ممكنا.وتشمل الخيارات الأخرى:

  • P/الاحتجاج إيثرنت() من Win32 API
  • باستخدام أداة موجودة (يعرف أحد؟)
  • أفكار أخرى ؟

وذلك بفضل!

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

المحلول

P/استدعاء إيثرنت سوف يكون الرهان الأكثر أمانا.

وإلا سوف تضطر إلى كتابة الخاصة بك P/E المعالج على سبيل المثال. PE المعالج سبيل المثال.المعالج ليس نهاية العالم, ولكن كما يمكنك أن ترى أكثر من ذلك بكثير المعنية من P/الاحتجاج.

نسيت تقريبا بقدر أدوات تذهب معظم P/E المتصفحات سوف نفعل ذلك لك.على سبيل المثال.P/E Explorer, وهو متاح ولكن ليس حقا يجري تطويرها.أنا أيضا استخدام IDA Pro على مثل هذه الاشياء.سريع IDA البرنامج المساعد تفعل هذا بسهولة.

نصائح أخرى

أفترض أن تحاول قراءة مورد من نوع RCDATA من قابل للتنفيذ (أن تكون على علم بأن "القسم القابل للتنفيذ" يعني شيء مختلف - وهو يشير إلى .النص .البيانات .rdata, الخ أجزاء من ملف PE).إذا كنت ترغب في قراءة من الجمعية الحالية, هنا هو البرنامج التعليمي يظهر كيف: الوصول إلى الموارد المضمنة باستخدام GetManifestResourceStream, باستخدام GetManifestResourceNames و GetManifestResourceStream الأساليب.

إذا كنت لا تريد أن تقرأ من الحالية للتنفيذ ، يمكنك استخدام طريقة مماثلة إلى واحد هو مبين هنا.

هذه الطرق لها ميزة على PInvoke أنهم 100% .صافي و لا داعي للعزف مع تنظيم الحجج من منصة أنواع البيانات و التأكد من صحتها كل القيم العودة.

هناك مفيدة جدا مكتبة العديد من الموارد المهام في http://resourcelib.codeplex.com

العديد من الفئات وظيفة لا التفاف تلك النافذة-api-المكالمات UpdateResource(...), ، وما إلى ذلك.

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