리버스 엔지니어링

From CS Wiki

Reverse Engineering; 역공학

완성된 소프트웨어를 역으로 분석하는 방법으로, 소프트웨어 재공학 분야 중 하나이며 해킹 공격을 위한 분석 용도로도 활용

리버싱 도구[edit | edit source]

  • OllyDbg
  • IDA
  • x64dbg
  • ghidra

안티 리버싱[edit | edit source]

리버스 엔지니어링을 어렵게 만드는 기술

  • 코드 난독화
  • 안티 디버거

관련 법률[edit | edit source]

대한민국에서는 리버스 엔지니어링의 상업적 이용에 대해 엄격하게 금지하고 있으나, 비상업적 범위 내에서는 일정 부분 허용

저작권법

제2조(정의) 이 법에서 사용하는 용어의 뜻은 다음과 같다.

34. "프로그램코드역분석"은 독립적으로 창작된 컴퓨터프로그램저작물과 다른 컴퓨터프로그램과의 호환에 필요한 정보를 얻기 위하여 컴퓨터프로그램저작물코드를 복제 또는 변환하는 것을 말한다.

제101조의4(프로그램코드역분석) ① 정당한 권한에 의하여 프로그램을 이용하는 자 또는 그의 허락을 받은 자는 호환에 필요한 정보를 쉽게 얻을 수 없고 그 획득이 불가피한 경우에는 해당 프로그램의 호환에 필요한 부분에 한하여 프로그램의 저작재산권자의 허락을 받지 아니하고 프로그램코드역분석을 할 수 있다.

② 제1항에 따른 프로그램코드역분석을 통하여 얻은 정보는 다음 각 호의 어느 하나에 해당하는 경우에는 이를 이용할 수 없다.

1. 호환 목적 외의 다른 목적을 위하여 이용하거나 제3자에게 제공하는 경우

2. 프로그램코드역분석의 대상이 되는 프로그램과 표현이 실질적으로 유사한 프로그램을 개발·제작·판매하거나 그 밖에 프로그램의 저작권을 침해하는 행위에 이용하는 경우

제104조의2(기술적 보호조치의 무력화 금지) ① 누구든지 정당한 권한 없이 고의 또는 과실로 제2조제28호가목의 기술적 보호조치를 제거·변경하거나 우회하는 등의 방법으로 무력화하여서는 아니 된다. 다만, 다음 각 호의 어느 하나에 해당하는 경우에는 그러하지 아니하다.

6. 정당한 권한을 가지고 프로그램을 사용하는 자가 다른 프로그램과의 호환을 위하여 필요한 범위에서 프로그램코드역분석을 하는 경우

같이 보기[edit | edit source]

참고 문헌[edit | edit source]