ما هي التقنية التي يستخدمها سنوب لتفقد تطبيق WPF

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

  •  21-12-2019
  •  | 
  •  

سؤال

سنووب، فائدة التجسس، تستخدم بعض التقنيات القوية (ربما بعض الانعكاس) لفحص تطبيق WPF قيد التشغيل.الأكثر إثارة للاهتمام هي الحقيقة، أن SNNOP قادرة على قراءة هيكل الكائن بأكمله.

قبل بضعة أيام قمت بتنزيل شفرة المصدر سنويب وقضيت بعض الوقت في دراسة السلوك الداخلي.لسوء الحظ، لم أستطع معرفة ما بعد كيف يفعله سنوب هذه الأشياء، لذلك آمل أن يكون لدى أي شخص مساعدتي.

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

تحديث:

هذا هو الرمز المطلوب:

giveacodicetagpre.

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

نصائح أخرى

تحديث:

حسنا، لقد وجدت موقع التعليمات البرمجية الأساسية، والتي يتم استخدامها من قبل Snoop لتوفير القدرة على الحقن.إلى دهشتي هذا الرمز مكتوب C. ربما هناك سبب.

وهذا هو الكود (آمل أن يكون الأمر بخير لنشره هنا):

giveacodicetagpre.

سنوب لا تفقد WPF من الخارج.يقوم بحقن نفسها في التطبيق وتضيف بالفعل نافذة المكبرة أو سنك إليها.لهذا السبب أيضا عند الخروج من سنووف نوافذ التفتيش في الواقع تبقى مفتوحة.

حتى يقوم رمز "التفتيش" ببساطة بتفتيش النافذة التي تريدها ويمكنها استخدام جميع وظائف WPF AVABL للقيام بذلك.مثل VisualTreeHelper و logicaltreehelper كما هو مذكور هنا في وقت سابق.

للحصول على إطار اختبار صغير أقوم بإنشاء رمز حقن لإضافة كائن وكيل صغير حتى أتمكن من التحكم في التطبيق بسهولة (اضغط على الأزرار وتغيير القيم وتنفيذ الوظائف على ViewModels إلخ).

الإجابة أعلاه لا تعمل من أجلي.يبدو غامضا بعض الشيء.توسيعت على الإجابة المقبولة قليلا مع هذا الرمز:

giveacodicetagpre.

هذه الإجابة تبدو أكثر اكتمالا وسيعمل على الآخرين إذا كانت الإجابة المقبولة تعمل لأي شخص.ومع ذلك، فإن هذا السطر الأخير من هذا الرمز يعود لاغيا بالنسبة لي.

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