압축 파일에 암호가 걸려 있는 경우 암호를 빠르게 풀어주는 프로그램을 필요로 한다.
하지만 시중(구글 검색으로 나오는 코드) 에 있는 파이썬 코드는 느리다!!
따라서 수정이 필요했고 다음과 같은 프로그램을 만들었다.
사용 방법은
ZipCrackerUsingDigit.exe -f 파일경로 -l 암호의길이
ex) ZipCrackerUsingDigit.exe -f a.zip -l 5
-> 이럴 경우 5자리의 암호가 걸려 있고 brute 공격으로 암호를 찾는다.
경고)
1. 이 프로그램은 압축 파일안에 파일이 2개이상 있을 때 정확한 암호가 반환 됩니다.
2. 암호의 길이가 6자리 이상부터는..쫌 오래걸립니닫.
3. 암호가 숫자여야만 합니다.
느린코드
import itertools
import argparse
import zipfile
import string
import sys
def confirmPassword(zFile, password):
try:
zFile.extractall(pwd=str(password))
return True
except:
print password
return False
def main_loop(filename, length):
cracked = False
zFile = zipfile.ZipFile(filename)
for password in itertools.imap(''.join, itertools.product(string.digits, repeat=length)):
cracked = confirmPassword(zFile, password)
if cracked:
print ('password is:', password)
break
if not cracked:
print 'can not find password'
def main():
main_loop("파일경로", 4) #4 : 암호길이
return
if __name__ == '__main__':
main()
수정한 코드
import itertools
import argparse
import zipfile
import string
import sys
def confirmPassword(filename, password):
try:
zFile = zipfile.ZipFile(filename)
for name in zFile.namelist():
zFile.open(name, pwd=password)
return True
except:
print password
return False
def main_loop(filename, length):
print '[*] JH zip cracker (only digit) '
print '[*] Zipfile: %s; password length: %s' % (filename, length)
cracked = False
for combo in itertools.imap(''.join, itertools.product(string.digits, repeat=length)):
cracked = confirmPassword(filename, combo)
if cracked:
print (
'password is:', combo)
break
if not cracked:
print 'can not find password'
def main():
parser = argparse.ArgumentParser(usage='ZipCrackerUsingDigit.exe -f <zipfile> -l <password length>')
parser.add_argument('-f', '--zipfile', help='specify zip file', type=str)
parser.add_argument('-l', '--length', type=int, help='password length', default=5)
args = parser.parse_args()
if args.zipfile == None:
print parser.usage
sys.exit(0)
main_loop(args.zipfile, args.length)
return
if __name__ == '__main__':
main()
'개발 > 개발한프로그램' 카테고리의 다른 글
JAVA 자바 기반 채팅프로그램 (6) | 2015.03.02 |
---|---|
Hex 값을 읽기 위한 모듈 C++, Python (0) | 2015.02.23 |
구글 번역기 프로그램 GUI -버그수정 (4) | 2014.12.24 |
꺼지지 않는 간단한 영어사전 (0) | 2014.12.23 |
구글번역기 프로그램 + (중계 번역 기능 추가) 버그수정 (9) | 2014.12.23 |