BH-Final Eraser Version 0.5 لحذف الملفات بشكل نهائي

من مدة طويلة و أنا أريد برمجة سكريبت بلغة ruby المشكلة كانت أني لم أكن أعرف ماذا أبرمج! الى أن خطر في بالي عمل سكريبت يقوم بحذف الملفات نهائيا مع عدم امكانية استرجاعها بعد أن احتجت لذلك عدة مرات.. حذف الملف فقط لا يكفي و يمكن استعادته باستخدام بعض البرامج طالما لم يكتب شيء فوق الملف (بغض النظر عن نظام التشغيل أو نظام الملفات المستخدم) لكن ماذا لو تم الكتابة 5 مرات فوق الملف و من ثم حذف؟ بهذه الحالة حتى لو تمكنا من استرجاع الملف لن نستطيع قراءته!

لأوضح أكثر سأذكر طريقة عمل السكريبت أول شيء يجب تحديد ملف أو مجلد كامل ليتم حذفه في حال قمنا بتحديد ملف سيقوم السكريبت بالتأكد اذا كان الملف قابل للكتابة أم لا ثم يقوم بحساب حجمه و يكتب فوقه 5 مرات بيانات عشوائية تكون عبارة عن حروف, أرقام و رموز بنفس حجم الملف الأصلي ثم يحذفه بشكل عادي.. أما اذا حددنا مجلد سيقوم السكريبت بتطبيق نفس العملية السابقة على جميع الملفات الموجودة في المجلد واحدا تلو الآخر الى أن يتم حذف جميع الملفات الموجودة في المجلد, طبعا السكريبت بسيط جدا في البداية كتبته للاستخدام الشخصي فقط يعني ما كان user friendly و فيه أخطاء كثيرة, لا يتأكد من شيء قبل الحذف, لا يوجد به رسائل خطأ بدون if..then..else الي عقدتلي حياتي! الاصدار الحالي 0.5 يعني يمكننا اعتباره تجريبي و قد أقوم بتطويره بالمستقبل و اضافة بعض الأشياء له مثل خيارات اضافية, واجهة رسوميه أو أي شيء آخر.. لن أطيل عليكم أكثر من ذلك و أترككم لتجربوه بأنفسكم و في حال حدوث أي خطأ يرجى اعلامي به على الايميل المذكور في السكريبت.

BH-Final Eraser 0.5 | md5sum: 02b82e319e7bc52fdce2c2a1a7834d85

ملاحظة: السكريبت يستخدم رخصة GNU العمومية GPL v3 و تمت برمجته ليعمل على نظام Linux و الأنظمة الشبيهة به و لم يتم تجربته على نظام Windows بعد الا أني أتوقع أن يعمل في حذف الملفات فقط أما المجلدات فسيجتاج لبعض التعديلات قد أقوم بها في الاصدار 1.0 النهائي ان شاء الله.

ملاحظة 15 Sep: بعد الاطلاع على الكود مرة أخرى وجدت بعض الأخطاء البرمجية (لا تؤثر على عمل الأداة) سيتم اصلاحها و اضافة ميزات اضافية في الاصدار القادم ان شاء الله.

أتمنى أن ينال السكريبت اعجابكم و أي استفسار أنا جاهز
أخوكم Br4v3-H34r7.

رابط التعقيبات التعليقات RSS

أرسل الى صديق





أرسل الموضوع
twitter del.icio.us digg reddit stumbleupon facebook technorati google yahoo

