Python شرح مكتبة zipfile وطريقة كسر تشفير ملف مضغوط Brute-force

تم تحميل الصفحة في 1,5871687 ثانية
شرح مكتبة zipfile وطريقة كسر تشفير ملف مضغوط Brute-force
إنضم
2 نوفمبر 2012
المشاركات
3,405
الإعجابات
2,872
النقاط
113
العمر
30
الإقامة
Algeria


اليوم سنتعرف على مكتبة مهمة zipfile , تمكننا هذه المكتبة من عمل مهما برنامج WinZip مثل ضغط الملفات وفك ضغطها الى غير ذلك من, اليوم سنستخدم هذه المكتبة في كسر تشفير ملفات zip وتخمين الباسوورد.




سنقوم باستعمال اهم دوال هذه المكتبة zipFile

أول خطوة هي بتثبيت مكتبة zipfile بالأمر

كود:
pip install zipfile
كمثال سنقوم بفك الضغط على ملف مضغوط بصيغة zip

الطريقة كالاتي

أولا استدعاء المكتبة كالاتي:

Python:
import zipfile
قم بتمرير مسار الملف المراد فك الضغط عنه

filename = 'archive_protected.zip'

الى الدالة (ZipFile(filename

فيصبح الامر

Python:
zip_File = zipfile.ZipFile(filename)

ثم أضف أمر فك الضغط extractall

Python:
zip_File.extractall()


بعد ان أخذنا فكرة حول استخدام المكتبة, سنقوم بكتابة سكريبت بسيط جدا للتخمين

على ملف مضغوط Brute-Forcing archive.zip

الطريقة كالاتي

نستدعي المكتبة بالامر

Python:
import zipfile

نقوم بانشاء متغير filename ونضع به اسم الملف المضغوط المراد التخمين على رقم السري Password الخاص به

ملاحظة:
ان كان الملف بجانب المشروع نكتفي باسم الملف, أما في حالة كان بمجلد أخر نضع المسار كاملا

كمثال:

'/root/project/archive_protected.zip'

Python:
filename = 'archive_protected.zip'

ننشئء متغير اخر dictionary ونعين له قيمة تحتوي ملف أو قائمة للباسووردات

dictionary = 'passwordlist.txt'

قم بانشاء متغير باسم password فارغ سنحتاجه فيما بعد, سيحمل الباسوورد المراد تجربته

password = None

الأن نحتاج لفتح الملف المضغوط باستعمال الدالة ZipFile

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

Python:
zip_to_open = zipfile.ZipFile(filename)

الان نقوم بقراءة ملف الباسووردات dictionary عبر حلقة for

كود:
with open(dictionary, 'r') as f:
    for line in f.readlines():
        password = line.strip('\n')
الان نقوم بفك الضغط عن الملف وفي هذه الخطوة سنقوم بتمرير الباسوورد لتجربته عليه (extractall(pwd=password

Python:
try:
     file_to_open.extractall(pwd=password)
ان نجح الامر يطبع لك الباسوورد الصحيح وان لم ينجح يقوم بتجربة باسوررد اخر لاننا وضعنا حلقة for
Python:
                 password = '[+] Password found: %s' % password
                print password
            except :
                print "[!] Password Incorrect: %s" % password

وهذا السكريبت كاملا




يمكنك نسخه من هنا

Python:
 import zipfile, sys
filename = 'archive_protected.zip'
dictionary = 'passwordlist.txt'
password = None
zip2Open = zipfile.ZipFile(filename)
with open(dictionary, 'r') as f:
    for line in f.readlines():
        password = line.strip('\n')
        try:
            zip2Open.extractall(pwd=password)
            print '[+] Password found: %s' % password
            sys.exit(0)
        except:
            print "[!] Password Incorrect: %s" % password


يمكنكم الدخول على ويكي حاسوب للاطلاع على مهام هذه المكتبة مع الشرح بالعربي

الوحدة zipfile‎‎ في بايثون - موسوعة حسوب

وثائق المكتبة الاصلية بالانجليزي

zipfile — Work with ZIP archives — Python 3.7.1 documentation
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل