PDA

View Full Version : مشکل در وایپر



golbafan
یک شنبه 14 تیر 1394, 10:40 صبح
سلام
برنامه زیر رو نگاه کنید
با دلفی نوشته شده برای :
1- حذف کامل و امن فایل ها
2- همچنین حذف کامل و امن فضای به ظاهر خالی دیسک (wipe free space)

حالا مشکل من اینه که برنامه موقع حذف فضای خالی درست کار میکنه ولی وقتی با نرم افزار recovery my files درایو رو چک میکنم اسم فایل ها رو نشون میده
البته ریستور نمیشن و اگر هم ریستور بشن داده ای در اونها نیست و فایل با بایت های رندم پر شده

حالا نمیدونم چرا اسامی فایل ها رو بازهم نشون میده؟؟؟

Felony
یک شنبه 14 تیر 1394, 14:38 عصر
نوشتن یک برنامه Wiper بدون مطالعه File System هدف چندان ایده مناسبی نیست .

چیزی که شما نوشتید DataWiper هست و نه Disk Wiper ، فایل سیستم های مختلف دارای یک Metadata شامل اسم فایل ها ، Permission ها ، تاریخ Create, Modify و ... هستند که اصولا بعد از بوت سکتور نگهداری میشن ، مثلا در NTFS اسمش MFT (http://en.wikipedia.org/wiki/NTFS#Internals) هست ، فایل های رو دیسک یکسری دیتای باینری هستند که فقط ابتدا و سایز دارن که پشت سر هم روی دیسک نوشته میشن و اطلاعات اضافی مربوط به این فایل ها شامل آدرس شروع ، سایز ، نام ، خصیصه ها و ... در MFT نگهداری میشن ؛ این موراد در فایل سیستم های مختلف ساختارهای متفاوتی داره ولی درکل شالوده همه ی فایل سیستم ها هست به جز فایل سیستم های خاص که خارج از بحث هست .

وقتی دیتا رو با برنامتون وایپ میکنید فقط دارید اون دیتاهای باینری رو بازنویسی میکنید و MFT سرجاش هست و به مکان های درستی اشاره میکنه ، فقط دیتاهای اون مکان بازنویسی شده .
برای اینکه اطلاعات فایل ها هم از بین بره بسته به فایل سیستم مقصد باید MFT یا ... رو بازنویسی کنید که باید ساختار هر فایل سیستم رو بررسی کنید تا بتونید پیاده سازیش کنید راه ساده تر از اون ساختن یک فایل برای وایپ کردن دیسک هست تا بتونید به صورت غیر مستقیم Metadata هارو از بین ببرید .

برای این پیاده سازی 2 سناریو داریم :

1- وایپ کل دیسک : در این فرایند به جای وایپ کردن کل فایل ها ، ابتدا کل فایل ها رو به یک باره از دیسک حذف میکنیم و بعد یک فایل میسازیم ( متنی ، عکس یا ... ) و شروع میکنیم تا پرشدن دیسک با الگوریتم مورد نظر توی اون فایل دیتا بازنویسی میکنیم ( 1بار یا n بار بر اساس الگوریتم ) ، اتفاقی که میافته این هست که با پرشدن دیسک و قرار گرفتن دیتای فایل ما بر روی دیتای یک فایل دیگر فایل سیستم به صورت خودکار Metadata مربوط به فایل قبلی رو حذف میکنه چون دیگه به دردش نمیخوره .
بعد از اتمام کار و سعی در انجام عملیات ریکاوری ، نرم افزار مروبطه فقط اسم یک فایل رو برمیگردونه :)

2- وایپ یک فایل خاص : راحت ترین شیوه تغییر نام فایل مورد نظر و سپس بازنویسی اون هست تا Metadata اون از طریق خود فایل سیستم تغییر پیدا کنه .

