[소개]
1. 리버스 엔지니어링
1) 리버스 엔지니어링
- 엔지니어링 : 완성품과 이를 구성하는 부품들의 기능과 설계를 고안하고 제작하는 과정
- 리버스 엔지니어링 : 엔지니어링 과정을 거꾸로 하는 행위
- 완성된 제품을 해체하고 분석하여 구조와 기능, 디자인을 파악
- 리버스 엔지니어링 or 리버싱이라고 함
2) 리버싱의 분야
- 약의 성분을 분석하는 것
- 자동차의 주행 원리를 이해하는 것
- 전자 제품의 회로를 분석하는 것
- 등등...이 있지만 여기서 다룰 것은 소프트웨어를 대상으로 한 리버싱
2. 리버싱의 용도
1) 좋은 사례
- 판매된 지 너무 오래되어 제작사가 이미 개발을 중단한 프로그램에 대한 패치가 필요할 때 매우 효과적
- 각종 프로그램의 보안성 평가 (얼마나 안전하게 설계되었는지 알아낼 수 있음)
- 악성코드 분석 (악성코드가 어떤 방식으로 동작하고 시스템에 피해를 입히는지 알아낼 수 있음)
2) 안 좋은 사례
- 키젠 프로그램, 시리얼 넘버 생성기, 크랙 등 불법 프로그램 제작 (유료 제품이 어떤 식으로 정품 인증을 하는지 알아낼 수 있음)
- 게임핵 제작
⚠️ Disclaimer
- 리버싱은 학습 및 연구용으로 많이 이용되는 기술일 뿐만 아니라, 각종 악성코드나 불법 프로그램의 분석 및 대응을 위해서도 사용됨
- 그러나, 프로그램의 전체적인 작동 원리를 알아낼 수 있으므로, 상용 프로그램의 지적 재산권을 침해할 위험성이 존재
- 테스팅이나 연구, 학습 등을 목적으로 한 리버싱의 경우 저작권을 침해하지 않는 한에서 제한적으로 허용됨
- 그러나, 임의로 패치한 프로그램을 배포하는 등의 행위는 저작권을 침해하여 법적인 문제로 이어질 수 있음
- 위의 사항들 유의 바람.
'Security > Reversing' 카테고리의 다른 글
[어셈블리어 분석 실습] example 1 (0) | 2022.05.08 |
---|---|
[어셈블리어 분석 실습] 기본 내용 (0) | 2022.05.08 |
[Dreamhack Reverse Engineering] STAGE 4 (0) | 2022.05.06 |
[Dreamhack Reverse Engineering] STAGE 3 (0) | 2022.04.28 |
[Dreamhack Reverse Engineering] STAGE 2 (0) | 2022.04.28 |
댓글