وبلاگ فربد | Farbod Blog

توی این وبلاگ راجع به پروژه هام صحبت می کنم

ساخت cracker فایل های zip

  • ۹۱۸

سلام دوستان :)

 

توی این پست قراره با هم نحوه ساخت یک اسکریپت پایتونی برای کرک کردن فایل های zip رو ببینیم.

توی پست قبلی راجع به کرک فایل های rar صحبت کردیم و با روش Brute Force آشنا شدیم.توی روش Brute Force ما میایم پسورد های زیادی رو روی فایل یا هر جایی که میخوایم کرکش کنیم امتحان میکنیم.

 

خب در ابتدا برای دانلود یک پسورد لیست 10 میلیونی کلیک کنید اینجا.

 

خب حالا میتونیم بریم سراغ اسکریپت

 

سورس:

from zipfile import ZipFile
from datetime import datetime

zf = input("Zip File : ")
passlist = input("Password List : ")

zf = ZipFile(zf)
tests = 0
start_time = datetime.now()
for password in open(passlist):
    password = password.strip("\n")
    print("Testing : {}".format(password))
    tests += 1
    try:
        zf.extractall(pwd=password.encode())
        end_time = datetime.now()
        t = end_time - start_time
        print("-"*50)
        print("Password : {}     ||     {} Passwords Tested in {} seconds !".format(password,tests,t.total_seconds()))
        input()
        break
    except :
        continue

توضیح: اول تابع ZipFile رو از ماژول zipfile ایمپورت کردیم. بعد کلاس datetime رو از ماژول datetime ایمپورت کردیم.

بعد دو تا input از کاربر گرفتیم، یکیشون آدرس فایل zip و یکیشون آدرس passwordlist. بعد یک شئ از کلاس ZipFile ساختیم.

بعد یک شمارنده به اسم tests برای خودمون درست کردیم و مقدار اون رو برابر 0 قرار دادیم. بعدش یک متغییر به اسم start_time درست کردیم و مقدار ()datetime.now که تاریخ دقیق همین زمان رو به ما بر میگردونه رو داخلش ریختیم.

 

بعد یک for برای پسورد لیست تعریف کردیم.

 

توی هر بار اجرا شدن حلقه، اول n\ رو از انتهای پسورد حذف کردیم بعد تعداد پسورد های تست شده رو یکی زیاد کردیم.(توی زبان های برنامه نویسی چیز هایی به نام escape sequence وجود دارن. n\ که نشون دهنده یک Enter هست یکی از ایناست)

توی try گفتیم که zf رو (شئ فایلمون) با اون پسورد extract کنه. اگر پسورد درست بود میره ادامه برنامه، 50 تا - رو چاپ میکنه. بعد هم چاپ میکنه که فلان قدر پسورد توی فلان زمان تست شد.

و با دستور break از حلقه میاد بیرون و از برنامه خارج میشه. حالا اگر پسورد درست نبود چی ؟ میاد توی except و با دستور continue میره از اول حلقه.

 

 

امیدوارم براتون مفید بوده باشه D:

 


  • عااااااااااااااالی
    ممنون از مطالب خوبتون
    پاسخ:
    سلام دوست عزیز
    موفق باشید
  • درود بر شما
    خیلی خوب و آموزنده بود
    اجراش کردم،زمان بر بود ولی عالی جواب داد
    پاسخ:
    خوشحالم براتون مفید بوده
    موفق باشید
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی