سؤال

يجب أن أعترض التنفيذ في تطبيق كبير جدًا في العديد من الأماكن.

ما هي البرامج التي يمكنني استخدامها للقيام بذلك؟ ما هي التقنيات الموجودة لهذه المشاكل؟

إن الهندسة العكسية وإضافة السنانير يدويًا ربما لا تكون الحل الأمثل لهذه المشكلة ، لأن التطبيق كبير جدًا ويمكن تحديث جزء من التطبيق في وقت ما ، على ما أعتقد مع بعض الأدوات أو الممارسات الجيدة لهذه المشكلة ، يمكنني القيام بذلك بشكل أسرع, أي شخص يعرف كيف يفعل؟

فليساعدني احد؟

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

المحلول

نظرًا لأن جزء الأدوات قد تم تغطية ، فإليك شيء للتقنيات.

اعتمادًا على ما تحتاج إلى ربطه وما إذا كان هناك حماية أم لا ، فهناك بعض الطرق:

  1. تصحيح Call/JMP النسبي في الثنائي الافتراضي: هذا هو أبسط ، ولكن أيضًا الكثير من العمل إذا لم تتمكن من العثور تلقائيًا على جميع الإشارات إلى وظيفة ما ، ربما لن يعمل هذا في هذا السبب بسبب معاييرك.

  2. IAT/EATH SHIKING: هذا فائدة للواردات (IAT) والصادرات (EAT) ، رائعة إذا كنت تستهدف مجموعة معروفة/مصدرة من وظائف API. يمكن العثور على مثال جيد على ذلك هنا أو هنا

  3. الساخنة: قدم نظام التشغيل Windows XP SP2 شيئًا يسمى "Hot-Patching" (يستخدم لتحديثات وظيفة نظام الوقت الفعلي) ، حيث تبدأ جميع وظائفها (WinAPI) بـ "MOV EDI ، EDI" ، مما يسمح بقفزة نسبية إلى تصحيحها المساحة الحرة التي تم إنشاؤها فوق كل وظيفة قابلة للتشغيل الساخنة (يمكن للمرء أن يفعل ذلك أيضًا). يتم استخدام هذا عمومًا للبرامج التي تحقق هنا و هنا

  4. تنقيط التعليمات البرمجية: التقاط تدفق التنفيذ عن طريق وضع إعادة التوجيه في مساحة التعليمات البرمجية التعسفية. نرى هنا, هنا أو هنا

  5. إعادة توجيه VFT/COM: الإدخالات فوق الكتابة بشكل أساسي في جدول الوظائف الظاهرية للكائنات ، مفيدة للتطبيقات القائمة على OOP/COM. نرى هذه

هناك الكثير من مكتبات الحفلات الثالثة ، ومن المحتمل أن يكون الأكثر شهرة MS Detours, ، يمكن للمرء أن ينظر إليه apihijack أو أ محرك مصغرة.

لا شيء يمكن أن يحل أي شيء عن الدس الأولي الذي ستحتاج إلى فعله مع مصحح أخطاء مثل Ollydbg, ، ولكن معرفة الطريقة التي ستعايلك بها يمكن أن تقصر بشكل كبير الوقت عن الوقت الذي يقضيه الوقت في التمسك

نصائح أخرى

بعض التفاصيل حول ما عليك القيام به بالضبط (على سبيل المثال كيف تحدد مكان كسر) ستكون لطيفة. اعتمادا على وضعك ، شيء مثل دبوس قد تعمل.

أقترح استخدام Deviare API Hook. إنها أسهل طريقة يمكنك فعل ما تحتاجه. يحتوي على بعض كائنات COM التي يمكنك استخدامها لربط التطبيق من عملية مختلفة. في عمليتك ، تحصل على معلومات معلمة كاملة ويمكنك استخدامها في أي لغة برمجة (أنا أستخدم C# وتعمل مثل السحر). إذا كنت بحاجة إلى اعتراض واجهة برمجة تطبيقات التسجيل ، أقترح استخدام Deviare لتصحيح ما تحتاج إلى اعتراضه ، ولكن سيتعين عليك صنع خطافاتك الخاصة ، وإلا ، ستجد مشكلات في الأداء.

يمكنك القيام بتوصيل واجهة برمجة التطبيقات (API) إذا كنت مهتمًا بتقاطع مكالمات الطريقة.

أو استخدم بعض المفوض مثل Softice أو Ollydbg أو win32dasm.

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