آموزش ساخت cracker برای فایل های zip در پایتون :: Mr Python | مستر پایتون

آموزش ساخت cracker برای فایل های zip در پایتون

  • ۱۷۵۷

آموزش ساخت cracker برای فایل های zip در پایتون

درود به همه !

 

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

 

برای نوشتن این اسکریپت نیاز به کتابخونه ی zipfile داریم .ما از طریق این کتابخونه میتونیم با فایل های zip کار کنیم و پسووردامون رو روشون تست کنیم .

خب در ابتدا من یه فایل زیپ دارم به اسم file.zip که پسووردش برابر ۱۲۳ هستش .

همینطور یه پسووردلیستی دارم که حدود ۲ میلیون پسوورد داخلشه .

سورس ابزار :

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()))
        break
    except :
        continue

توضیح سورس کد : در دو خط ابتدایی کتابخونه های مورد نیاز ایمپورت شدن . در دو خط بعدی ، آدرس فایل زیپی که قراره کرک بشه و آدرس پسووردلیست از کاربر پرسیده شده . در خط بعد شیء فایل زیپ با استفاده از کلاس ZipFile ساخته شده و ریخته شده داخل متغییر zf .

سپس یه متغییر به نام tests تعریف کردیم که مقدار صفر داخلشه . کار این متغییر اینه که به محض تست هر پسوورد ، یکی بهش اضافه میشه و درنتیجه پس از اتمام کرک میتونیم بفهمیم چه تعداد پسوورد تست شده .

پس از اون متغییر start_time رو تعریف کردیم که زمان فعلی (زمان شروع کرک)‌داخلش ریخته شده .

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

در هر بار اجرای حلق ابتدا n\ آخر هر پسوورد رو حذف کردیم و چاپ کردیم چه پسووردی الان داره تست میشه . بعد از اون هم یکی به متغییر tests اضافه کردیم .

سپس با استفاده از عبارت try / except  اومدیم چک کردیم ببینم آیا پسوورد فعلی فایل زیپ رو اکسترکت میکنه یا نه . اگه اینکارو کرد یعنی پسوورد درست بوده و اگه ارور داد و اکسترکت نکرد یعنی اشتباه بوده پسوورد . خب داخل عبارت try  اومدیم نوشتیم که فایل رو با پسوورد فعلی اکسترکت کنه . سپس زمان فعلی(زمان اتمام کرک) رو ریختیم داخل متغییر end_time و در خط بعد حاصل تفاضل زمان شروع یعنی start_time و زمان اتمام کرک یعنی end_time رو بدست آوردیم . این مقدار بدست اومده مقدار زمانیه که برای کل پروسه کرکینگ صرف شده .  نهایتا در خط بعد اومدیم پسوورد درست و اطلاعات کرک (زمان صرف شده و تعداد پسوورد های تست شده) رو چاپ کردیم .

در خط بعد با استفاده از دستور break از حلقه خارج شدیم.

اگر پسوورد فعلی غلط باشه و در مرحله اکسترکت کردن ارور بده خب کد های داخل except اجرا میشه و چون نوشتیم continue میره از اول حلقه شروع میکنه و پسوورد بعدی رو تست میکنه.

 

پس از اجرای برنامه و دادن ورودی های مورد نیاز (فایل زیپ و پسووردلیست) میبینیم که با سرعت نسبتا بالایی برای ما شروع به کرک کردن میکنه . همینطور که در تصویر زیر میبینیم 1500 تا پسوورد رو در 0.1 ثانیه تست کرده !!!!!

تصویر زیر :

 

یا حق !

Telegram Channel : @mrpythonblog

  • سلام بر شما.

     

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

    اسکریپت rar cracker برام کار میکنه ولی نمیدونم چرا این اسکریپ zip cracker برام کار نمیکنه.

    پاسخ:
    ببینید منظورم اینه از پسووردلیستی استفاده کنید که مطمئنید پسوورد صحیح داخلشه . از  این جهت اطمینان دارید ؟
    ممکنه شما 20 تا پسووردلیست مختلف رو تست کنید ولی پسوورد صحیح داخلش نباشه !
  • درود بر شما 

     

    من یک مشکلی که برام پیش اومده اینه که من وقتی این اسکریپت رو تست میکنم نه ارور میده و نه پسوورد رو برام نشون میده فقط پسوورد هارو پرینت میکنه.

     

    بعد من رفتم از تو اینترنت دنبال اسکریپت های دیگه اما اونا هم دقیقا همینجوری بودن.

     

    ممنون میشم راهنماییم کنید.

    پاسخ:
    درود بر شما .
    خب احتمالا پسووردلیستی که استفاده میکنید حاوی پسوورد صحیح نیست .
    از این جهت مطمئنید که پسوورد لیست درستی انتخاب کردید ؟
  • سلام میشه همینو با multiprocessing بسازید ؟

    پاسخ:
    کرکر زیپ فایل به اندازه کافی سرعت بالایی داره .
    اگه با پردازش موازی هم پیاده کنیم تفاوت چندانی نداره . درکل سرعتش بالاس به طور پیشفرض
  • اینکار روی فایل هایrarهم جواب میده؟

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