الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج لتفريغ الملفات قبل الحذف لتفادي الاسترجاع

بدأه العيافـي في 3 أغسطس 2010 · 29 رد · 2,012 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

في يوم ما رغبت في التخلص من الصور و مقاطع الفيديو الخاصه بي ، واعلم انه يوجد بعض البرامج تقوم باستعاده الملفات المحذوفه . لذلك قمت بفتح الصوره بالـ "المفكره" ثم اقوم بمسح المحتوى ثم احذف الملف.

بهذه الطريقه اظمن بانه لو تم استعادة الملف سيكون الملف فارغ.

فعندما وجدت ان لدي عدد كبير من الملفات قمت بتصميم اداه لتقوم بتفريغ الملفات سواء كانت الملفات في جهاز الحاسب او في ذاكره الكاميره الرقميه او الجوال .. ، ثم اقوم بحذف الملف يدويا من الجهاز.

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

فحبا للمشاركه سأضع هذه الاداه هنا ،

ملاحظة عند تفريغ اي ملف لن تستطيع استعادة محتواه

post-82434-093036300 1280861557_thumb.gi

هنا يمكنك تحديد نوع الملفات الني ترغب في تفريغها

post-82434-068740100 1280861568_thumb.gi

sabotage.zip

المرفقات
oth_05.gifoth_06.gif

تم تعديل هذه المشاركة بواسطة العيافـي في 3 أغسطس 2010 في 22:15

#2

طريقتك لا تحذف بياناتك نهائياً ...

لكي تحذف بياناتك نهائياً من القرص (بشكل لا يمكن استعادتها منه) يجب عليك إعادة الكتابة فوق المساحة التي كانت تحجزها في القرص الصلب

#3

كلام خطير ..

هل تقصد بانه لو قمت باستعادة الصور مثلا باحد برامج الاستعاده سيتم استعاده الصوره الاصليه ، علما باني قمت بالتعديل عليها ؟

#4

بل يقصد:

اقتباس

لكي تحذف بياناتك نهائياً من القرص (بشكل لا يمكن استعادتها منه) يجب عليك إعادة الكتابة فوق المساحة التي كانت تحجزها في القرص الصلب

:D
#5

عفوا اعتقد انه من الصعب تنفيذ هذا "أراديا" ...

الاداه تقوم بتفريغ الملفات و اعتقد بانه لو تم ارجاع الملفات المحذوفه ستكون فارغه ؟...

#6

قد يتم الحذف و قد لا

و لكن كما قال :

اقتباس
طريقتك لا تحذف بياناتك نهائياً ...

لكي تحذف بياناتك نهائياً من القرص (بشكل لا يمكن استعادتها منه) يجب عليك إعادة الكتابة فوق المساحة التي كانت تحجزها في القرص الصلب

+1

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

في حالتك قد تنجح وقد لا.

عكلا فكرة جميلة،

(عندما كنت اعمل format مثلا للجهاز ولا اريد استرجاع البيانات، كنت انسخ بشكل متكرر فلم من الحجم الكبير مثلا 1 جيجا و املأ القرص لدي، بعدها اعمل ال Format )

تم تعديل هذه المشاركة بواسطة محمد عرسان في 4 أغسطس 2010 في 10:43

#7

اعتذر عن تأخري في الرد .. بسبب الاجازه.

شكرا للجميع الصوره واضحه الآن . سأحاول تنفيذ كلام الاخ العزيزي محمد عرسان برمجيا و ساوافيكم بالنتائج

#8
العيافـي كتب:

اعتذر عن تأخري في الرد .. بسبب الاجازه.

شكرا للجميع الصوره واضحه الآن . سأحاول تنفيذ كلام الاخ العزيزي محمد عرسان برمجيا و ساوافيكم بالنتائج

حمدلله بالسلامه اخى العيافى

جميل وفققك الله

منتظرينك ان شاء الله :)

رمضان كريم

Software Developer
Mahmoudkelany.com


 

#9

بالمناسبة أحبذ الكتابة عدة مرات على نفس الملف

وذلك لأن هناك بعض البرامج التي تستعيد حتى بعد عدد معين من الكتابة

بالمناسبة كثرة الكتابة على القرص الصلب تعني هلاكه

لذا فهذا البرنامج يستخدم بتقنن واضح

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#10
اقتباس
وذلك لأن هناك بعض البرامج التي تستعيد حتى بعد عدد معين من الكتابة

أظن أن هذا مستحيل تقنياً !

كيف يمكن أن يتم ذلك ؟

هل لديك مصدر لهذه المعلومة؟

تم تعديل هذه المشاركة بواسطة Speed_Of_Light في 18 أغسطس 2010 في 23:00

#11

اذا تم حذف مثلا نصف الملف يمكن ارجاع النصف الاخر

لكن قد لا تستفيد منه

مثلا لو ارجعنا صورة قد تم الكتابة فوق معظم بيناتها، سوف يرجع لنا صورة معطوبة

مثلا :

post-111465-030748800 1282166536_thumb.j

