-
شنبه, ۲۸ تیر ۱۳۹۹، ۱۰:۴۳ ب.ظ
-
۸۴۳
آموزش کرک فایل های PDF محافظت شده با password با پایتون
درود به همه !
امروز دوباره اومدیم با یه پست کرکینگ . خب شاید کرک فایل های پی دی اف تاحالا به گوشتون نخورده باشه چون خیلی کم بحثش مطرحه . ولی به هرحال فایل های پی دی اف میتونن توسط یه پسوورد رمزنگاری بشن. حالا میخوایم با یه اسکریپت پایتونی اونارو کرک کنیم .
لینک زیر حاوی یه فایل pdf هستش که رمزگذاری شده . رمزش هم 123456 هستش .
دریافت
حجم: 7.48 کیلوبایت
وقتی میگم کرک یعنی اینکه ما نیاز به یه پسوورد لیست داریم تا یه سری پسوورد رو تست کنیم . میتونید از هر پسووردلیست دلخواهی استفاده کنید از پسوورد لیست های کوچیک و شخصی گرفته تا پسوورد لیست های بزرگتر مثل rockyou
برای نوشتن این اسکریپت از کتابخونه ی pikepdf توی پایتون استفاده میکنیم . برای نصب کتابخونه pikepdf از ابزار pip استفاده میکنیم .
در لینوکس :
MrPython@debian:~$ sudo pip3 install pikepdf
در ویندوز :
C:\> pip3 install pikepdf
بعد از اینکه کتابخونه نصب شد دیگه میریم سراغ اسکریپت .
سورس زیر یه اسکریپت فوق العاده ساده برای اینکاره :
# https://mrpython.blog.ir : Hossein Ahmadi
import pikepdf
import sys
passwordlist = "./passlist.txt"
pdf_file = "./file.pdf"
passwords = open(passwordlist)
for password in passwords:
password = password.strip("\n")
print("Testing : {}".format(password))
try:
pikepdf.open(pdf_file,password)
print("*"*50)
print("Password : {}".format(password))
break
except:
continue
خب در ابتدا اومدیم کتابخونه های مورد نیاز رو ایمپورت کردیم . بعد دوتا متغییر تعریف کردیم . داخل متغییر passwordlist مسیر پسووردلیست قرار میگیره و همچنین داخل متغییر pdf_file مسیر فایل pdf قرار میگیره .
سپس اومدیم توسط تابع open فایل پسوورد لیست رو خوندیم و داخل شیء passwords گذاشتیم اونو .
پس از اون اومدیم یه حلقه ی for نوشتیم که میاد به ازای هر کدوم از پسوورد های داخل پسووردلیست کار های زیر رو به ترتیب انجام میده :
۱ - ابتدا n\ آخر هر خط رو با تابع strip حذف میکنه
۲ - میاد چاپ میکنه که چه پسووردی رو داره تست میکنه
۳ - توسط عبارت try سعی میکنه که به وسیله ی اون پسوورد فایل pdf رو بخونه . اگه تونست بخونه یعنی پسوورد درست بوده و کد های داخل try اجرا میشن و نهایتا میرسه به break و برنامه بسته میشه . ولی اگه نتونه بخونه فایل pdf رو و اروری رخ بده یعنی پسوورد اشتباه بوده و کدهای داخل except اجرا میشه . از اونجایی که داخل except ما عبارت continue رو نوشتیم پس دوباره برمیگرده به اول حلقه و شروع میکنه همین مراحل رو برای پسووردای بعدی تست کنه تا اینکه نهایتا بتونه برسه به پسوورد اصلی .
تا اینجا روش نوشتن این اسکریپت رو یادگرفتیم . لینک همین اسکریپت ولی یکم کاملتر روی گیت هاب هست :
https://github.com/mrpythonblog/pdfcracker
امیدوارم لذت برده باشید .
منبع : thepythoncode
یاحق !