반응형

파이썬 실전/브루트 포스 3

파이썬 실전) 브루트 포스 프로그램 2. 멀티스레딩을 이용한 브루트 포스

이번 강의는 파이썬의 멀티스레딩을 이용하여 브루트 포스를 하는 방법에 대해서 알려드리려고 합니다. 1. 멀티스레딩 기본적으로 프로그램은 한 번에 하나의 명령을 수행합니다. 그 속도가 매우 빠르기 때문에 일반적인 상황에서는 문제가 되지 않습니다만, 브루트 포스처럼 엄청난 양의 연산을 해야 되는 경우에는 하나씩 처리하는데 시간이 많이 걸립니다. 그렇기에 나온 것이 바로 멀티스레딩입니다. 예를 들어 자동차를 만든다고 가정할 때, 한 명이 하나의 자동차를 만드는 것은 매우 힘든 일입니다. 하지만 100명이 붙어서 만든다면 그 힘은 현저히 줄어들 것입니다. 이러한 원리를 컴퓨터에서도 적용할 수 있습니다. 먼저 멀티스레딩은 두 가지로 나누어집니다. 하나는 일시적 멀티스레딩이며, 나머지는 동시 멀티스레딩입니다. 일시..

파이썬 실전) 브루트 포스 프로그램 1. for문을 이용한 브루트 포스

이번 강의는 브루트 포스의 방법으로써, 파이썬에서 기본 지원하는 for문을 이용하여 브루트 포스를 해보려고 합니다. 1. 기초 파이썬의 for문에서 브루트 포스를 하려면 모든 경우의 수를 만들 수 있어야 합니다. 이러한 경우의 수를 만들어 주는 모듈이 바로 intertools 모듈의 product라는 함수입니다. from itertools import product itertools 모듈에는 여러 조합을 만드는 방법이 있지만, 브루트 포스 프로그램에서는 product를 사용해서 만들 예정입니다. product 모듈의 사용 방법은 다음과 같습니다. list = product(A, repeat=B) A는 조합을 만들 내용을 입력하며, B는 자릿수를 입력합니다. product는 기본적으로 여러 리스트들의 조합..

파이썬 실전) 브루트 포스 프로그램 0. 브루트 포스의 뜻

이번시간부터는 파이썬에서 브루트 포스 알고리즘을 이용하는 방법에 대해서 글을 써보려고 합니다.1. 브루트 포스? 과거 2G폰을 사용했던 사용자라면 위와 같은 화면이 기억나실겁니다. 그때 비밀번호는 4자리의 암호였으며, 친구 휴대폰의 비밀번호를 풀기 위해서 0000부터 9999까지의 경우의 수를 한번씩 입력해서 비밀번호를 풀려고 했던 기억이 있습니다. 또는 친구의 버튼식이나 다이얼식 자물쇠를 사용하는 사물함을 열기 위해 가능한 경우의 수를 하나씩 전부 대입해서 자물쇠를 풀었던 기억이 있습니다. 이처럼 그 어떤 비밀번호라도 모든 경우의 수를 전부 대입하게 되면 반드시 비밀번호는 풀립니다. 이러한 방식을 브루트 포스 공격(Brute - 난폭한, Force - 힘 / 난폭하게 힘으로 때려맞추는 공격기법)이라고 ..

반응형