본문 바로가기

툴 사용법

OLLydbg

728x90

리버싱을 하려면 디스 어셈블리 툴과 디버그 툴이 필요한데

OLLydbg는 디스 어셈블리와 디버그 두가지 모두 가능한 툴이다.

 

-- 디스 어셈블리 --

기계어를 어셈블리어로 바꾸는 것

 

리버스 엔지니어링

어느 특정 물건, 장치 등이 있으면 그것에 대한 구조, 기능, 동작 등을 역으로 따라가며 분석하고

그 원리를 이해하며 부족한 부분을 보완하며 새로운 기능 등을 추가하는 작업

 

리버스 코드 엔지니어링( RCE )

소프트웨어 분야의 리버스 엔지니어링

 

리버싱

소프트웨어 분야에서 해당 프로그램의 구조, 기능, 동작 등의 원리를 역으로 따라가며

이해하고 분석하여 부족한 부분이 있거나 추가 되었으면 하는 새로운 기능 등을 추가하는 행위

 

-- 방법 --

정적분석

파일의 겉모습을 관찰하여 분석하는 방법

파일을 실행하지 않고 파일의 종류, 크기, 헤더정보, 실행 압축 여부, 등록정보 등의 내용 확인

디스어셈블러를 이용해서 내부 코드와 그 구조를 확인하는 방법

 

동적분석

파일을 직접 실행시켜 그 행위를 분석하고, 디버깅을 통하여 코드의 흐름과 메모리의 상태 등을

살펴보는 방법( 프로그램 내부 구조와 동작원리 분석 )

 

-- 실행시 화면 --

1. 어셈블리 코드

CPU가 실행 할 수 있는 명령어( 코드 )와 분석을 용이하게 해주는 Label과 Comment 확인

-> Label : 특정 메모리 값이 이름을 붙여주는 것

-> Comment : 한 줄에 주석을 다는 것

2. 레지스터 상태

각종 CPU 레지스터의 상태를 확인할 수 있는 영역

3. Dump

분석 프로그램의 메모리 상태를 ASCII나 UNICODE로 확인 가능

4. 스택

Stack 메모리의 상태 확인

 

-- 명령 --

Run( F9 ) : Break Point를 만날때까지 명령 실행

Step into( F7 ) : 명령을 한 번씩 실행하다가 함수를 만나면 함수 안으로 들어간다.

Step over( F8 ) : 명령을 한 번씩 실행하다가 함수를 만나면 함수 안으로 들어가지 않고

다음 명령 실행

Breakpoint( F2 ) : Software BreakPoint 설정 / 해제

-- Software방식과 Hardware 방식의 BreakPoint 차이 --

Software 방식

코드영역 변경

데이터 영역에 BreakPoint 설정 불가

 

Hardware 방식

코드영역 변경 X

데이터 영역에 BreakPoint 설정 가능

'툴 사용법' 카테고리의 다른 글

카페24 - 도메인 구매  (0) 2020.07.28
카페24 - 호스팅 구매  (0) 2020.07.28
BrowsingHistoryView  (0) 2019.08.18
Autoruns  (0) 2019.08.17
PEview  (0) 2019.08.14