관리 메뉴

HeeJ's

[01] 리버싱 시작하기 본문

<Information Security>/<Reversing>

[01] 리버싱 시작하기

meow00 2020. 5. 14. 00:08

리버싱에 대해서 공부를 시작하려고 하는데, 혼자 책을 읽고 문제만 풀기엔 너무 막연해서? 집중도 잘 안되고...

블로그에 내가 공부한 내용들에 대해 기록해보면서 잔잔하게 공부를 해보려고 한다.

 

최근 리버싱과 관련된 활동들을 시작했고, 생 기초도 없던 나이기에 정말 버겁게 느껴진다.

이제부터라도 천천히 조금씩 시작하면 언젠가 나도 리버싱 문제들을 가뿐하게 풀 수 있으리라 생각하며

 

공부에 사용한 자료; 이승원님의 "리버싱 핵심 원리"


1. 리버스 엔지니어링(Reverse Engineering, RE: 역공학)

제품 혹은 시스템 등의 구조, 기능, 동작 등을 분석하여 그 원리를 이해하여 문제를 해결

특정한 기능의 기계, 혹은 프로그램의 라이브러리의 내부 구조를 알 수 없을 때, 뜯어서 분석한 결과를 가지고 동일한 기능을 하도록 새로 만들어 내는 것

 

: 리버스 코드 엔지니어링(Reverse Code Engineering, RCE)

SW분야의 라버스 엔지니어링.

 

 

2. 리버싱(분석) 방법

(1) 정적 분석

: 파일의 겉모습을 관찰하여 분석하는 방법이며 파일을 실행하지 않는다.

  파일의 종류, 크기, 헤더 정보(PE), Import/Export API, 내부 문자열, 실행 압축 여부, 등록 정보, 디버깅 정보, 디지털 인증서 등의 다양한 내용을 확인할 수 있다.

  디스어셈블러(ex. IDA)를 이용해 내부 코드와 구조 확인

=> 동적 분석 방법에 참고 자료로 사용

 

(2) 동적 분석

: 파일 실행 -> 행위 분석&디버깅 -> 코드 흐름과 메모리 상태를 살펴보는 방법

  파일, 레지스트리, 네트워크 등을 관찰하면서 프로그램의 행위 분석

  또한, 디버거(ex. Ollydbg)를 이용하여 프로그램 내부 구조와 동작 원리 분석

 

* 리버싱 != 디버깅

-> 디버깅은 리버싱 방법 중 비중이 큰 하위 개념에 속한다.

'<Information Security> > <Reversing>' 카테고리의 다른 글

[03] OEP(Original Entry Point)  (0) 2020.06.04
[02] Ollydbg(1)  (0) 2020.05.14