HTTP Sniff 장난감 하나 만들다

2 min read

얼마전 타자방으로 알게된 하앙e님의 MSN기능형 봇을 보다가 문득 01년에 만들었던 장호애기(xiguel) 소스코드를 둘러보게 되었습니다.

03년에 서버 하드디스크를 날린 바람에 아주 초기 코드들만 남아있었습니다. 생각해보니 하드 날렸을때마다 개발의욕이 80%씩 깎여나가서 지금은 한 0.1% 남아있을런지.. 그때마다 msnmlib, jmsn을 sourceforge에서 개발한게 얼마나 잘한일인지 생각하게 됩니다. -_-

이렇게 많이 날려 버릇하면 백업 프로세스를 튼튼히 하고 습관을 새로 잡아야 했었는데, 뒤돌아보니 전 '언젠가 날릴텐데 만들지 말지 뭐' 하는 어처구니 사고방식을 가지고 있었습니다 (7)

암튼

장호애기 기능의 1/3 정도는 웹크롤에 의존하고 있었기 때문에 기상청이고 yes24 서적검색이고 구글검색이고 제대로 돌아가는게 하나도 없었습니다!

그것참 이더리얼 띄우고 소스보기 해가면서 다시 그 작업들을 다시 할 생각하니 어느 책에서 읽은 문구가 스쳐지나갔습니다..

열정에 사로잡힌 사람들은 평화롭게 먹고, 자고, 일할 수 없다. 열정은 과거에 속하는 것들을 모두 파괴해버린다. 사람들이 열정을 두려워하는 것은 바로 그 때문이다.

그래서 얼마전에 jpcap을 둘러봤던 것을 더듬어 조그마한 GUI 툴을 만들었습니다! (서론이 너무 길었다고 생각하지 않아? (씨익))

짜잔 스샷~* (@)

구동을 위해 Java 5 + winpcap 3.1 + jpcap 0.5.1 가 필요합니다.

HttpSniff.jar (20.5KB) 내려받기 (실행은 javaw -jar HttpSniff.jar 아시죠?)

개인용으로 쓰는 CUI 버전은 fc5 에서 libpcap + jpcap으로 잘 돌아갔음을 확인했으나 GUI는 확인한 바가 없으므로 (아마 잘돌아가겠지만 제가 테스트해보지 않았으므로) 권장하지 않습니다.

음.. Screenshot에 최대한 많은 내용을 담으려 노력했지만 간단히 프로그램 설명을 해보겠습니다.

[기능]

- 80 포트로 나가는 (HTTP-Request) 모든 패킷 캡춰
- 콤보박스를 통한 NIC 선택
- 패킷이 도착한 시간을 HH:mm:ss.SSS 형식으로 표시
- 각 패킷을 마우스로 선택한 후, 팝업메뉴를 통하여
--+ URL을 클립보드로 복사
--+ 요청한 URL과 요청 당시의 HTTP-Header들을 Dialog로 표시
--+ Reaction and View source 
     요청 패킷과 동일한 조건으로 Http Sniff 툴에서 재요청하여 페이지 소스코드를 표시. 
     표시되는 다이얼로그 상단에서 페이지 소스의 인코딩 선택 가능 (EUC-KR, UTF-8) 

- 최근 도착한 패킷이 목록의 상단에 표시 (도착시간 역순)
- 가독성을 위한 URI 내 QueryString Hidden 체크박스 제공
- 장시간 캡춰시 메모리 누수 방지를 위해 최근 500~550개의 패킷만 유지
- 가독성을 위해 jpg, gif, jpeg, png, swf, css, bmp로 끝나는 URL 미표시 (개발자의 억지)
- 가독성을 위해 구글툴바, 구글데스크탑의 쿼리 무시

RSS가 난무하는 세상이지만 필요할 때가 있습니다. RSS로 정보를 제공받으면.. Layer가 하나 더 늘어나서 못마땅할때가.. 특히 Reaction 기능은 싸이월드에 로그인한 상태에서 네비게이트 하는 페이지들도 말끔하게 재요청해줍니다. 이를 위해 재요청시엔 Accept-Encoding 헤더를 제거해줍니다.

아마 실행에 옮겨질 것 같지는 않지만, 저 툴을 기반으로 크롤링 로봇 메이커를 만들어도 괜찮겠다 싶네요. 툴을 만들고 이 글을 쓰는데 많은 에너지를 소모했으므로.. 툴을 이용해 무엇인가를 만드는 것은 무기한 연장해야겠네요 (씨익)

분석 목적이 아닐 경우라도, 켜놓고 놀면 재밌습니다. (7)

Comments

4 thoughts shared

01
P

pistos

비슷한 목적으로 만들생각은 눈꼽만큼도 안하고 HttpWatch (http://httpwatch.com) 쓰고 있는뎅.. 암튼 메리 추석~

02
R

rath

검색하면 다 나오는거였군요 -ㅅ-

03

정상원

안녕하세요~ 장호님~ ^^/ 웹페이지가 너무 안열려서 완전 닫으셨나 걱정했는데. 얼마전부터 다시 기웃거리고 있습니다. 프로그램 멋지네요 +.+; 또 올께요~

04
R

rath

4월부터 7월까지 개인 사정으로 잠시 닫았었습니다. 또 뵈어요 +_+

Continue Reading

Discover more thoughts and insights