تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
لا يمكن تنقيح ملف لعبة بشكل مباشر
#1
Bell 
لدى لعبة تحتوى على ملف لتشغيلها كمثال "Game_gate.exe", ولقد اكتشفت بعد ذلك بأن ملف التشغيل هذا مجرد بوابة لفتح ملف أخر داخليا كمثال "Game_main.exe" وهو الملف الحقيقي لتشغيل اللعبة, ويتم فتح الملف الداخلي باستخدام الدالة "kernel32.CreateProcessInternalA", وبعد البحث داخل مجلد اللعبة وجدت هذا  الملف "Game_main.exe", وعندما قمت بإرفاقة داخل المنقح x64dbg فانه يستمر عدة خطوات ثم بعد ذلك يستدعى الدالة "ExitProcess" ثم يغلق, فقمت بتجاوز هدة الدالة والقفز إلى مكان أخر حتى لا يتم غلق الملف ولكن لأسف لا يقوم بتشغيل اللعبة كما هو الحال مع الملف "Game_gate.exe".
ملحوظة: ملف "Game_gate.exe" حجمه 92 كيلو , بينما ملف "Game_main.exe" حجمه 4.58 ميجا.


فلماذا تفتح اللعبة من خلال الملف  "Game_gate.exe" ولا تفتحها من "Game_main.exe", هل هناك حماية مثلا أو سر ما غير معروف؟
وكيف أقوم بتنقيح الملف "Game_main.exe" والذي لا يستمر في التنقيح ويغلق بعد عدة خطوات مهما فعلت سوف يغلق ولا يفتح اللعبة؟
أعضاء أعجبوا بهذه المشاركة :
#2
حياك الله
أنا أيضا في أغلب برمجياتي أقوم بنفس عمل هذه لعبة
أتوقع ما سأقوله سوف يساعدك

أي الملف رئيسي لا يمكن تشغيله مباشرة
أرفق جمبه برنامج ثاني وهو مسؤول على تشغيل ملف رئيسي

مثلا
برنامج رئيسي اسمه Game.exe
برنامج اللي راح يفتحه مباشرة اسمه Launcher.exe

من برنامج Launcher.exe أقوم بتمرير نص معين لبرنامج Game.exe
أضع شرط في برنامج Game.exe يتحقق من نص الذي مرره له برنامج Launcher.exe....

أرجو أن تكون فكرة وضحت لك
أعضاء أعجبوا بهذه المشاركة : TeRcO
#3
1-شغل اللعبة
2-جرب استخدام الخاصيه  "attach" في المنقح ....واختر الملف
" اللهم أحسن خاتمتنا وأخرجنا من الدنيا علي خير"
أعضاء أعجبوا بهذه المشاركة : IM-HERE
#4
أشكرك أخي IM-HERE على الرد:

أنا بالفعل كنت أشك بأن اللعبة تقوم بتمرير معامل أو Parameter إلى command Line كمثال "C:\Game.exe parm=1" ووجدت أنها تمرر بالفعل معامل للملف الأخر 
"Game_main.exe" وهو أسم ملف اللعبة لكنة ليس له تأثير سواء أبقيت علية أو حذفته ولذلك اعتقدت أن هناك سبب أخر.

أشكرك أخي TeRcO على الرد:

للأسف عندما أقوم بعمل attach لملف اللعبة الثاني "Game_main.exe" أجد اللعبة قد تخطط المرحلة الأولي من دخول اللعبة وهدة المرحلة التي أريدها للبحث عن رسالة "أدخل الأسطوانة لتشغيل اللعبة" وهدة هي المهمة المطلوبة.
أعضاء أعجبوا بهذه المشاركة : IM-HERE
#5
ما هي اللعبة؟
أعضاء أعجبوا بهذه المشاركة :
#6
(03-12-2022, 08:47 PM)lionking كتب : كمثال "Game_gate.exe", ولقد اكتشفت بعد ذلك بأن ملف التشغيل هذا مجرد بوابة لفتح ملف أخر داخليا كمثال "Game_main.exe

نفس الحال تماما مع لعبة جنرالز generals حيث يوجد 
generals.exe ~ 90KB
game.dat ~5MB 
قمت بعمل dinput8.dll بروكسي حيث يقوم game.dat بتحميل هذه المكتبة قبل الوصول لنقطة البداية وقمت بوضع داخل DllMain استدعاء للدالة MessageBox لتعلق التنفيذ ريثما أطلق المنقح
​​​​انت انظر ما المكاتب التي تحملها اللعبة قبل الوصول لل OEP وقم بعمل لها بروكسي (باستثناء المكاتب الويندوز الأساسية ك ntdll kernel32 gdp)
أعضاء أعجبوا بهذه المشاركة :
#7
إقتباس :نفس الحال تماما مع لعبة جنرالز generals حيث يوجد 
generals.exe ~ 90KB
game.dat ~5MB 
قمت بعمل dinput8.dll بروكسي حيث يقوم game.dat بتحميل هذه المكتبة قبل الوصول لنقطة البداية وقمت بوضع داخل DllMain استدعاء للدالة MessageBox لتعلق التنفيذ ريثما أطلق المنقح
​​​​انت انظر ما المكاتب التي تحملها اللعبة قبل الوصول لل OEP وقم بعمل لها بروكسي (باستثناء المكاتب الويندوز الأساسية ك ntdll kernel32 gdp)

لعل اللعبتين يكون متشابهين بنفس الطريقة.
أعضاء أعجبوا بهذه المشاركة :
#8
يوجد تحقيق داخل الملف إذا تم إنشاء Mutex يمكنك ان تبدأ من هنا:
https://i.imgur.com/inUx8dG.png
أعضاء أعجبوا بهذه المشاركة :
#9
إقتباس :يوجد تحقيق داخل الملف إذا تم إنشاء Mutex يمكنك ان تبدأ من هنا:
https://i.imgur.com/inUx8dG.png

كيف سمحت لك اللعبة أن تصل إلى هذا المكان في ملف "gamemd.exe" لان إذا قمت بفتح هذا الملف بشكل مباشر وتنقيحه لن يسمح لك بالاستمرار كثيرا وسوف يستدعى الدالة " ExitProcess" ثم يتم غلق الملف؟  هذا ما يحدث معى.
أعضاء أعجبوا بهذه المشاركة :
#10
قمت بالتتبع حتي وصلت لهذه النقطة، ستجد الاماكن المهمة اذا نزلت لاسفل، يمكنك اجراء بعض التعديلات هنا وستعمل اللعبة.
أعضاء أعجبوا بهذه المشاركة :


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 12 ) ضيف كريم