-
يكشنبه, ۹ خرداد ۱۴۰۰، ۱۰:۲۴ ق.ظ
-
۱۱۱۸
سلام دوستان :)
توی این پست قراره با هم نحوه ساخت یک اسکریپت پایتونی برای کرک کردن فایل های 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: