Simple Port Scanner 업그레이드 No.1
2012. 7. 10. 14:49ㆍHacking/Network
반응형
Simple Port Scanner의 경우 실행시켜보면 알겠지만,
매우 느리다는 것을 알 수 있다.
그 이유는 기본 TCP 접속을 통해서 해당 포트번호가 열렸는지를 체크할 때 걸리는 Timeout 세팅 때문이다.
Windows의 경우 레지스트리에 세팅이 되어 있는데, 72초라고 하네.
http://serverfault.com/questions/193160/which-is-the-default-tcp-connect-timeout-in-windows
아무튼 이러한 Timeout * 루프 카운트를 하게 되면 엄청난 시간이 걸리게 되는 것은 인지상정!
결국 Timeout + 한번에 한번만 접속 시도하는 Loop 때문에 생기는 문제다.
그럼 이것을 병렬처리하면 당연히 속도가 빠르지 않겠는가?
병렬처리를 위해 우리는 try_tcp_port 함수를 수정해보도록 하자.
setsockopt 함수설명은 아래 링크로 대체하겠다.
http://synch3d.com/winsock/setsockopt.html
여기서 사용된 timeout은 timeval 구조체를 사용하였다.
자, 이제 여기까지 하고 실행해도 엄청 빠르게 실행되는 것을 볼 수 있다.
그러면 병렬로 처리해서 속도를 한번 더 내볼까?
병렬로 connect하기 위해 thread를 사용해 봅시다~
gcc SimplePortScanner.c -o SimplePortScanner -lpthread
반응형
'Hacking > Network' 카테고리의 다른 글
Port Scanning 탐지 기법 (0) | 2012.07.10 |
---|---|
Simple Port Scanner 업그레이드 시키기 (0) | 2012.07.07 |
Port Scanning 기법 - SYN scanning (0) | 2012.07.07 |
Port Scanning 기법 - TCP scanning (0) | 2012.07.07 |
초간단한 Port Scanner 만들기 (0) | 2012.07.07 |