Download rar password unlocker 5

1. Các thư viện đề nghị dùng

Tlỗi viện ziptệp tin nhằm xử lý tệp tin Zip.Thỏng viện rartệp tin nhằm cập nhật tệp tin Rar.Tlỗi viện UnRAR, thỏng viện rartệp tin buộc phải đi kèm theo với tlỗi viện nàyTlỗi viện os nhằm đánh giá file.Thư viện argparse để thừa nhận các Argument.Tlỗi viện threading để tăng tốc bằng phương pháp cập nhật đa luồng.Tlỗi viện itertools nhằm sản xuất các chuỗi password.Thỏng viện time để tính thời hạn (cái này bản thân đưa vào nhằm tính coi mất bao lâu thôi chứ nó ko đề xuất ).

You watching: Download rar password unlocker 5

2. Tiến hành

Trước tiên ta sản xuất một trở nên lưu giữ cực hiếm của toàn bộ những kí trường đoản cú trên bàn phím:

CHARACTER ="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!
#$%^&()"Sau đó viết các argument đề nghị thiết:

parser = argparse.ArgumentParser(description="Craông xã zip rar", epilog="Use the -h for help")parser.add_argument("-i","--input", help="Insert the file path of compressed file", required=True)parser.add_argument("rules", nargs="*", help=" ")Ta viết một class check các argument:

class Check: def __init__(self, Arg): self.type = None self.rules = False self.minLength = None self.maxLength = None self.character = None # Kiểm tra rules if len(Arg) >= 4: self.getData(Arg) self.rules = True elif len(Arg) == 0 or len(Arg) > 2: parser.print_help() parser.exit() # Kiểm tra file có sống thọ hay không if (self.CheckFileExist(Arg)): self.getType(Arg) else: print ("No such file or directory: ",Arg<1>) parser.exit() def CheckFileExist(self, Arg): if (os.path.isfile(Arg<1>)): return True else: return False def getData(self, Arg): try: self.minLength = int(Arg<2>) self.maxLength = int(Arg<3>) except ValueError: print ("Value Error") parser.exit() if self.minLength > self.maxLength: print ("Length Error") parser.exit() if len(Arg) == 5: self.character = Arg<4> def getType(self, Arg): if os.path.splitext(Arg<1>)<1> == ".rar" or os.path.splitext(Arg<1>)<1>==".zip": self.type = os.path.splitext(Arg<1>)<1> else: print ("Extension Error") parser.exit()Tiếp tục ta viết class chính để xử lí:

class Handler: def __init__(self, rules, typeCompress, minLength, maxLength, character): self.rules = rules self.location = sys.argv<2> self.type = typeCompress self.minLength = minLength self.maxLength = maxLength if not character: self.character = CHARACTER else: self.character = character self.result = False self.GetFile() self.CheckRules() def GetFile(self): # Knhị báo tệp tin if self.type == ".zip": self.FileCrachồng = zipfile.ZipFile(self.location) else: self.FileCraông chồng = rartệp tin.RarFile(self.location) def Brute(self,password): # Brute với những pass gửi vào, ví như .zip thì cần encode string password thành utf-8 bởi module ziptệp tin đề xuất try: if self.type == ".zip": tryPass = password.encode() else: tryPass = password print (tryPass) self.FileCraông xã.extractall(pwd=tryPass) print ("Complete") print("Time:",time.clock() - self.start_time,"s") print ("Password:",password) self.result = True except: pass def CheckRules(self): self.start_time = time.clock() print ("Cracking...") # Nếu không có rules thì lặp vô hạn if not self.rules: length = 1 while True: self.SendRequest(length) if self.result: return length += 1 # Nếu tất cả rules thì đang lặp từ bỏ độ nhiều năm của các argument chuyển vào else: for length in range(self.minLength, self.maxLength + 1): self.SendRequest(length) if self.result: return if not self.result: print ("Cannot find password with this rules") return def SendRequest(self,length): listPass = product(self.character, repeat=length) for Pass in listPass: tryPass = "".join(Pass) # Multi Thread: # nThread = Thread(target=self.Brute, args=(tryPass, )) # nThread.start() # Single Thread: self.Brute(tryPass) if self.result: returnToàn bộ code:

