GHOST2010

[ تمت الإجابة ]كيف يمكن معرفة العملية التى تستخدم ملف معين؟

28 ردود في هذا الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

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

شد حيلك يا X+G :lol: :lol:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

وعليكم السلام ورحمه الله وبركاته ،

Process Explorer

وقد يكون السبب في ذلك هو وضع الحقل dwShareMode بالقيمه 0 عند انشاء الملف CreateFile وبالتالى لا يوجد أي تطبيق يستطيع عمل أي عملية على هذا الملف ،،

وربما غير ذلك :) ، ننتظر GM + Xa :lol:

بالتوفيق ،

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
وعليكم السلام ورحمه الله وبركاته ،

Process Explorer

وقد يكون السبب في ذلك هو وضع الحقل dwShareMode بالقيمه 0 عند انشاء الملف CreateFile وبالتالى لا يوجد أي تطبيق يستطيع عمل أي عملية على هذا الملف ،،

وربما غير ذلك :) ، ننتظر GM + Xa :lol:

بالتوفيق ،

أنا عايز اعرف بالكود مش بأداة جاهزة :blink:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

معذره أخي :) ،،

على العموم عند انشاء أي Kernel Object باستخدام الدوال CreateFile/Process/Thread فيتم وضع الObject في الKernel Space والـ Handle العائد لهذا الObject هو فقط رقم index لجدول في العملية يسمى Process Handle Table ،، من خلال هذا الHandle (Index يمكن الوصول لعنوان الكائن في منطقة الكيرنل والوصول لflag يحدد هل هو قابل للوراثه أم لا .

ولا يمكن أن تحصل على هذا الHandle أي عملية أخرى الا لو كان الHandle قابل للوراثه Ineritance (ويجب أن تكون العملية الثانية ابن للأولى ) أو كانت العملية نفسها تستخدم أي طرق من الSharing Handle .. وكل هذا لن يحصل والسبب أننا لم ننشئ العملية الأولى من الأساس..

خلاصه لا أعتقد بأن هناك طريقة من الUser-Mode للوصول لHandle عملية لا تشارك مقابضها :) .

والله أعلم ، أرجوا تصحيح في حال كنت على خطأ :).

بالتوفيق،

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أنا نزلت برنامج اسمه Unlocker بيعمل الكلام ده ,, لو الملف مستخدم وحبيت أحذف الملف مثلا البرنامج ده بيعرض عليا خدماته ويفرد عضلاته ويقولى انه يقدر يحذفه وفعلا بيحذفه :blink: يعنى أكيد في طريقة :angry: :angry:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

صحيح كما قال الأخ وجدي السبب هو فتح الملف بـShare لا يقبل فتح الملف بـDelete Share .

ولا يمكن أن تحصل على هذا الHandle أي عملية أخرى الا لو كان الHandle قابل للوراثه Ineritance (ويجب أن تكون العملية الثانية ابن للأولى ) أو كانت العملية نفسها تستخدم أي طرق من الSharing Handle .. وكل هذا لن يحصل والسبب أننا لم ننشئ العملية الأولى من الأساس..

خلاصه لا أعتقد بأن هناك طريقة من الUser-Mode للوصول لHandle عملية لا تشارك مقابضها .

يبدو ان الأمر اختلط عندك أخ وجدي ، على العموم فيما يخص المقابض هناك شيئان يجب ذهرهم :

1- Inheritance :

ويحدث عند فتح مقبض للـObject مع وضع الـInherited flag من العملية الأم ، هكذا عند انشاء العملية الابن واذا تم وضع الباراميتر bInheritHandles = TRUE يتم نسخ الـInheritable Handles فقط عن طريق ExDupHandleTable ... كل هذا يحدث في الكرنل اثناء انشاء البروسس الابن (ObInitProcess) .

2- Duplication :

وهي خدمة توفرها نظم NT لنسخ مقبض من بروسس الى اخر (NtDuplicateObject) .

الحل باختصار كالآتي (ابحث اكثر ستجد اكواد جاهزة) :

1- جرد جميع المقابض بالنظام (Call NtQuerySystemInformation + SystemHandleInformation).

2- عمل Duplicate للمقابض مقبض مقبض بحيث يمكنك استخدام هذا المقبض للحصول على معلومات اضافية للـObject .

3- جلب بيانات عن الـObject الخاص بالمقبض (NtQueryObject) بمعرفة نوعه (Process/File/Thread ..etc) .

4- اذا كان الكائن عبارة عن ملف يتم جلب اسمه ثم مقارنته بالملف الذي تريد اغلاقه .

5- يتم اغلاق المقبض عن طريق نفس الدالة NtDuplicateHandle مع العلم CloseSource .

هناك مشروع رائع لصديق اسمه ProcessHacker وهو شئ مثل ProcessExplorer لكن مفتوح المصدر وله ميزات عن PE في التعامل مع Infected Environments .

المشروع مكتوب بالـسي شارب والدرايفر باسي :

http://processhacker.sourceforge.net