التعليقات
  1. 1- Redhat كتب بتاريخ: 09 Sep 2008 الساعة: 9:04 PM

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

    مسائك سعد أخي

    سكررربت رائع أخي عبدالمهين

    وأحيانا تضطر الي بيع جهاز او هارد او اي شي

    والمعلومات يسهل ارجعها قد تحتوي علي صور خاصه او ملفات نصيه هامه الخ من الأشياء الخصوصيه

    أنه تم التوصل لي طريقه يرجع فيها الملفات المحذوفه حتي لو تم كتابه عليه اكثر من 30 مرره

    لست متأكد من المعلومه هذي تمام لكن أعتقد ان 5 مرات كتابه فوقه قد يتم ارجاع البيانات من شخص هاوي

    كيف اذا كانت جهاز حكرمي او منظمه متخصصه

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

    جزاك الله خير وافداك الله فيك كل الأسلام والمسلمين علي جهودك المبذوله أخي الكريم

    أحترامي لك وللسموك العالي

  2. 2- Mutati0N كتب بتاريخ: 10 Sep 2008 الساعة: 4:00 AM

    مبارك يا عبده علي الاسكربت ,
    ولي تعليق بسيط وهوا الـ Coding Style بتاعت عباره if
    if File.exist?(file) == true
    ممكن تتخلص من الـ ==true لانها مبتستخدمش في استايل الكتابه في الروبي
    والـ Coding Style هوا احد مميزات الي بتفرق لغه عن التانيه
    وقريب ان شاء الله نشوف منك اضافات للاسكرربت وتطوير

  3. 3- KING SABRI كتب بتاريخ: 10 Sep 2008 الساعة: 5:10 AM

    مبروك يا عبده ممتاز و بارك الله فيك يا بطل

  4. 4- Ahmed magdy ramadan كتب بتاريخ: 10 Sep 2008 الساعة: 6:12 AM

    السلام عليكم ورحمة الله وبركاته
    كل عام وأنت بخير والأمة الإسلامية جمعاء بخير
    ونسأل الله تعالى أن يبلغنا رمضان ، وأن يتقبل منا الصيام والقيام وصالح الأعمال
    وأن يجعلنا من عتقاء النار

    اللهم آمين

  5. 5- محمد الحاتمي كتب بتاريخ: 10 Sep 2008 الساعة: 10:31 AM

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

  6. 6- Br4v3-H34r7 كتب بتاريخ: 10 Sep 2008 الساعة: 1:43 PM

    @Redhat: و عليكم السلام أخي.. لما تحتاج تبيع الهارد يفضل أن تستخدم احدا البرامج الخاصة بفرمتة الهارد بشكل نهائي و تصفيره! و بصراحة لا أعلم ان كان استرجاع الملف بعد الكتابة فوقه 30 مرة أمر ممكن! لكن الأداة تقوم بالكتابة على الملف ثم حذفه يعني فعليا نحن عدلنا على الملف الأصلي و من ثم حذفناه و في حال استرجاعه لن يكون نفس الملف الأصلي أما عدد مرات الكتابة فيمكن تغييره بسهولة و جعله 100 مرة اذا بدك لكن لا تنسى ان كل مرة زيادة تحتاج وقت أكثر خصوصا اذا كان الملف كبير بعض الشيء

    @Mutati0N: الله يبارك فيك أخي كريم.. السكريبت كما ذكرت بسيط جدا و هو أول محاولة لي بالروبي.. شكرا لتنبيهي و كنت أتوقع حدوث أخطاء مثل هذه لأني كتبته بشكل سريع و الظاهر أن لغات البرمجة اختلطت مع بعضها و ان شاء الله سأصحح ذلك في الاصدار النهائي

    @KING SABRI: منور المدونة بوجودك أخي صبري.. الله يبارك فيك و بانتظار برامجك

    @Ahmed magdy ramadan: و عليكم السلام.. و أنت بخير أخي أحمد و رمضان مبارك ان شاء الله, شكرا على الدعوات الجميلة و أهلا بك في المدونة.

    @محمد الحاتمي: أهلا بك أخي محمد.. شكرا أخي على كلامك الجميل و ان شاء الله ينال السكريبت اعجابك و أهلا بك في المدونة…

  7. 7- red mercury كتب بتاريخ: 19 Sep 2008 الساعة: 11:01 PM

    السلام عليكم:
    فكرة جميلة لكنيي للأسف حتى الآن بايثون وبيسك وسأتعلم روبي بإذن الله لكن بعد أن أتقن جزء كبير من بايثون
    عندي طلب بسيط ممكن الخوارزمية حقت البرنامج
    وعندي كم سؤال أنا قريت في السكربت وبحكم معرفتي البسيطة في البايثون فهمت جزء منه لكن لماذا وضعت في آخر المسار -w
    #!/usr/bin/ruby -w
    وما معنى ARGV

  8. 8- Br4v3-H34r7 كتب بتاريخ: 20 Sep 2008 الساعة: 1:44 AM

    و عليكم السلام أخي red mercury .. لغة بايثون لغة قوية و رائعة لكني فضلت ruby لسهولة الـ syntax الخاص بها و أيضا لاهتمامي بتطوير الويب و مشروع RoR بالنسبة لطلبك كود البرنامج أمامك و يمكنك بسهولة استنتاجها.. الكتابة فوق الملف تبدأ من السطر 72 و تستخدم -w لاظهار التحذيرات أما ARGV تعني Arguments و هي المدخلات التي تؤخذ من المستخدم عند تشغيل البرنامج و في هذا الكود مسار الملف المطلوب حذفه, بالتوفيق…

  9. 9- omShifty كتب بتاريخ: 23 Sep 2008 الساعة: 9:02 PM

    يعطيك العافيه عبدو ، وبصراحه السكربت شفته عن طريق الباك تراك كان مرتب بشكل غير طبيعي غير على شكل ويندوز وانا مثلك عقدتي الـ if..then..else فهمت من السكربت القليل وإن شاء الله يكون في تطور مستمر الله يقدرك على مجهوك ويبلغكم رمضان جميعاً

    .. أخوك سعيد ،،

  10. 10- red mercury كتب بتاريخ: 01 Oct 2008 الساعة: 9:42 AM

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

  11. 11- Br4v3-H34r7 كتب بتاريخ: 01 Oct 2008 الساعة: 10:32 PM

    @omShifty: االه يعافيك أخي.. في ويندوز طبعا اذا فتحت ملف السكريبت ببرنامح notepad سيظهر الكود بشكل سيء جدا لكن يمكنك استعمال برنامج مثل notepad++ أو أي محرر نصوص متطور ليظهر الكود بشكل منسق كما في لينوكس.. أما if then else فبالفعل شيء يعقد فكان كل ما يخطر ببالي شيء أضيف if then else صحيح قد يبدو عمل السكريبت بسيط لكن التحقق من الملفات, تصاريحها و أحجامها بالاضافة للمجلدات و محتواياتها هو الي عقد الكود.. شكرا لوجودك و أهلا بك في المدونة

    @red mercury: و عليكم السلام.. فكرة جميلة بصراحة قد أضيفها للاصدار القادم, لم أفهم ماذا تقصد بالكتابة على الآماكن الفارغة لكن ما خطر ببالي هو تطبيق عمل البرنامج على بارتشن كامل.. فبدل من أن يقوم البرنامج بالكتابة على كل ملف على حدى بعد حساب حجمها سأجعله يحسب حجم البارتشن ثم يكتب فوق نظام الملفات بالكامل رموز عشوائية أو أرقام مثل 101001011 بعد ذلك يقوم باعداة فرمتة البارتشن بنظام الملفات الذي نريد

  12. 12- red mercury كتب بتاريخ: 07 Oct 2008 الساعة: 12:48 PM
  13. 13- Br4v3-H34r7 كتب بتاريخ: 08 Oct 2008 الساعة: 12:06 AM

    السكريبت جميل و الآن فهمت ماذا تقصد بتعليقك السابق.. لكن أعتقد أن الملفات المحذوفة ستبقى قابلة للاسترجاع حتى بعد ملئ المساحة الفارغة من الهارد! لو لاحظت طريقة عمل السكريبت الذي عملته هو سيعدل على الملف ثم يحذفه.. يعني فعليا تم حذف غير ملف و سيبقى هذا الملف قابل للاسترجاع لكن لن يكون نفس الملف الأصلي (كوننا كتبنا فوقه قبل حذفه!) أما السكريبت الذي عملته أنت سينشئ ملف و يملئ به الهارد بعد ذلك سيقوم بحذف هذا الملف.. الملفات السابقة ستبقى موجودة في الهارد و سنتمكن من اعادتها بعد اعادة جداول البيانات < < لا أعلم كيف أشرحها أكثر من ذلك فلم أتعمق في الموضوع كثيرا.. أما فكرة عدم اعادة الملفات المحذوفة بصراحة فكرة رائعة و أنا الي أخذتها منك لكن مع تغيير الطريقة.. لا أعلم ان كان لدي الوقت الكافي لتنفيذها لذلك سأترك الأمر لك. و سأخبرك الطريقة بالتفصيل: اجعل الأداة تحسب حجم البارتشن ثم تقوم بالكتابة بنفس الحجم فوق كامل نظام الملفات ان كان ext3 أو NTFS أو أي نظام ملفات آخر.. يمكنك استعمال الأمر:

    echo $DATA > /dev/sda

    مثلا مع تحديد حجم المتغير DATA ليكتب بيانات بنفس حجم البارتشن فبهذه الطريقة لن يبقى بيانات و جداول أو حتى نظام ملفات لاسترجاعه بعد ذلك قم باعداة فرمتة البارتشن بنظام ملفات جديد يمكنك استعمال الأمر mk.ext3 مثلا و يمكنك أيضا اعادة العملية عدة مرات اذا لزم الأمر.. فكرة الأداة بسيطة جدا لكن الصعوبة بجعلها user friendly و تعمل بدقة و اختبارها عدة مرات فأي خطأ سيؤدي لتدمير الهارد! (استعمل Virtual Box للتجربة) فالشغلة ما معها لعبة و اذا لزمك مساعدة أنا جاهز .

  14. 14- red mercury كتب بتاريخ: 08 Oct 2008 الساعة: 12:56 PM

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

  15. 15- Br4v3-H34r7 كتب بتاريخ: 08 Oct 2008 الساعة: 2:41 PM

    أخي لأن طرق تخزين البيانات في الهارد ليست كما تتصور (بمجرد ملئ قسم يحذف القسم الثاني) بل تكون على شكل جداول تخزن فيها هذه البيانات و عند قيامك بحذف شيء أو فرمتة الهارد مثلا تنشأ جداول جديدة لتخزن عليها البيانات لكن الملفات السابقة ستبقى موجودة اذا لم تكتب على هذه الجداول من جديد.. أنا لم أقل أن السكريبت الذي قمت بكتابته لا يعمل بل قلت “أعتقد” لأني لم أجربه بصراحة و لأني لم أتوسع جدا بطرق حفظ البيانات, تصنيفها و تخزينها. و برأيي الطريقة التي اقترحتها عليك عملية و مضمونة أكثر.. جرب تنفذها اذا كان عندك الوقت الكافي لذلك أو سأقوم أنا بها عندما يتسنى لي الوقت.. لو تعرف تبرمج بالروبي أكمل البرنامج أنت ليصبح عمل مشترك أو نزل اصدار جديد مطور بالتوفيق…

  16. 16- red mercury كتب بتاريخ: 09 Oct 2008 الساعة: 4:37 PM

    عبد المهيمن قمت بتجربة السكربت اللذي عملته أنا وكتب على المساحة الفارغة من الهاردسك إلا 67 ميغا ما رضى يكتب بعدها قلت شكله حذف الملفات بعد أكثر من مئة غيغا كتبها البرنامج!
    شغلت برنامج استعادة الملفات المحذوفة رجع لي الملفات سليمة وليس فيها أي شيء
    للأسف ما أعرف أبرمج بالروبي لو تنقل المشروع بالبايثون

  17. 17- Br4v3-H34r7 كتب بتاريخ: 09 Oct 2008 الساعة: 4:44 PM

    “مئة غيغا كتبها البرنامج!” كم استغرقت العملية؟ :؟؟؟: أخي كود الروبي سهل القراءة و لا يحتاج أي توضيحات.. أعد كتابته بلغة البايثون و لو رأيي أن الفكرة التي طرحتها عليك أفضل من الكود الذي كتبته أنا و هي فكرتك بصراحة و عملية أكثر جرب تنفذها و اذا لزمك مساعدة أو توضيحات أنا جاهز

  18. 18- التميمي كتب بتاريخ: 27 Dec 2008 الساعة: 4:35 PM

    ماذا بشأن الوندوز

    هل هناك طريقة لحذف الملفات بدون ان نعلق مع الجهات البحث والتحري ؟؟؟

    ثم ماذا بشأن الملفات التي سبق حذفها بالطرق العاديه

    ما العمل معها

    ارجوا القاء نظره اكثر حول حذف الملفات نهائياً ( بالفعل لا مجرد عبارات ودعايات)
    نريد حذف نهائي فعلي
    لا نريد اي طريقة لإسترجاع الملفات

    ما العمل

  19. 19- no كتب بتاريخ: 23 Jan 2009 الساعة: 12:11 PM

    انا اتعلم هنا الكثر مشكور اخي بارك الله فيك

  20. 20- الآمل الطائر كتب بتاريخ: 29 Mar 2009 الساعة: 9:37 PM

    الله يعطيك العافية

  21. 21- BABAHI-DZ كتب بتاريخ: 08 Apr 2009 الساعة: 2:06 AM

    شكرا لك اخي على السكريبت

    و إليك طريقة للحذف النهائي مجربة

    عند الحذف حدد الملف ثم إضغط شيفت مع بقاء الضغط و إضغط على حذف

    لم ترى الملف نهائيا و يمكنك تجريب البرامج

    بالتوفيق

  22. 22- Br4v3-H34r7 كتب بتاريخ: 08 Apr 2009 الساعة: 5:19 PM

    @التميمي: الأداة ممكن أن تعمل على ويندوز بعد القيام بتعديلات بسبب اختلاف السلاش في لينوكس / وفي ويندوز \ لذلك سيحصل خطأ في مسار الملف.. كذلك يوجد برامج أخرى خاصة بويندوز ويوجد برامج مختصة بتصفير الهارد والكتابة فوقه عدة مرات لازالة المعلومات والملفات التي تم حذفها مسبقاً بشكل نهائي…

    @BABAHI-DZ: أخي حتى باستخدام هذه الطريقة يمكن استرجاع الملفات بعد حذفها يوجد برامج قادرة على استرجاع الملفات بعد فرمتة الهارد! الفكرة في الأداة هي الكتابة فوق الملف ثم حذفه

  23. 23- رامي كتب بتاريخ: 04 Sep 2009 الساعة: 11:54 PM

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

  24. 24- عبدالمهيمن كتب بتاريخ: 05 Sep 2009 الساعة: 9:11 PM

    سأقوم بتطويره واضافة واجهة رسومية قريباً ان شاء الله.. حالياً أنا منشغل بأمور أخرى لكن حالما يتسنى لي بعض الوقت سأطلق الاصدار 1.0 مع تعديلات جذرية وميزات جديدة

المشاركة بتعليق

               


أعلى الصفحة