I don't know when to quit! But I know when do I quit!

Diy -자작

리버스 엔지니어링을 하는 과정들... 1/n

dudals_jung 2023. 1. 21. 10:34

리버스 엔지니어링을 해보자.

 

리버스 엔지니어링은 흔히 말하는 해킹이랑 비슷한 개념입니다.

기존에 있는 제품이나 시스템을 분석해서 헛점을 뚫으면 해킹, 대체품이나 복제품을 만들면 리버스 엔지니어링이죠.

대체품이나 복제품을 만든다는게 꼭 불법은 아닙니다.

제품 제조사가 도산을 했거나 전체 중 일부만 개선이나 개량을 해야 할 경우등에 많이 사용을 합니다.

또는 기존에는 시리얼 통신 시스템이였는데 , 이것을 이더넷 통신 시스템으로 변경하기 위해 중간에 컨버터를 개발하는 경우도 있죠.

이런 경우 기존 제품은 그대로 두고 통신 라인만 건드리는 작업을 하게 됩니다.

 

저도 이런 저런 작업을 진행 봤기에.. 이번에는 개인적인 이유로 리버스 엔지니어링을 하는 과정을 올려 볼까 합니다.

제목에 1/n 이라고 적은 것은 언제 끝날지 몰라서입니다.

다음 달에 해외 출장이 있기 때문에 그 전에는 마치는 것이 목표입니다.

 

리버스 엔지니어링을 하는 대략적인 순서는 

1. 일단 기존 제품이나 시스템입니다.

이것이 없으면 분석이 안되죠.

만일 설계 문서나 참고할 만한 자료 , 예를 들면 메뉴얼이나 정비 지침서등만 있어도 많은 도움이 됩니다.

 

2. 외관 분석

기존 제품을 눈이나 광학 장비등으로 분석을 합니다.

사용된 부품, 배선등등에 대한 것들요.

 

3. 기능 분석

스위치, 통신, 디스플레이, 메모리등등이 각각 어떻게 동작을 하고 어떤 결과를 내는지를 하나 하나 조작을 하면서 어떤 규칙성이 있는지를 찾아 냅니다.

 

4. 호환성 분석

요구 사항( 개선 사항, 버그 수정등)이 기존품을 그대로 유지한 상태에서  FW 나 SW만 재개발으로 가능한지 검토,

그것이 안된다면 기존품 HW는 그대로 제작이 가능한지 검토,

그것이 안된다면 부품을 변경해서라도 기존품 HW와 호환성 있게 제작이 가능한지 검토,

 

5. 개발

HW나 FW, SW 를 개발합니다.

 

6. 준비물

이런 리버스 엔지니어링을 하기 위해서는 테스터기 하나만 있으면 되는 경우와 다수의 계측 장비가 필요한 경우등 다양합니다.

우선 디지털 오실로스코프, 테스터기는 기본으로 보고

보드 내의 신호 측정을 위해 로직 아날라이져, 프로토콜 아날라이져가 필요합니다.

또 기존품이나 개발품 시험을 위해 통신이나 다른 장치를 모의해서 시험하기 위한 컨버터나 시험기 HW,SW개발을 해야하는 경우도 있습니다.

 

그러면 이런 리버스 엔지니어링은 얼마나 걸리는가?

음.. 당연히 제품이나 시스템 크기와 자료의 유무에 따라 달라집니다.

대략 3달.. 길면 1년.. 정말 길면 2년이 걸리는 경우도 있습니다.

HW는 눈으로 보이는 정보가 많기 때문에 작업이 그래도 쉬운편에 속한다면 FW나 SW 는 눈에 보이지 않는 로직이라는 부분이 있기 때문에 많은 시행착오를 거치면서 진행을 해야합니다.

 

이 글은 여기 까지 하고,

다음 편에서는 어떤 제품을 왜 리버스 엔지니어링을 하려고 하는지, 그리고 어떻게 할건지를 적어 보겠습니다.