import zipfileimport rarfileimport osimport sysfrom threading import Threadimport argparsefrom itertools import productimport timeparser = argparse.ArgumentParser(description="Craông chồng zip rar", epilog="Use the -h for help")parser.add_argument("-i","--input", help="Insert the file path of compressed file", required=True)parser.add_argument("rules", nargs="*", help=" ")CHARACTER = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!
#$%^&*()"class Check: def __init__(self, Arg): self.type = None self.rules = False self.minLength = None self.maxLength = None self.character = None # Kiểm tra rules if len(Arg) >= 4: self.getData(Arg) self.rules = True elif len(Arg) == 0 or len(Arg) > 2: parser.print_help() parser.exit() # Kiểm tra file tất cả lâu dài hay là không if (self.CheckFileExist(Arg)): self.getType(Arg) else: print ("No such file or directory: ",Arg<1>) parser.exit() def CheckFileExist(self, Arg): if (os.path.isfile(Arg<1>)): return True else: return False def getData(self, Arg): try: self.minLength = int(Arg<2>) self.maxLength = int(Arg<3>) except ValueError: print ("Value Error") parser.exit() if self.minLength > self.maxLength: print ("Length Error") parser.exit() if len(Arg) == 5: self.character = Arg<4> def getType(self, Arg): if os.path.splitext(Arg<1>)<1> == ".rar" or os.path.splitext(Arg<1>)<1>==".zip": self.type = os.path.splitext(Arg<1>)<1> else: print ("Extension Error") parser.exit()class Handler: def __init__(self, rules, typeCompress, minLength, maxLength, character): self.rules = rules self.location = sys.argv<2> self.type = typeCompress self.minLength = minLength self.maxLength = maxLength if not character: self.character = CHARACTER else: self.character = character self.result = False self.GetFile() self.CheckRules() def GetFile(self): # Knhì báo tệp tin if self.type == ".zip": self.FileCraông xã = zipfile.ZipFile(self.location) else: self.FileCraông chồng = rarfile.RarFile(self.location) def Brute(self,password): # Brute với các pass gửi vào, giả dụ .zip thì phải encode string password thành utf-8 bởi module ziptệp tin phải try: if self.type == ".zip": tryPass = password.encode() else: tryPass = password print (tryPass) self.FileCraông xã.extractall(pwd=tryPass) print ("Complete") print("Time:",time.clock() - self.start_time,"s") print ("Password:",password) self.result = True except: pass def CheckRules(self): self.start_time = time.clock() print ("Cracking...") # Nếu không tồn tại rules thì lặp vô hạn if not self.rules: length = 1 while True: self.SendRequest(length) if self.result: return length += 1 # Nếu bao gồm rules thì vẫn lặp trường đoản cú độ dài của những argument gửi vào else: for length in range(self.minLength, self.maxLength + 1): self.SendRequest(length) if self.result: return if not self.result: print ("Cannot find password with this rules") return def SendRequest(self,length): listPass = product(self.character, repeat=length) for Pass in listPass: tryPass = "".join(Pass) # Multi Thread: # nThread = Thread(target=self.Brute, args=(tryPass, )) # nThread.start() # Single Thread: self.Brute(tryPass) if self.result: returndef main(): kiểm tra = Check(sys.argv<1:>) args = parser.parse_args() rarfile.UNRAR_TOOL = "UnRAR.exe" Handling = Handler(check.rules, kiểm tra.type, kiểm tra.minLength, check.maxLength, kiểm tra.character)if __name__ == "__main__": main()3. Thử nghiệm

Không rules

Mình sinh sản một tệp tin zip tên là Takizawa Laura.zip với pass là jav

*

Chạy demo và kết quả:

*

Ban đầu, menu pass được chế tạo ra với length = 1 sẽ có được dạng tiếp nối không được tiếp tục tăng length = 2 yêu cầu danh mục thay đổi cũng không được nốt, length = 3 thì jav,...>.

Có rules

Mình sinh sản một tệp tin rar thương hiệu là PPPD-558.rar cùng với pass là boobs

*

Chạy thử với rules 4 5 abos:

*

Ban đầu, các mục pass được sinh sản với length = 4 (min Length) sẽ sở hữu được dạng kế tiếp không được thường xuyên tăng length = 5 (max Length) ( bắt buộc list vươn lên là boobs,...> .

See more: Photoshop Cc 2019 Crack: Adobe Photoshop Cc 2019 Full Version

4. Lời kết

Đây là một trong bí quyết craông xã file zip đơn giản và dễ dàng thực hiện kĩ thuật Brute Force, ưu thế là luôn tìm thấy password, dẫu vậy nhược điểm là phải mất kha khá thời gian với các mật khẩu dài loại, ví dụ như: yaxua.laktr0j giỏi racjngp0yvjppr0 ví dụ điển hình.

Sử dụng thread hoàn toàn có thể tăng tốc độ lên một ít,mà lại các bạn bắt buộc limit thread lại kẻo treo sản phẩm bằng phương pháp sử dụng thư viện queue.

See more: Microsoft Office 2016 Professional Download Full Crack Version 32 Bit And 64 Bit (November 2020) : Hiperaym

Mình đã và đang thêm rules vào để tối ưu hóa tài năng search pass, cùng với rules những chúng ta cũng có thể bớt con số pass test, ví như chúng ta đoán thù pass nhiều năm khoảng chừng 6 - 9 kí tự với lượng character chỉ bao gồm tất cả các kí từ bỏ có thì thời điểm đó sẽ rút gọn gàng được không ít thời gian.

Các chúng ta có thể fork project của mình bên trên github.Cảm ơn bạn đã hiểu bài xích.

*

Bài viết được đăng lại tự blog: https://mnismt.space/crack-password-file-zip-va-rar-don-gian-voi-python-su-dung-ki-thuat-brute-force/


Chuyên mục: Download