리버싱에 대해 알아보자
리버싱은 리버스엔지니어링의 줄임말로서 역설계 또는 역공학이라고 불린다.
이는 구조분석을 통해 장치 또는 시스템의 기술적인 원리를 알아내는 과정이다.
기술의 용도
긍정적인 방향으로 사용하게 되면 프로그램의 유지 보수를 위해 사용될 수 있고
부정적으로 사용하는 예는 크랙과 같은 인증우회가 있다
법
법에서 정의하고있는 리버싱은 다음과 같다.
"'프로그램코드 역분석'은 독립적으로 창작된 컴퓨터 프로그램 저작물과 다른 컴퓨터프로그램과의
호환에 필요한 정보를 얻기 위하여 컴퓨터프로그램저작물코드를 복제 또는 변환하는 것을 말한다"
법에서 제한하는 리버싱은 저작권법에서 규정하고 있으며 내용은 다음과 같다.
"정당한 권한에 의하여 프로그램을 이용하는 자 또는 그의 허락을 받은 자는 호환에 필요한 정보를 쉽게 얻을 수 없고
그 획득이 불가피한 경우에는 해당 프로그램의 호환에 필요한 부분에 한하여
프로그램의 저작재산권자의 허락을 받지 아니하고 프로그램코드역분석을 할 수 없다"
상업적인 용도로는 엄격하게 금지하고 있으며 상업적인 용도가 아닌경우에는 호환이라는 목적에 한해 허용되고있다.
정적분석 / 동적분석
실행파일을 분석하는 방법을 크게 두가지로 나눈것이 정적분석과 동적분석이다
정적분석은 프로그램을 실행하지 않고 파일에 대한 정보만을 가지고 분석하는 방법이다
정적분석이 필요한 이유는 악성코드와 같은 프로그램은 실행하면 큰 위험이 따를 수 있기 때문에 정적분석을 이용하게 된다.
동적분석은 프로그램을 직접 실행하면서 분석하는 방법이다.
코드의 흐름을 파악하여 어떤 동작을 수행하는지 분석해낸다
'Study > reversing' 카테고리의 다른 글
어셈블리어에 대해 알아보자 (0) | 2017.08.21 |
---|---|
올리디버거(OllyDBG)에 대해 알아보자 (2) | 2017.08.20 |
리턴코드 분석 (0) | 2017.06.16 |
어셈블리어 기본명령어 (0) | 2017.04.11 |
리틀엔디안 빅엔디안 (0) | 2017.04.11 |