본문 바로가기
IOT & 홈랩

IOT 시리즈 (2) - 기존 장비에서 패킷 캡처를 해보자

by YangsDev 2022. 2. 5.

EW11 결선을 하고 셋팅을 완료 한 상태라면, 이제 패킷을 캡처 할 준비가 되었다.

내가 캡처를 하는 방식에 대해 이야기 해보려고 한다.

 

0. 패킷 캡처?

아마 처음 이런 시스템을 접한 사람들은 패킷 캡처라는 행위가 매우 생소 할 것 이다.

쉽게 설명하면 주방 TV의 도플갱어가 되기 위하여 학습을 하는 과정이다.

 

월패드라는 홈 네트워크의 두뇌 역할을 하는 친구는 "패킷" 이라는 '언어'를 통해

(정확하게 언어라고 표현하긴 애매한 구석이 있지만, 비개발자들도 알아듣기 위해..)  

집 안에 있는 각종 장비 (주방 TV, 도어락, 전열교환기 전등 등등)과 함께 "통신" (대화)을 한다.

 

그럼 우리가 지금 하고 있는 것은 무엇이냐?

집 안에 있는 장비들끼리 이야기 하는 내용을 몰래 들어 마치 주방 TV의 도플갱어를 만들려고 한다.

 

예를 들어, "불 켜줘" 라고 해야 두뇌에서 "아 불을 켜라고 하는 것이구나"  라고 이해를 하고  

그래서 우린 주방 TV가 월패드에 보내는 대화를 복제 하기 위해 뭐라고 말하는지 알아내는 방법에 대해 이야기 해보려고 한다.

 

1. 연결하기

지난 글 까지 따라 오신 분이라면 EW11에 기존에 TV에서 라인을 뽑아서 RS485 신호를 기준으로 결선을 해주 었을 것 이라고 생각된다.

먼저 준비물이 하나 필요하다. 바로 랜 커플러이다.

 

칼론 랜선 I형 연장 랜커플러

COUPANG

www.coupang.com

참고로 나는 아래와 같은 형태로 연결 해서 사용 중이다.

 

주방 TV ----> 랜커플러 -----> EW11 

 

이런 형태로 연결을 하게 되면, 주방 TV는 마치 실제 홈 네트워크와 연결 하고 있다고 착각을 하게 된다.

이제 모든 준비가 완료 되었다.

지난 글에서 이야기한 SerialPortMon 프로그램을 켜고 연결을 해두고 2번으로 와보자

 

2. 캡쳐준비

자 선도 연결을 했다면 준비가 모두 완료 되었다.

이 프로그램에서 기존적으로 해줄 셋팅 부터 진행 해보도록 하자

 

- "문자열 표시 방식 (2개 모두)" : "HEX"

하단 중간에 "설정" 버튼 클릭 후 위와 같이 설정

이렇게 해주면 패킷 캡쳐를 위한 준비가 완료 된다.

 

3. 캡쳐하기 

3-1. 송신 방식

자 이제 진짜 캡쳐를 한번 해보도록하자.

나는 현관에 문을 자동으로 열어주고 싶다.

오른쪽 하단에 있는 현관 보기를 눌러보자.

 

 

그럼 위의 그림 처럼 패킷이 뜨기 시작 할 것 이다.

여기서 팁은 하나씩 적어주면서 패킷을 적도록 하자.

이런식으로 이제 실제 문이 열리는 등의 액션은 되지 않겠지만, 장비들과의 대화를 듣기 시작 한 것 이다.

 

3-2. 수신 방식

3-1은 시작을 하는 대상이 주방TV의 방식이고, 반대로 월패드가 시작 하는 대상이라면, 수신 방식으로 패킷을 캡쳐 해야 한다.

결선을 아래와 같이 변경한다

EW11 ---> 랜 커플러 --> 기존에 연결된 라인 

그리고 문을 열고 나간뒤 초인종을 울려본다.

그럼 무언가가 캡쳐 화면에 찍힐 것 이다. 여러번 눌러봤을때 동일하게 (비슷하게X) 나오는 패킷이 아마 이벤트 패킷 일 것 이다.

 

이후 (4) 항목에서 검증 하는 방식을 통해 반대로, 주방 TV에 마치 누가 온 것 처럼 이벤트를 보내 볼 수 도 있다.

 

4.  검증

3번 섹션에서 아마 실제 장비들이 보내는 패킷을 잘 캡쳐 했을 것 이라고 생각한다.

캡쳐가 완료 되면 실제로 이 패킷이 맞는지 검증을 하는 과정을 거쳐야 한다.

 

검증이라고 해서 딱히 어려운 것은 없고, 캡쳐된 패킷을 그대로 다시 전송 해봤을때 원하는 액션 (불이 켜지거나.. 보일러가 켜지거나 등등)이 문제 없이 수행 된다면 성공이다.

 

검증하는 방법은 쉽다.

 

먼저 결선을 잠시 바꿔줘야 한다.

기존은 아래와 같았다.

ASIS : 주방 TV ----> 랜커플러 -----> EW11 
TOBE : 주방 TV --> 랜커플러 ---> 실제 월패드로 가는 라인

 

 

이런식으로 패킷이 캡쳐 되었다면, 줄당 하나의 명령인셈이다.

한줄을 복사하고 하단에 "보내는 문자열 편집"으로 복붙을 해주자.

그리고 보내기를 눌렀을때 원하는 액션이 된다면 성공 인 것 이다.

 

5.  과정의 이해

우리가 0번 항목에서 이야기 한 내용을 기반으로 한번 과정을 이해 해보려고 한다.

 

우리는 0번에서 홈 네트워크 안에서 장비들이 통신 하는 대화를 캡쳐 하여, 도플갱어를 만들어 낸다고 하였다.

 

우리는 (1) 항목을 통해 "주방 TV"라는 장비의 언어를 습득 하기 위한 하드웨어적 준비를 하였다.

그리고 (2) 항목을 통해 "주방 TV"가 보내는 언어를 사람이 확인 가능한 HEX 값으로 변환 해주는 소프트웨어적인 준비를 하였다.

그리고 (3)을 통해 실제 장비가 이야기 하는 대화를 캡쳐하였고,

(4)를 통해 마치 내가 주방 TV 인 것 월패드에게 말을 걸었고 월패드가 반응을 한다면 성공을 한 것 이다.

 

6. 마치며

오늘은 EW11을 통해 패킷을 캡쳐하는 방식에 대하여 알아보았다.

결론은 장비들끼리 하는 이야기를 몰래 훔쳐 들어서 그대로 이야기 하는 것과 동일 하다.

 

이 과정은 매우 귀찮고 반복작업으로 지칠 수 있는 작업이다. 

하지만 엑셀과 복붙 신공을 통해 원하는 패킷을 잘 캡쳐 해서 정리 해두도록 하자 

댓글