상세 컨텐츠

본문 제목

Reverse Core 2장

Computer Science/Reverse Core

by RACC8N 2020. 1. 14. 14:21

본문

Build Mode

Debug Mode : 실행파일에 디버깅 정보를 포함하여 언제든지 디버깅이 가능함.

                     Release Mode 보다 더 큰 메모리를 사용함.

                     디버그에 필요한 정보들을 실행 시 계속 체크하기 때문에 속도가 느려짐.

 

Release Mode : 디버그에 필요한 정보가 없고, 코드를 최적화하여 실행파일의 크기를 줄여줌.

                      초기화를 하지 않으며, 같은 문자열 상수라도 서로 다른 공간에 할당됨.

                      메모리 사용, 속도 측면에서 디버그 모드보다 좋음. 

                      더 이상 문제점이 없을때 빌드하는걸 추천.

 

Debugger

 

EP(Entry Point) : Windows 실행 파일 (EXE, DLL, SYS 등)의 코드 시작점을 의미함.

                       프로그램이 실행될때 CPU에 의해 가장 먼저 실행되는 코드 시작 위치.

 

Stub Code : 컴파일러가 프로그램을 만들 때 집어넣는 코드이다.

                 악성 코드 분석을 빠르게 잘 분석하기 위해서는 Stub Code를 보는 법이 중요하다.

 

※ Stub Code는 실행 정보를 가져오고 Image Base Address 값을 구하는 등, 프로그램 실행에 필요한 정보를 얻어오는 코드로 구성되어 있다. 때문에 Stub Code는 넘기고 Main 함수 코드를 찾을 줄 알아야 한다.


원하는 코드를 빨리 찾아내는 4가지 방법.

1. 코드 실행 방법 : 프로그램의 기능이 명확한 경우에 명령어를 하나하나 실행하면서 원하는 위치를 찾아가는 방법. 

2. 문자열 검색 방법 : 하드코딩 되어있는 문자열을 검색하여 원하는 위치를 찾아가는 방법.

3. API 검색 방법(1) : 호출 코드에 BP : 코드에서 사용된 API를 예상할 수 있을 때 API를 검색하여 찾아가는 방법.

4. API 검색 방법(2) : API 코드에 직접 BP : Packer/Proctector를 사용하면 API를 검색하기 어려워지는데 이런 경우 프로세스 메모리에 로딩된 라이브러리(DLL 코드)에 직접 BP를 건다.

 

Packer(Run Time Packer) : 실행 압축 유틸리티. 실행 파일의 코드, 데이터, 리소스 등을 압축시킴.

                                    압축된 파일 그 자체도 실행 파일이다.

 

Protector : 실행 압축 기능 외에 파일과 그 프로세스를 보호하려는 목적으로 Anti-Debugging, Anti-Emulating,

Anti-Dump 등의 기능을 추가한 유틸리티. 

 

 

'Computer Science > Reverse Core' 카테고리의 다른 글

Reverse Core 7장  (0) 2020.01.15
Reverse Core 5장  (0) 2020.01.14
Reverse Core 4장  (0) 2020.01.14
Reverse Core 3장  (0) 2020.01.14
Reverse Core 1장  (0) 2020.01.14

관련글 더보기

댓글 영역