حيث البيانات المعطوبة في الصورة هي عبارة عن البيانات التي تم كتابتها فوق موقع الصورة على القرص الصلب (ليست بالضرورة بيانات معطوبة بل قد تكون تابعة لملف اخر يعمل).

المرفقات
220px-Data_loss_of_image_file.JPG
#12

نعم تماماً

لكن لو تم الكتابة على كامل مساحة الملف ولو لمرة واحدة فلن تستطيع استرجاع المحتوى الأصلي

تم تعديل هذه المشاركة بواسطة Speed_Of_Light في 19 أغسطس 2010 في 01:43

#13

هذا الكلام صحيح لو كنا نتعامل مع وعاء كهربائي بحت بمعنى أنه لو حل مكان الصفر واحد فإن الموضوع ينتهي

لكن على حسب علمي القاصر فالموضوع مختلف في الوعاء المغنطيسي

على كل لا أعرف من أين حصلت على هذه المعلومة بالضبط

ربما يستطيع الإخوة ذووا المعرفة في الكهرباء إفادتنا أكثر

سأحاول أن أتواصل مع حريف برمجة

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#14

هل من المممكن تحول الملفات قبل حذفها

الى ملفات اخرى وتشفيرها

بطريقه معقده

بحيث انه يصعب معرفه هويه الملفات

ويصعب ايضا فك تشفيرها

Software Developer
Mahmoudkelany.com


 

#15

راسلت الأخ حريف بالنسبة لهذا الموضوع

وهذا رده علي

اقتباس

بالنسبة للهاردوير اذا كتبت اى شئ على الهارد فى المكان الموجود فيه الملف فيزيائيا فإنتهى الأمر واقصد فيزيائيا أى نفس ال cylinder head sector

فلا وجود لعدد معين من الكتابات ربما تكونت لديك تلك الصورة حيث انك كلما كتبت اكثر كلما كان اكثر ضمانا ان رأس الكتابة مر من على ملفات قديمة

فنظام التغيل ويندس يفصل بين برامج الخدمات وما يحدث فعليا على الهارد وير فربما يتم كتابة الملفات على عدة أجزاء فى اماكن متفرقة من الهارد وبعد قليل تجده قد نقل لأماكن أخرى بعد عملية defragment

_____________________________________

بالنسبة للناحية الفيزيئية لعملية التخزين فالمواد الحديدية اذا عرضتها لمجال مغناطيسى يبقى بها بعض الفيض المغناطيسى يسمى residual flux وتلاحظها من تجربة المسمار المطاوع وسلك النحاس المستخدم فى مغنطته كنا ندرسها فى أحدى مراحل التعليم :lol:

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#16

ولكن اخى علاء

كيف اعرف انه تم الكتابه على هذا الجزء؟؟

يعنى ما يمكن يكتب على مكان فارغ فى الهارد

ازاى بقا اعرف انه كتب على المكان المطلوب حذف الملفات منه ؟؟؟

وهل لم اكون عاوز امسح مساحه 10 جيجا مثلا اكتب مكانها كلها

اعتقد ان هذا مكلف جدا ؟

ام ماذا ؟

Software Developer
Mahmoudkelany.com


 

#17

نحتاج لمن لديه خبرة في طريقة إدارة الويندوز للملفات

ربما Xacker يفيدنا في الموضوع

دعوني أرساله ولنرى

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#18
اقتباس
دعوني أرساله ولنرى

بتفركني بال PM اللي أنا شغال معاه :P

#19

ضروري أتعرف عليه الراجل ده laugh.gif

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#20

حذف محتويات ملف لا يقوم بمنع استعادة البيانات، على العكس، البيانات ستبقى كما هي بالضبط من بداية حتى نهاية الملف ومن الممكن استعادتها بسهولة شديدة، وإن كانت نصّية في ملف text مثلاً ستتمكن من قراءتها بأي hex editor للأقراص كأنك تقرأ الملف ذاته أمامك.

بينما على سبيل المثال،

ملف نصّي حجمه 600 بايت

ونعلم أن حجم الـ sector للقرص الصلب هو 512 بايت قياسياً

الملف في نظام Windows سيشغل 2 sectors

سيكون المحتوى

(بداية السكتور الأول)الــــــــــــــــملف-أصفـــــــــــار(نهاية السكتور الثاني)

سأقوم الآن بمسح نهاية الملف وأبقي على أول 500 بايت منه.

ما سيحدث هو أنه سيتم ملء 12 بايت في نهاية السكتور الأول بالأصفار، 12 بايت هي متمم 500 إلى 512 وهو حجم السكتور القياسي.

وستبقى محتويات السكتور الثاني كما هي تماماً.

لننظر

post-7008-044915800 1282385663_thumb.png

post-7008-037970400 1282385760_thumb.png

وبعد مسح المحتوى

post-7008-087380500 1282385785_thumb.png

post-7008-098820100 1282385812_thumb.png

طيب ماذا سيحدث عندما أقوم بمسح كامل محتوى الملف ؟

post-7008-061161100 1282385927_thumb.png

يحدث التالي، محتويات الملف ما تزال سليمة كما هي.

post-7008-001458300 1282386202_thumb.gif

