리버스 엔지니어링에 대하여 공부할 것이다.
드림핵을 참고하여 공부하며 요약한다.
1. 리버스 엔지니어링
리버스 엔지니어링은 완성된 제품을 해체하고 분석하여 구조와 기능, 디자인을 파악하는 행위를 말한다. 리버싱 또는 역공학이라고도 한다. 리버싱에 능숙해지기 위해 많은 지식과 기술, 노력이 들어간다. 많은 경험을 쌓은 뒤에도 배경 지식만으로는 해결하기 어려운 문제를 맞닥뜨리기도 한다.
2. 리버싱의 용도
1) 좋은 예
판매된 지 너무 오래되어 제작사가 이미 개발을 중단한 프로그램에 대한 패치가 필요할 경우
2) 나쁜 예
상용 프로그램을 구매하지 않고 무료로 이용하기 위해 쓰는 키젠 프로그램이나 시리얼 넘버 생성기, 크랙 등의 불법 프로그램도 리버싱을 통해 만들어진다. 게임핵을 만들 때도 리버싱이 사용된다.
3. Disclaimer
리버싱은 학습 및 연구용으로 만이 이용되는 기술 뿐만 아니라 불법 프로그램의 분석, 대응을 위해서도 사용되는 효과적인 기술이다. 하지만 상용 프로그램의 지적 재산권을 침해할 수 있다. 테스팅이나 연구, 학습 목적으로 한 리버싱의 경우 저작권을 침해하지 않는 한 허용된다. 그러나 패치한 프로그램을 배포하는 경우 법적인 문제로 이어질 수 있다.
이번 시간은 리버싱 기본 개념에 대하여 공부하였다.
다음 시간에는 컴파일 과정과 정적분석, 동적분석에 대하여 공부할 것이다.
'개념정리 > Reverse Engineering' 카테고리의 다른 글
4. Windows Memory Layout (0) | 2022.08.17 |
---|---|
3. 정적 분석 & 동적 분석 (0) | 2022.08.02 |
2. Binary (0) | 2022.08.02 |