من در دوران جوانی همچین چیزی برای جایی نوشته بودم که برای حذف فایل ابتدا فایل رو با الگوریتم مورد نظر بازنویسی میکرد و پس از پایان کار مثلا 100 کیلوبایت اول رو با یک تصویر BMP عوض میکرد که محتواش این بود که این فایل توسط فلان بخش امحاء شده ، وقتی طرف میزد فایل رو ریکاوری کنه یک فایل تصویر مثلا با حجم 200 مگ برمیگشت که وقتی بازش میکردی تصویر مورد نظر نمایش داده میشد .

یه سورس قدیمی هم براتون ضمیمه کردم .

در آخر Disk Wiper داستان ها دارد ...

golbafan
یک شنبه 14 تیر 1394, 22:42 عصر
سلام
همون طور که اشاره کردم این برنامه 2 تا عمل انجام میده که یکیش دیتا وایپینگ هست و دقیقا همونطور که شما اشاره کردید اول فایل رو تغیر نام داده و سپس در 3 مرحله داده های اون فایل رو اور رایت میکنم.

کار دوم که وایپ دیسکه اینه که یک فایل حجیم رو 3 مرتبه تولید میکنم: اول با 0x00 بعد با 0xFF و سپس با داده های رندم
این فایل حجمش به اندازه فضای خالی کل اون درایو هست

برای وایپ از روش DoD استفاده کردم و واقعا کل دیسک وایپ میشه، اما مشکلم این بود که اسم فایل ها هنوز موجوده !

اما خود فایل پاک شده و دیگه وجود نداره




برای اینکه اطلاعات فایل ها هم از بین بره بسته به فایل سیستم مقصد باید MFT یا ... رو بازنویسی کنید که باید ساختار هر فایل سیستم رو بررسی کنید تا بتونید پیاده سازیش کنید راه ساده تر از اون ساختن یک فایل برای وایپ کردن دیسک هست تا بتونید به صورت غیر مستقیم Metadata هارو از بین ببرید .

مشکلم الان همینه... الان این رو باید چکارش کنم؟؟؟
ویندوز اجازه نمیده به برخی از سکتورها دسترسی داشته باشم.
باید برم تحت داس؟




یه سورس قدیمی هم براتون ضمیمه کردم .

خیلی ممنون سورس شما رو دیدم
ولی در استانداردهای جدید وایپ ، حداقل 3 بار باید دیسک رو وایپ کنید و شما فقط مرحله ایجاد داده رندم رو انجام دادید
با این حال متشکرم
در سورس من 3 بار طبق استاندارد DoD اینکار انجام میشه : اول با 0x00 بعد با 0xFF و سپس با داده های رندم
اما استاندارهای دیگه ای هم هست که میگه بهترین راه حل اینه که هارد رو بطور فیزیکی امحا کنید! (استاندارد NSA)

Felony
دوشنبه 15 تیر 1394, 00:13 صبح
مشکلم الان همینه... الان این رو باید چکارش کنم؟؟؟
ویندوز اجازه نمیده به برخی از سکتورها دسترسی داشته باشم.
باید برم تحت داس؟
داس ؟! 1981 ؟!
باید بر اساس مستندات فایل سیستم مورد نظر باهاش ارتباط برقرار کنید ، برای NTFS درایور میخواد .



خیلی ممنون سورس شما رو دیدم ولی روشتون برای وایپ استاندارد نیست
در استانداردهای جدید وایپ ، حداقل 3 بار باید دیسک رو وایپ کنید و شما فقط مرحله ایجاد داده رندم رو انجام دادید
با این حال متشکرم
در سورس من 3 بار طبق استاندارد DoD اینکار انجام میشه : اول با 0x00 بعد با 0xFF و سپس با داده های رندم
اما استاندارهای دیگه ای هم هست که میگه بهترین راه حل اینه که هارد رو بطور فیزیکی امحا کنید! (استاندارد NSA)
ادعایی بابت استاندارد بودنش نشد ، اون ایده فقط یه نمونه سازی ساده پیاده سازی اون سناریو مطرح شده بود !

golbafan
شنبه 27 تیر 1394, 13:02 عصر
مرسی مرسی مرسی

مشکل با استفاده از درایور ntfs و دسترسی به سکتورهای readonly حل گشت