본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Reverse Engineering; 역공학

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

소스 코드를 볼 수 있는지, 내부 구조를 얼마나 아는지에 따라 나눈다. 소프트웨어 테스트의 화이트박스 테스트·블랙박스 테스트와 같은 구분이다.

방법 내용 쓰임
화이트박스 분석 소스 코드를 직접 읽고 이해하며 분석한다 프로그래밍 오류와 구현 오류(취약한 함수, 경계값 처리 누락 등)를 찾을 때 유용하다
블랙박스 분석 소스 없이 입력을 주고 출력과 동작을 관찰한다 실행 파일만 있을 때, 퍼징처럼 입력을 바꿔 가며 이상 동작을 찾을 때
그레이박스 분석 디스어셈블·디버깅으로 내부 구조를 일부 알아낸 뒤 입력과 동작을 함께 본다 바이너리 취약점 분석, 악성코드 분석

그린박스 분석이라는 분류는 없다.

  • OllyDbg
  • IDA
  • x64dbg
  • ghidra

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

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

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

저작권법

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

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

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

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

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

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

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

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