سؤال

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

حاليًا أنا رجل قاعدة بيانات للمتعلم الذاتي ولدي معرفة ضحلة تمامًا حول تطبيقات تطبيقات Windows. لست متأكدًا مما إذا طرحت سؤالي بشكل صحيح بما فيه الكفاية.

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

شكرًا.

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

المحلول

نصيحتي الأساسية هي: حاول أن تجد أي طريقة أخرى للتكامل من هذا. حتى لو نجحت ، فستكون كرهائن لأي أنواع التغييرات في العملية المستهدفة ، وربما في Windows O/S. ما تصفه هو السلوك الذي يجب على معظم ماسحات الفيروسات أن يعلق ويعوق: إن لم يكن الآن ، ثم في المستقبل.

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

نصائح أخرى

لقراءة ذكرى التطبيق الآخر ، تحتاج إلى فتح العملية فيما يتعلق OpenProcess على الأقل PROCESS_VM_READ حقوق الوصول ثم الاستخدام ReadProcessMemory لقراءة أي عنوان ذاكرة من العملية. إذا كنت مسؤولًا أو لديك امتياز تصحيح ، فستتمكن من فتح أي عملية بحقوق الوصول القصوى ، فأنت بحاجة فقط لتمكين SeDebugPrivilege قبل (انظر على سبيل المثال http://support.microsoft.com/kb/131065).

إذا كنت لا تعرف الكثير عن ذاكرة عملية الوجهة ، فيمكنك فقط تعداد كتل الذاكرة فيما يتعلق VirtualQueryex (نرى كيف يمكن للمرء استخدام VirtualAllocex يفسح المجال لكهف رمز؟ كمثال حيث أقوم بفحص رمز البرنامج. بيانات البرنامج التي يمكنك فحصها بنفس الطريقة).

المشكلة الأكثر عملية التي أراها هي أنك تطرح سؤالك في عام جدا طريق. إذا شرحت المزيد عن نوع البيانات التي تبحث عنها ، فربما أقترح عليك طريقة أفضل. على سبيل المثال ، إذا تمكنت من رؤية البيانات في مكان ما ، فيمكنك فحص Windows وعناصر التحكم المقابلة فيما يتعلق بـ SPY ++ (جزء من أدوات Visual Studio). الأهم من ذلك هو فئة Windows (أو عناصر التحكم) والرسائل التي سيتم إرسالها في الوقت الحالي عندما يتم عرض النافذة الأكثر إثارة للاهتمام. تستطيع ايضا استخذام مراقبة العملية لتتبع جميع الوصول إلى الملفات والسجل في الوقت الذي سيتم فيه عرض Windows مع المعلومات المثيرة للاهتمام. على الأقل في البداية يجب عليك فحص ذكرى العملية ReadProcessMemory في اللحظة التي يتم فيها عرض البيانات التي تبحث عنها على النافذة.

إذا لم تحصل على أي نجاح في تحقيقاتك ، فإنك أوصيك بإدراجها في سؤالك المزيد من المعلومات.

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

http://www.ollydbg.de/

والتحكم في ذلك مع كل من البرنامج النصي Ollydbg و Autoit؟

تبدو مثيرة للاهتمام ... لكنها صعبة للغاية. بما أنك تقول أن هذا "لمرة واحدة" ، ماذا عن شيء مثل هذا بدلاً من ذلك؟

  • أخذ لقطة شاشة لهذا التطبيق.
  • قم بتشغيل لقطة الشاشة من خلال برنامج OCR
  • إذا كنت قادرًا على قراءة النص الذي تبحث عنه بطريقة يمكن التنبؤ بها ، فأنت في منتصف الطريق هناك!

الآن إذا كان بإمكانك قراءة لقطة شاشة OCR'd لتطبيقك ، فهي مسألة بسيطة لكتابة برنامج يقوم بما يلي:

  • نصوص الخطوات للحصول على البيانات على الشاشة
  • ينشئ لقطة شاشة للبيانات المعنية
  • يديره من خلال برنامج OCR مثل تصوير مستندات Microsoft Office
  • يستخرج النص ذي الصلة ويقوم "مهما كان" معه.

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

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

أعلم أن هذا قد لا يكون إجابة شائعة ، نظرًا لطبيعة ما يستخدمه هذا البرنامج ، ولكن مثل برامج مثل محرك الغش و Artmoney اسمح لك بالبحث من خلال جميع الذاكرة المخصصة لعملية لقيمة معينة ، ثم قم بتحسين النتائج حتى تجد عنوان القيمة التي تبحث عنها.

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

فيما يلي مثال على التقنية الموضحة أعلاه في الاستخدام: https://www.youtube.com/watch؟v=nv04gyx2jmw&t=265

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