본문 바로가기
Study/Reversing

[리버싱] 리버싱에 대해 알아보자

by graygreat 2017. 8. 20.
728x90
반응형


리버싱에 대해 알아보자



● 리버싱의 의미


- '역공학' 이라고 하며 어느 특정 물건, 장치 등이 있으면 그것에 대한 구조, 기능, 동작 등을 역으로 따라가며 분석하고 그 원리를 이해하며 부족한 부분을 보완하며 새로운 기능 등을 추가하는 작업.


- 해킹 보안에서 리버싱은 침해 사고를 일으키는 바이러스 및 웜을 비롯한 각종 악성코드와 좀비 프로세스에 관련된 실행 코드를 분석하여 소스 코드로 변환해 분석하는 작업을 말하는데, 악성 코드 분석에서 가장 핵심적인 기술로 사용됨


- 리버싱 자체는 불법이 아니지만 리버싱을 이용해서 타인의 기술과 소스등을 무단으로 도용하는 것은 불법.



● 리버싱을 배우는 이유


1. 프로그램의 속을 훤히 들여다 볼 수 있음.


2. 개발/테스트 단계에서 미쳐 발견하지 못한 버그나 취약점 파악 가능.


3. 파일이나 메모리를 직접 수정(패치)하여 문제 해결할 수 있음.


4. 새로운 기능을 추가시켜 프로그램의 기능을 향상시킴.



● 정적 분석 vs 동적 분석


정적 분석


- 파일의 겉모습을 관찰하여 분석하는 방법(실행하지 않고 파일의 정보만 가지고 분석하는 방법)


- 파일의 종류, 크기, 헤더 정보, 실행 압축 여부, 등록 정보 등을 살펴봄.


- 악성코드와 같은 프로그램은 실행하면 위험이 따르기 때문에 정적분석을 이용


- 내부 코드와 그 구조 확인



동적 분석


- 파일을 직접 실행시켜 그 행위를 분석하는 방법


- 파일, 레지스트리, 네트워크 등을 살펴봄


- 프로그램 내부 구조와 동작원리 분석






반응형

댓글