Dreamhack/Reversing

Introduction: Reverse Engineering

gayeon_ 2023. 9. 24. 19:28

엔지니어링

: 완성품과 이를 구성하는 부품들의 가능과 설계를 고안, 제작하는 과정

 

 

리버스 엔지니어링

: 엔지니어링 과정을 거꾸로 하는 행위

: 완성된 제품을 해체하고 분석해 구조와 기능, 디자인을 파악

 

리버싱의 다양한 분야

- 약의 성분 분석

- 자동차의 주행 원리 이해

- 전자 제품의 회로 분석

-> 생명 공학, 기계 공학, 전자 공학에 대한 리버싱 기술 적용!

 

소프트웨어 리버싱에 능숙해지기 위해서는 상당히 많은 지식과 기술, 노력이 필요하다.

소프트웨어와 다양한 컴퓨팅 환경에 대한 깊은 이해를 바탕으로 수백, 수억 줄의 코드로 작성된 프로그램에서 분석할 부분을 찾고, 리버싱을 막기 위해 도입된 안티 리버싱 기술들을 우회해야 한다.

 

소프트웨어 리버싱은 완성된 프로그램을 분석해 소스 구조를 파악하는 것!

 

 

리버싱의 용도

 

Good case

- 프로그램의 보안성 평가

- 악성코드 분석

- 리버싱을 통해 대상 프로그램이 얼마나 안전하게 설계되었는지, 악성코드가 어떤 방식으로 동작하고 시스템에 피해를 입히는지 알아낼 수 있다.

 

Bad case

- 상용 프로그램을 무료로 이용하기 위해 쓰는 키젠 프로그램

- 시리얼 넘버 생성기, 크랙 등의 불법 프로그램

- 유료로 판매되는 프로그램들이 어떤 방식으로 정품 인증을 하는지 리버싱을 통해 알아낼 수 있다.

- 각종 프로그램을 분석해 게임핵을 만들 때 리버싱이 사용된다.

 

리버싱은 학습 및 연구용으로 많이 이용되는 기술일 뿐만 아니라, 각종 악성코드나 불법 프로그램의 분석 및 대응을 위해서도 사용되는 효과적인 기술이다.

그러나 프로그램의 전체적인 작동 원리를 알아낼 수 있으므로 상용 프로그램의 지적 재산권을 침해할 수 있다는 위험성도 존재한다.

테스팅이나 연구, 학습 등을 목적으로 한 리버싱의 경우 저작권을 침해하지 않는 한에서 제한적으로 허용된다.