يمكنكم المشاركة فيه اذا اردتم او التعلم من الكود .

-------------

حلول اخرى :

- التعامل مباشرة مع الـFilesystem ، عن طريق معرفة البنية الصحيحة لنظام الملفات للـpartition الذي عليه الملف والتعديل فيه بمستوى الدسك ، سيلزمك وقت لدراسة NTFS/FAT .

- اختراق الـFilesystem من الكرنل مود ، عن طريق التلاعب في بنية الـFILE_OBJECT الخاصة بهذا الملف وتعديل الـShareAccess حسب ما تريد ، او تعديل الكود الخاص بعملية التحقق من الـShareAccess مباشرة (الـFSD يفعل ذلك عن طريق IoCheckShareAccess) .

3

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بمناسبة فرد العضلات ،، شاهد هذا العرض بالمرفقات :D

KD.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

والله ياجى انت معلم بس بلاش تفرد عضلاتك اكتر من كده :lol: :lol: :lol:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

أعذروني على حشر نفسي :P

لم استطع المقاومة

فهذا التساؤل في بالي ايضاً

بالنسبة للأخ GamingMasteR

بمناسبة فرد العضلات ،، شاهد هذا العرض بالمرفقات :D

شاهدت الملف الفلاشي ولم ار اي شيء غير طبيعي

كل ذلك ممكن من خلال تحليلي ولا ادعي صواب تحليلي

لكن في العملية الاولى كن انت فاتح ملف نصي باستخدام النوت باد

حسب علمي ان النوت باد يقرأ كامل محتوى الملف ثم يغلقه (يعني تقدر تلعب بالملف بعد قراءته)

وسالفة مسح ملف البرنامج التنفيذي

فممكن عمل ذلك ببساطة عن طريق انهاء العملية ثم مسح الملف

هل انا مخطئ ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
حسب علمي ان النوت باد يقرأ كامل محتوى الملف ثم يغلقه (يعني تقدر تلعب بالملف بعد قراءته)

كلامك صحيح ، لم ادرك هذا اثناء عمل الفلاش :wacko:

لكن مازال البرنامج قادر على حذف اي ملف حتى لو مفتوح Exclusive .

فممكن عمل ذلك ببساطة عن طريق انهاء العملية ثم مسح الملف

لم يحدث هذا ، شاهد الفلاش مرة اخرى ، البروسس تم حذف ملفه وهو يعمل ولم يتم عمل اغلاق له :wink:

عموما هذه النسخة من KernelDetective مازالت قيد التطوير ولم تنشر الا للـTesters فقط !

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
لم يحدث هذا ، شاهد الفلاش مرة اخرى ، البروسس تم حذف ملفه وهو يعمل ولم يتم عمل اغلاق له

معك حق

خطير البرنامج الملف اختفى والويندوز اكسبلورر عمل ريفرش والبرنامج لسة شغال ومرة وحدة اختفى

انا بعد ما عرفت هالشي نزلت البرنامج ومارضى يشتغل عندي (على فستا)

ظهرت لي مسج تقول ان البرنامج يعمل "حركة معينة" بشكل غير معتاد واغلق البرنامج!!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

حركة معينة ؟؟؟ :D

ما نص الرسالة بالضبط ؟

البرنامج يعمل على Vista وعلى الـSP1 لـVista ،، نسخة 32 طبعا .

يجب ان يعمل البرنامج بخصائص الـAdmin ،، استخدم Run as administrator .

تأكد انك تستخدم آخر نسخة :

http://www.at4re.com/files/Tools/Releases/...ective_v1.2.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

حملت البرنامج من الرابط تبعك

وشغلت البرنامج وعملت run as administratorونفس الرسالة

وهذا هو النص

---------------------------

Microsoft Visual C++ Runtime Library

---------------------------

Runtime Error!

Program: C:\Users\Yousif\Downloads\Kerne...

This application has requested the Runtime to terminate it in an unusual way.

Please contact the application's support team for more information.

---------------------------

OK

---------------------------

تم تعديل بواسطه سيد فاضل
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جيد هذا معناه أن البرنامج تم تحميله بالكامل فى الذاكرة أم ماذا ؟؟؟؟؟

كيف حدث هذا الأمر ؟؟

