728x90
반응형
리버싱에 대해 알아보자
● 리버싱의 의미
- '역공학' 이라고 하며 어느 특정 물건, 장치 등이 있으면 그것에 대한 구조, 기능, 동작 등을 역으로 따라가며 분석하고 그 원리를 이해하며 부족한 부분을 보완하며 새로운 기능 등을 추가하는 작업.
- 해킹 보안에서 리버싱은 침해 사고를 일으키는 바이러스 및 웜을 비롯한 각종 악성코드와 좀비 프로세스에 관련된 실행 코드를 분석하여 소스 코드로 변환해 분석하는 작업을 말하는데, 악성 코드 분석에서 가장 핵심적인 기술로 사용됨
- 리버싱 자체는 불법이 아니지만 리버싱을 이용해서 타인의 기술과 소스등을 무단으로 도용하는 것은 불법.
● 리버싱을 배우는 이유
1. 프로그램의 속을 훤히 들여다 볼 수 있음.
2. 개발/테스트 단계에서 미쳐 발견하지 못한 버그나 취약점 파악 가능.
3. 파일이나 메모리를 직접 수정(패치)하여 문제 해결할 수 있음.
4. 새로운 기능을 추가시켜 프로그램의 기능을 향상시킴.
● 정적 분석 vs 동적 분석
정적 분석
- 파일의 겉모습을 관찰하여 분석하는 방법(실행하지 않고 파일의 정보만 가지고 분석하는 방법)
- 파일의 종류, 크기, 헤더 정보, 실행 압축 여부, 등록 정보 등을 살펴봄.
- 악성코드와 같은 프로그램은 실행하면 위험이 따르기 때문에 정적분석을 이용
- 내부 코드와 그 구조 확인
동적 분석
- 파일을 직접 실행시켜 그 행위를 분석하는 방법
- 파일, 레지스트리, 네트워크 등을 살펴봄
- 프로그램 내부 구조와 동작원리 분석
반응형
'Study > Reversing' 카테고리의 다른 글
[리버싱] 리틀 엔디언&빅 엔디언 (0) | 2017.08.23 |
---|---|
[리버싱] 레지스터에 대해 알아보자 (0) | 2017.08.23 |
[리버싱] 어셈블리어 명령어 (0) | 2017.08.22 |
[리버싱] 어셈블리어에 대해 알아보자 (0) | 2017.08.21 |
[리버싱] 디버거 조사(OllyDbg) (0) | 2017.08.21 |
댓글