윈도우에서 피들러로 패킷을 잡을 수 없는 프로그램들
이번에 어떤 게임을 피들러로 분석할 일이 있었습니다.
피들러를 써본 분들이라면 아시겠지만, 가끔 피들러를 써도 패킷이 보이지 않는 프로그램들이 있습니다.
이런 프로그램은 반드시 와이어샤크로 분석해야 하는 줄 알았지만, 새로운 방법을 알게 되었습니다.
피들러를 보완해주는 프로그램 Proxifier
그건 바로 피들러와 Proxifier를 함께 쓰는 것입니다.
이름 그대로 원하는 패킷을 프록시에 경유하도록 하는 프로그램인데,
특정 프로그램을 선택해서 그 프로그램에서 오가는 패킷들만 프록시에 경유하도록 설정할 수 있습니다.
결국 Proxifier로 특정 게임을 선택한 후에, 그 게임에서 나오는 패킷을 피들러의 프록시 주소인 127.0.0.1:8888로 경유했더니 게임의 HTTPS 패킷들을 모두 볼 수 있었습니다.
Fiddler VS Proxifier
Fiddler와 Proxifier의 차이가 뭐길래 피들러에서 잡을 수 없었던 패킷을 Proxifier가 잡은 건지 너무나 궁금했습니다.
이에 대해 조사하면서 알게 된 사실을 정리해보겠습니다.
제가 윈도우 운영체제의 통신에 대한 이해가 깊지 않아 틀린 부분이 다소 있을 수 있지만 지적해 주시면 감사하겠습니다.
먼저 각 프로그램이 설명하는 작동 방식부터 살펴보겠습니다.
Fiddler의 작동 방식

피들러는 WinInet이라는 서비스의 프록시 주소를 피들러의 프록시 주소로 바꿉니다.
여기서 WinInet은 윈도우 제어판에서 볼 수 있는 프록시 설정과 같습니다.
즉, 피들러에서 Capture 할 때는 윈도우 제어판에서 프록시를 설정한 것과 같습니다.
크롬이나 엣지 같은 대부분의 웹 브라우저는 이 WinInet 설정을 그대로 따릅니다. 그래서 피들러를 켜면 브라우저의 트래픽이 자연스럽게 피들러를 거쳐 가게 되고, 우리가 패킷을 볼 수 있는 것입니다.
하지만 문제는 모든 프로그램이 WinInet 설정을 따르는 건 아닙니다.
제가 분석하려던 게임처럼 윈도우의 시스템 프록시 설정을 아예 무시하고 다이렉트로 서버와 통신하는 프로그램들이 있습니다.
이런 프로그램들은 제어판에서 프록시를 아무리 설정해도 설정을 따르지 않고 서버로 직접 패킷을 보냅니다.
그래서 피들러에 패킷이 잡히지 않았던 것입니다.
Proxifier의 작동 방식


반면 Proxifier는 프록시로 우회시키는 방식이 피들러와는 완전히 다릅니다.
Proxifier는 윈도우의 Winsock 레벨에서 작동합니다. 프로그램이 인터넷 통신을 하기 위해 운영체제에 소켓 연결을 요청하는 순간, 그 요청 자체를 중간에서 가로채는 방식입니다.
이것은 후킹이라고 볼 수도 있으며, 이러한 방식 때문에 특정 프로그램의 패킷만 후킹 해서 볼 수 있었던 것입니다.
제가 게임 프로세스를 Proxifier에 등록했을 때 예상 흐름은 이렇습니다.
- 게임 클라이언트가 서버에 HTTPS 통신을 시도합니다. (이 요청은 프록시 설정을 무시함)
- 하지만 Proxifier가 Winsock 계층에서 이 연결 시도를 감지하고 즉시 가로챕니다.
- Proxifier는 가로챈 패킷을 피들러의 주소(127.0.0.1:8888)로 우회 시킵니다.
- 피들러 입장에서는 누가 보냈든 자기 포트로 들어온 트래픽이니, 평소처럼 자신의 인증서를 이용해 HTTPS 암호화를 풀고 내용을 보여줍니다.
결론
강제성의 차이
결국 제가 피들러만 썼을 때 실패했던 이유는 게임이 윈도우 설정을 따르는 프로그램이 아니었기 때문입니다.
피들러는 프로그램이 자발적으로 프록시를 타주길 기다리는 수동적인 방식이므로 프로그램이 마음만 먹으면 피들러에게 패킷을 주지 않을 수 있습니다.
반면 Proxifier은 피들러보다 더 강제적으로 프로그램을 프록시로 우회시킵니다.
새롭게 궁금해진 부분
그런데 Proxifier에서도 제대로 경유가 되지 않는 패킷이 있었는데,
패킷의 url 경로에 proxy가 포함됐으며 443 포트로 요청하는 패킷이었습니다.
이 패킷을 피들러에서 처리하지 못해 결국 블랙리스트 방식으로 이 패킷만 우회시키지 않도록 해서 분석을 진행할 수 있었는데,
어째서 이 패킷만 제대로 처리 되지 않았던 건지 계속 분석하며 이유를 찾고 싶습니다.
와이어샤크로 암호화 된 HTTPS 데이터를 보는 것은 상당히 어려운데, Proxifier를 통해 피들러로 넘겨주니까 평소와 같이 패킷을 편하게 볼 수 있었습니다.
혹시 저처럼 피들러로 분명히 잡혀야 할 것 같은데 죽어도 안 잡히는 프로그램이 있다면, 그 프로그램이 WinInet 설정을 무시하고 있을 확률이 매우 높습니다.
그럴 땐 와이어샤크를 쓰는 것보다 Proxifier를 써보는 걸 추천 드립니다.
'오늘 배운것들' 카테고리의 다른 글
| Bloom Filter란 뭘까,,,,,, (1) | 2025.07.03 |
|---|---|
| 일을 시작하며 느낀 CS의 중요성 (0) | 2025.06.19 |
| 셀레니움 크롬 프로필 쓰는 방법/ 유튜브 네이버 로그인 없이 자동화 하는법 (2) | 2022.08.02 |
| ERD 기호 설명 (0) | 2020.04.12 |
| npm모듈 multer (0) | 2020.04.02 |
