Python
-
Download from URLPython 2015. 1. 22. 22:16
import urllib2 url = "http://fandu.tistory.com/attachment/cfile7.uf@21559C3D54BBB1313AF043.exe" file_name = url.split('/')[-1]u = urllib2.urlopen(url)f = open(file_name,'wb')meta = u.info()file_size = int(meta.getheaders("Content-Length")[0])print "Downloading: %s Bytes: %s" % (file_name, file_size) file_size_dl = 0block_sz = 8192 while True:buffer = u.read(block_sz)if not buffer:break file_size..
-
Python PortScannerPython 2015. 1. 22. 02:10
파이썬소스이다. nmap포트스캐너를 구현한것이다. 해당 소스를 그대로 퍼가면 오류가난다. 그전에 세팅해주어야할것이있다. 우선 nmap.org/download.html에서 nmap을 다운받아주고, 설치까지 완료하면 환경변수에서 Program Files에잇는 nmap폴더를 올려준다. 그리고나서 nmap모듈을 다운로드하자 nmap 모듈은 아래링크에서 다운로드한다. http://xael.org/norman/python/python-nmap 그리고 모듈을 설치해주자 ( python setup.py install) 그럼 위 소스가 정상적으로 실행된다. nm = PortScanner()해당 문장은 nmap포트스캐너를 실행시킨다. 이 구문이 nmap을활성화시키는 구문이라 제일중요하다. nm.scan(IP,21) 이 구..
-
notepad WriteFile 후킹결과Python 2015. 1. 21. 06:20
WriteFile함수의 주소가 출력되어있다. hookAddress를 WriteFile의 위치로 잡아놨게때문에 우리는 알수있다. 이제 브레이크포인트가 걸린상태라서 멈춰있다. 우리는 love 를 아무렇게나 입력하자. love를 입력했다. 별다른 동작은 없다. 이제 저장을해보자 WriteFile이 호출되는 시점이다. 저장을하고 열어본결과 love가 hate로 정상적으로 바뀌어져있는것을확인할수있다. WriteFile함수를 후킹한결과이다. 파일을쓰되, love라는 문자열이보이면 전부 hate로 바꿔버린다. 이고써 WriteFile함수 후킹은 끝~
-
API Hooking (WriteFile)Python 2015. 1. 21. 06:13
이번에는 notepad,즉 메모장에 WriteFile이라는 API함수를 후킹하는 소스에대해 설명할것이다. 원리는 WriteFile에 브레이크포인트를 걸어 메모리값을 자신이 원하는 값으로 변경하는것이다. WINAPI인 WriteFile함수를 구현해놓는다. 그리고 pydbg를 선언해놓고, 이따가 메모리값을 변조 시킬 repPattern과 오리지널 패턴을 각각 hate와 love로 저장해둔다. 메모장에 존재하는 api를 후킹할것이기때문에 프로세스이름은 당연히 메모장으로 한다. 디버그 이벤트가 발생할때 호출할 콜백 함수를 선언한다. 이 함수에 후킹 코드가 들어가있기때문에 매우중요하다. replace를하되 orgPattern,repPattern에 무시하자. 아까 변수에 문자열을 넣었었는데 각각 love 와 hat..
-
Python KeyLoggerPython 2015. 1. 21. 03:54
우선 다양한 API를 사용하기위해 windll을 사용해서 user32와 kernel32를 선언한다. user32.API , kernel32.API 이런식으로 호출할수있다. 이따가 SetWindowsHookExA함수에서도 사용되고 다른 많은곳에서 사용된다. 미리 정의해놓은 변수이다. KeyLogger라는이름으로 클래스를 선언했다. __init__함수는 클래스가 선언될떄 처음으로 실행되는함수로 저기 정의된 변수들이 이따가 많이 사용된다. 함수이름대로 훅을 설치한다. user32.dll의 SetWindowsExA()함수를 사용해서 훅을 설치하는 함수이다. 모니터링할때는 첫번쨰 인자에 WM_KEYBOARD_LL을 넣어주고 훅 설치는 운영체제에서 실행되고있는 모든곳에 설치를 한다. 훅을 설치하는것과 반대로 훅을 ..