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

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

الصفحات: [1] 2 » أظهر جميع التعليقات
المشاركة بتعليق

               


أعلى الصفحة