얼마전 타자방으로 알게된 하앙e님의 MSN기능형 봇을 보다가 문득 01년에 만들었던 장호애기(xiguel) 소스코드를 둘러보게 되었습니다.
03년에 서버 하드디스크를 날린 바람에 아주 초기 코드들만 남아있었습니다. 생각해보니 하드 날렸을때마다 개발의욕이 80%씩 깎여나가서 지금은 한 0.1% 남아있을런지.. 그때마다 msnmlib, jmsn을 sourceforge에서 개발한게 얼마나 잘한일인지 생각하게 됩니다. -_-
이렇게 많이 날려 버릇하면 백업 프로세스를 튼튼히 하고 습관을 새로 잡아야
했었는데, 뒤돌아보니 전 '언젠가 날릴텐데 만들지 말지 뭐' 하는
어처구니 사고방식을 가지고 있었습니다
암튼
장호애기 기능의 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 헤더를 제거해줍니다.
아마 실행에 옮겨질 것 같지는 않지만, 저 툴을 기반으로 크롤링 로봇 메이커를 만들어도 괜찮겠다 싶네요. 툴을 만들고 이 글을 쓰는데 많은 에너지를 소모했으므로.. 툴을 이용해 무엇인가를 만드는 것은 무기한 연장해야겠네요 (씨익)
분석 목적이 아닐 경우라도, 켜놓고 놀면 재밌습니다.
Comments
4 thoughts shared
rath
검색하면 다 나오는거였군요 -ㅅ-
rath
4월부터 7월까지 개인 사정으로 잠시 닫았었습니다. 또 뵈어요 +_+
Continue Reading
Discover more thoughts and insights
신입 개발자의 마음으로
곧 이동하게 될 새 팀에서는 맨바닥에서 빠르게 시공하는 일이 아니라 완성된 것에 대한 유지보수 업무가 대부분이라 여러 가지 기술적 도전을 스스로 받을 예정이다. 최근 5년 동안은 아는 거 울궈먹고 기술 외적인
3년 동안 Swift 쓰고도 70%를 몰랐다
지난 만 3년 동안 스위프트와 수백 시간을 보내며 앱 다섯 개를 만들었는데 어제 밤에 간단한 코드 수정을 하며 컬렉션 API도 제대로 다루지 못하는 스스로에게 문득 빡쳐서 큰맘먹고 책 하나(비기닝 스위프트)를
Spring framework을 공부하며: 무엇을 dependency로 규정해야 할까?
도대체 이제서야 Spring 을 공부하는 이유가 뭡니까? 런던에 도착한지 7주가 되어 갑니다. 아무리 본인의 취업의지가 희박하여 취업활동을 거의 진행하지 않았다 하더라도 7주 정도가 지나면, 월 고정 지출금액이