نزلت السورس كود الخاص بالبرنامج و لكنى لم أستع تشغيل ملف الsln :(

يبدو أنه كتبه بال2008 و أنا أعمل على ال2005 :(

Microsoft Visual Studio Solution File, Format Version 10.00

# Visual Studio 2008

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

انت بتتكلم عن ايه يا نور ؟ :blink:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أتحدث عن هذا يا محمد

هناك مشروع رائع لصديق اسمه ProcessHacker وهو شئ مثل ProcessExplorer لكن مفتوح المصدر وله ميزات عن PE في التعامل مع Infected Environments .

المشروع مكتوب بالـسي شارب والدرايفر باسي :

http://processhacker.sourceforge.net

و أيضا عن ملف الفلاش الذى أرفقته أنت

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بالنسبة للمشروع فنعم تم اعتماد VS2008 ...

بالنسبة لملف الفلاش فقد تم اصدار هذا الاصدار من Kernel Detective وهو v1.3.0 يمكنك تحميل الاداة والتجريب بنفسك :

Kernel Detective v1.3.0

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

نعم

أنا أصدقك و لكن أريد أن أعلم كيف حدث هذا

لماذا أغلق البرنامج فجأة بدون أى رسائل خطأ من الويندوز

هل هذا طبيعى !!

الذى أستنتجه أن هذا الأمر تم من وراء الويندوز :lol: أليس كذلك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
الذى أستنتجه أن هذا الأمر تم من وراء الويندوز أليس كذلك

Exactly

راجع المشاركة رقم #6

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
بالنسبة للمشروع فنعم تم اعتماد VS2008 ...

بالنسبة لملف الفلاش فقد تم اصدار هذا الاصدار من Kernel Detective وهو v1.3.0 يمكنك تحميل الاداة والتجريب بنفسك :

Kernel Detective v1.3.0

عمل رائع جدا :lol: , ماشاء الله عنك عضلات ال Kernel Detective تكبر يوم بعد يوم :wub:

النسخة الجديدة لا يتم اعتبارها فيروس من الانتي فيروس هل قمت بتغيير خوارزمية التشفير او الضغط؟

بالنسبة ل ProcessExplorer قمت بتحميله منذ مدة ولكنه يحتاج إلى الكثير من الوقت للدراسة و معرفة كيف تجري الامور...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
النسخة الجديدة لا يتم اعتبارها فيروس من الانتي فيروس هل قمت بتغيير خوارزمية التشفير او الضغط؟

لا والله نفس الطريقة السابقة ... ارزاق :D

بالنسبة ل ProcessExplorer قمت بتحميله منذ مدة ولكنه يحتاج إلى الكثير من الوقت للدراسة و معرفة كيف تجري الامور...

اذا احتجت مساعدة في عمل reversing لجزء معين فأنا في الخدمة :wink:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شباب من فضلكم لنعد للموضوع الاساسي

انا ايضا حملت البرنامج المسمى Unlocker جربته على ملف يرفض الحدف وبالفعل استطاع البرنامج معرفة ال Processـالدي له علاقة بهدا الملف

بحت عن سورس البرنامج او سورس مشابه لكن لم اجد

ممكن اخي GamingMasteR توضح ردك اكتر , مادا تقصد بـ ExDupHandleTable & ShareAccess & FSD

هل من كتاب يشرح هده الامور ؟

انجليزي او فرنسي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

اخى GM هل برنامجك KD مفتوح المصدر و إن كان كذلك فإين الـ SC الخاص به ؟

و الله ولى التوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شباب من فضلكم لنعد للموضوع الاساسي

انا ايضا حملت البرنامج المسمى Unlocker جربته على ملف يرفض الحدف وبالفعل استطاع البرنامج معرفة ال Processـالدي له علاقة بهدا الملف

بحت عن سورس البرنامج او سورس مشابه لكن لم اجد

هذه هي فكرة البرنامج :

الحل باختصار كالآتي (ابحث اكثر ستجد اكواد جاهزة) :

1- جرد جميع المقابض بالنظام (Call NtQuerySystemInformation + SystemHandleInformation).

2- عمل Duplicate للمقابض مقبض مقبض بحيث يمكنك استخدام هذا المقبض للحصول على معلومات اضافية للـObject .

3- جلب بيانات عن الـObject الخاص بالمقبض (NtQueryObject) بمعرفة نوعه (Process/File/Thread ..etc) .

4- اذا كان الكائن عبارة عن ملف يتم جلب اسمه ثم مقارنته بالملف الذي تريد اغلاقه .

5- يتم اغلاق المقبض عن طريق نفس الدالة NtDuplicateHandle مع العلم CloseSource .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ورحمة الله وبركاته .

هذه النسخة مجانية وملك للفريق العربي للهندسة العكسية ، لكنها ليست مفتوحة المصدر .

أخي soufianosse :

FSD اختصارا لـFilesystem Driver ، وهو الدرايفر المسؤول عن التعامل مع Filesystem معين مثل NTFS/FAT16/FAT32 او لـDisk معين او Network .

مثلا الدرايفر المسؤول عن التعامل مع الـNTFS هو Ntfs.sys والمسئول عن FATxx هو Fastfat.sys ، حيث يكون هو المسئول عن عمليات Open/Close/Cleanup/Read/Write/Delete الخ ...

ExDupHandleTable عبارة عن روتين في الكرنل لنسخ جدول المقابض ، تستخدم عادة عند انشاء process جديد اذا اردناه ان يرث الـhandles من الـParent process الخاص به .

ظروفي لا تسمح في الوقت الحالي بشرح بعض الجزئيات المهمة ، ربما في وقت لاحق اذا سمحت الظروف :blush:

هل من كتاب يشرح هده الامور ؟

من أفضل الكتب في الـFilesystem هو Windows NT File System Internals .

تم تعديل بواسطه GamingMasteR
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .