السلام عليكــم ورحمـة الله وبركاتــه ،،
فى بعض الأحيان عندما تحاول حذف ملف معين يخبرك النظام أن الملف مستخدم ولا يمكن حذفه فما الطريقة لمعرفة البرامج التى تستخدم هذا الملف؟؟؟
شد حيلك يا X+G :lol: :lol:
السلام عليكــم ورحمـة الله وبركاتــه ،،
فى بعض الأحيان عندما تحاول حذف ملف معين يخبرك النظام أن الملف مستخدم ولا يمكن حذفه فما الطريقة لمعرفة البرامج التى تستخدم هذا الملف؟؟؟
شد حيلك يا X+G :lol: :lol:
إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال
وعليكم السلام ورحمه الله وبركاته ،
وقد يكون السبب في ذلك هو وضع الحقل dwShareMode بالقيمه 0 عند انشاء الملف CreateFile وبالتالى لا يوجد أي تطبيق يستطيع عمل أي عملية على هذا الملف ،،
وربما غير ذلك :) ، ننتظر GM + Xa :lol:
بالتوفيق ،
http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة
https://moalfat.com للكتب الالكترونية والكورسات التعليمية
Everything we see now is just an engineering solution based on old science
Wajdy Essam كتب:وعليكم السلام ورحمه الله وبركاته ،وقد يكون السبب في ذلك هو وضع الحقل dwShareMode بالقيمه 0 عند انشاء الملف CreateFile وبالتالى لا يوجد أي تطبيق يستطيع عمل أي عملية على هذا الملف ،،
وربما غير ذلك :) ، ننتظر GM + Xa :lol:
بالتوفيق ،
أنا عايز اعرف بالكود مش بأداة جاهزة :blink:
إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال
معذره أخي :) ،،
على العموم عند انشاء أي 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 عملية لا تشارك مقابضها :) .
والله أعلم ، أرجوا تصحيح في حال كنت على خطأ :).
بالتوفيق،
http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة
https://moalfat.com للكتب الالكترونية والكورسات التعليمية
Everything we see now is just an engineering solution based on old science
أنا نزلت برنامج اسمه Unlocker بيعمل الكلام ده ,, لو الملف مستخدم وحبيت أحذف الملف مثلا البرنامج ده بيعرض عليا خدماته ويفرد عضلاته ويقولى انه يقدر يحذفه وفعلا بيحذفه :blink: يعنى أكيد في طريقة :angry: :angry:
إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال
صحيح كما قال الأخ وجدي السبب هو فتح الملف بـ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) .
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
والله ياجى انت معلم بس بلاش تفرد عضلاتك اكتر من كده :lol: :lol: :lol:
إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال
السلام عليكم
أعذروني على حشر نفسي :P
لم استطع المقاومة
فهذا التساؤل في بالي ايضاً
بالنسبة للأخ GamingMasteR
GamingMasteR كتب:بمناسبة فرد العضلات ،، شاهد هذا العرض بالمرفقات :D
شاهدت الملف الفلاشي ولم ار اي شيء غير طبيعي
كل ذلك ممكن من خلال تحليلي ولا ادعي صواب تحليلي
لكن في العملية الاولى كن انت فاتح ملف نصي باستخدام النوت باد
حسب علمي ان النوت باد يقرأ كامل محتوى الملف ثم يغلقه (يعني تقدر تلعب بالملف بعد قراءته)
وسالفة مسح ملف البرنامج التنفيذي
فممكن عمل ذلك ببساطة عن طريق انهاء العملية ثم مسح الملف
هل انا مخطئ ؟
اقتباسحسب علمي ان النوت باد يقرأ كامل محتوى الملف ثم يغلقه (يعني تقدر تلعب بالملف بعد قراءته)
كلامك صحيح ، لم ادرك هذا اثناء عمل الفلاش :wacko:
لكن مازال البرنامج قادر على حذف اي ملف حتى لو مفتوح Exclusive .
اقتباسفممكن عمل ذلك ببساطة عن طريق انهاء العملية ثم مسح الملف
لم يحدث هذا ، شاهد الفلاش مرة اخرى ، البروسس تم حذف ملفه وهو يعمل ولم يتم عمل اغلاق له :wink:
عموما هذه النسخة من KernelDetective مازالت قيد التطوير ولم تنشر الا للـTesters فقط !
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
اقتباسلم يحدث هذا ، شاهد الفلاش مرة اخرى ، البروسس تم حذف ملفه وهو يعمل ولم يتم عمل اغلاق له
معك حق
خطير البرنامج الملف اختفى والويندوز اكسبلورر عمل ريفرش والبرنامج لسة شغال ومرة وحدة اختفى
انا بعد ما عرفت هالشي نزلت البرنامج ومارضى يشتغل عندي (على فستا)
ظهرت لي مسج تقول ان البرنامج يعمل "حركة معينة" بشكل غير معتاد واغلق البرنامج!!
حركة معينة ؟؟؟ :D
ما نص الرسالة بالضبط ؟
البرنامج يعمل على Vista وعلى الـSP1 لـVista ،، نسخة 32 طبعا .
يجب ان يعمل البرنامج بخصائص الـAdmin ،، استخدم Run as administrator .
تأكد انك تستخدم آخر نسخة :
http://www.at4re.com/files/Tools/Releases/...ective_v1.2.zip
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
السلام عليكم
حملت البرنامج من الرابط تبعك
وشغلت البرنامج وعملت 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
---------------------------
تم تعديل هذه المشاركة بواسطة سيد فاضل في 2 يونيو 2009 في 22:41
جيد هذا معناه أن البرنامج تم تحميله بالكامل فى الذاكرة أم ماذا ؟؟؟؟؟
كيف حدث هذا الأمر ؟؟
نزلت السورس كود الخاص بالبرنامج و لكنى لم أستع تشغيل ملف الsln :(
يبدو أنه كتبه بال2008 و أنا أعمل على ال2005 :(
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
لا إله إلا الله محمد رسول الله
アッラー以外に神はなし。ムハンマドはアッラーの使徒である
أتحدث عن هذا يا محمد
اقتباسهناك مشروع رائع لصديق اسمه ProcessHacker وهو شئ مثل ProcessExplorer لكن مفتوح المصدر وله ميزات عن PE في التعامل مع Infected Environments .المشروع مكتوب بالـسي شارب والدرايفر باسي :
و أيضا عن ملف الفلاش الذى أرفقته أنت
لا إله إلا الله محمد رسول الله
アッラー以外に神はなし。ムハンマドはアッラーの使徒である
بالنسبة للمشروع فنعم تم اعتماد VS2008 ...
بالنسبة لملف الفلاش فقد تم اصدار هذا الاصدار من Kernel Detective وهو v1.3.0 يمكنك تحميل الاداة والتجريب بنفسك :
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
نعم
أنا أصدقك و لكن أريد أن أعلم كيف حدث هذا
لماذا أغلق البرنامج فجأة بدون أى رسائل خطأ من الويندوز
هل هذا طبيعى !!
الذى أستنتجه أن هذا الأمر تم من وراء الويندوز :lol: أليس كذلك
لا إله إلا الله محمد رسول الله
アッラー以外に神はなし。ムハンマドはアッラーの使徒である
اقتباسالذى أستنتجه أن هذا الأمر تم من وراء الويندوز أليس كذلك
Exactly
راجع المشاركة رقم #6
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
GamingMasteR كتب:بالنسبة للمشروع فنعم تم اعتماد VS2008 ...بالنسبة لملف الفلاش فقد تم اصدار هذا الاصدار من Kernel Detective وهو v1.3.0 يمكنك تحميل الاداة والتجريب بنفسك :
عمل رائع جدا :lol: , ماشاء الله عنك عضلات ال Kernel Detective تكبر يوم بعد يوم :wub:
النسخة الجديدة لا يتم اعتبارها فيروس من الانتي فيروس هل قمت بتغيير خوارزمية التشفير او الضغط؟
بالنسبة ل ProcessExplorer قمت بتحميله منذ مدة ولكنه يحتاج إلى الكثير من الوقت للدراسة و معرفة كيف تجري الامور...
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
اقتباسالنسخة الجديدة لا يتم اعتبارها فيروس من الانتي فيروس هل قمت بتغيير خوارزمية التشفير او الضغط؟
لا والله نفس الطريقة السابقة ... ارزاق :D
اقتباسبالنسبة ل ProcessExplorer قمت بتحميله منذ مدة ولكنه يحتاج إلى الكثير من الوقت للدراسة و معرفة كيف تجري الامور...
اذا احتجت مساعدة في عمل reversing لجزء معين فأنا في الخدمة :wink:
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
شباب من فضلكم لنعد للموضوع الاساسي
انا ايضا حملت البرنامج المسمى Unlocker جربته على ملف يرفض الحدف وبالفعل استطاع البرنامج معرفة ال Processـالدي له علاقة بهدا الملف
بحت عن سورس البرنامج او سورس مشابه لكن لم اجد
ممكن اخي GamingMasteR توضح ردك اكتر , مادا تقصد بـ ExDupHandleTable & ShareAccess & FSD
هل من كتاب يشرح هده الامور ؟
انجليزي او فرنسي
السلام عليكم
اخى GM هل برنامجك KD مفتوح المصدر و إن كان كذلك فإين الـ SC الخاص به ؟
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
soufianosse كتب:شباب من فضلكم لنعد للموضوع الاساسي
انا ايضا حملت البرنامج المسمى Unlocker جربته على ملف يرفض الحدف وبالفعل استطاع البرنامج معرفة ال Processـالدي له علاقة بهدا الملف
بحت عن سورس البرنامج او سورس مشابه لكن لم اجد
هذه هي فكرة البرنامج :
GamingMasteR كتب:الحل باختصار كالآتي (ابحث اكثر ستجد اكواد جاهزة) :
1- جرد جميع المقابض بالنظام (Call NtQuerySystemInformation + SystemHandleInformation).
2- عمل Duplicate للمقابض مقبض مقبض بحيث يمكنك استخدام هذا المقبض للحصول على معلومات اضافية للـObject .
3- جلب بيانات عن الـObject الخاص بالمقبض (NtQueryObject) بمعرفة نوعه (Process/File/Thread ..etc) .
4- اذا كان الكائن عبارة عن ملف يتم جلب اسمه ثم مقارنته بالملف الذي تريد اغلاقه .
5- يتم اغلاق المقبض عن طريق نفس الدالة NtDuplicateHandle مع العلم CloseSource .
السلام عليكم ورحمة الله وبركاته .
هذه النسخة مجانية وملك للفريق العربي للهندسة العكسية ، لكنها ليست مفتوحة المصدر .
أخي 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 في 3 ديسمبر 2009 في 07:26
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
هذا الموضوع مغلق.