أي أن حذف محتوى الملفات ومن ثم حذفها لا يؤدي إلى أي نتيجة على الإطلاق، على العكس تماماً .. فهو أسوأ من حذف أجزاء من الملف لأن الملف سينتقل لتخزن الـ metadata والبيانات فيه (الغير موجودة أساساً) ضمن الـ MFT record بينما المحتويات الأساسية تبقى في مكانها القديم لتطلع عليها جميع الأعين :)

من يريد التوسع أكثر في هذا الموضوع عليه بدراسة نظام ملفات معين، FAT32 و NTFS ليدرك كيف تخزن البيانات ويفهم آلية تقسيم القرص الصلب وما يحدث عند الحدث والنقل والنسخ والتعديل.. إلخ.

تحياتي

من يريد برامج خاصة بتدمير البيانات، لديكم SDelete على سبيل المثال وهناك غيره الكثير.

المرفقات
sector1.pngsector2.pngsector1_after.pngsector2_after.pngzero byte.pngcapture-1.gif

تم تعديل هذه المشاركة بواسطة Xacker في 21 أغسطس 2010 في 13:31

4

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#21

كيف أعرف القطاع sector المكتوب فيه ملف ما؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#22
علاء الصالحي كتب:

كيف أعرف القطاع sector المكتوب فيه ملف ما؟

باستخدام Windows API

سأعطيك hints

CreateFile للملف المطلوب إيجاد قطاع البداية له من خلال معرفة الـ cluster.

تحصل على المقبض.

ZwFsControlFile تستخدمها مع البارامترات

FileHandle

Event: null

ApcRoutine: null

ApcContext: null

IoStatusBlock: ptr to IO_STATUS_BLOCK struct

FsControlCode: FSCTL_GET_RETRIEVAL_POINTERS

InputBuffer: ptr to input buffer (8 null bytes)

InputBufferLength: 8

OutputBuffer: ptr to output buffer

OutputBufferLength: 131088

فتحصل في OutputBuffer عند البايت 25 على قيمة DWORD تمثل عنوان الـ cluster الذي يبدأ عنده الملف.

قم بضرب هذه القيمة بـ 8 لتحصل على رقم الـ sector أو أبقها كما هي فيكون هو قيمة الـ Cluster.

بالهناء والشفاء :)

1

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#23

طب ممكن مثال خفيف كده؟

و هل VS Express به دوال ال WIN API ؟

#24
هويدي كتب:

طب ممكن مثال خفيف كده؟

و هل VS Express به دوال ال WIN API ؟

آه ممكن :)

أما عن موضوع "خفيف" فمش عارف عشان أنا بكتب بالأسمبلي laugh.gif

.386
.model flat,stdcall
option casemap:none

include 	\masm32\include\w2k\ntdll.inc
include 	\masm32\include\w2k\ntddk.inc 
includelib  \masm32\lib\w2k\ntdll.lib
include 	\masm32\include\kernel32.inc
include 	\masm32\include\user32.inc
includelib  \masm32\lib\kernel32.lib
includelib  \masm32\lib\user32.lib

.data
myFile      	db  "myFile.txt",0
sector      	db  "Starts at sector:",0
FileReadErr 	db  "Error opening file",0
hFile       	dd  0
InputBuffer 	dd  2 dup (0)
format      	db  "%lu",0
OutputBuffer	db  131088 dup (0)
lpBuffer    	db  25 dup (0)

.code
main	proc
LOCAL   ISOB:IO_STATUS_BLOCK

	invoke  CreateFile,addr myFile,GENERIC_READ,FILE_SHARE_READ + FILE_SHARE_WRITE,NULL,3,FILE_ATTRIBUTE_NORMAL,NULL
	cmp 	eax,-1
	je  	FileReadError
	mov 	hFile,eax
	invoke  ZwFsControlFile,hFile,NULL,NULL,NULL,addr ISOB,90073h,addr InputBuffer,8,addr OutputBuffer,20010h
	mov 	eax,dword ptr [OutputBuffer+24]
	imul	edx,eax,8
	invoke  wsprintf,addr lpBuffer,addr format,edx
	invoke  MessageBox,NULL,addr lpBuffer,addr sector,40h
	jmp 	Exit
	FileReadError:
	invoke  MessageBox,NULL,addr FileReadErr,NULL,40h
	Exit:
	invoke  ExitProcess,0
main	endp

end main

post-7008-002026200 1282406752_thumb.png

ملاحظة: حجم الملف يجب أن يتجاوز 512 بايت حتى لا يتم حفظه ضمن MFT record فتلك قضية أخرى والطريقة هذه لن تعمل معها :P

file_sector.rar

المرفقات
sec.PNG

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#25

أفضل حل هو عمل Parsing للـDATA Attribute$ ، اذا كانت Resident فقم بحذف البيانات من الـMFT ، غير ذلك قم بعمل Decode للـDataruns وامسح جميع الـClusters (لاحظ ان الـFilesystems تستخدم الـClusters والتي من الممكن ان تحتوي على اكثر من Sector ).

عند المسح قم بايقاف الـSystem cache .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…