반응형

리버싱, 여러가지 코드들

 

 

※ 소스 코드(Source Code) ※

 

프로그래밍을 배운 모든 이들은 알고 있을 것이다.

 

소스 파일에 적힌 코드들을 소스코드라고 하는 것을.

 

-

 

※ 헥스 코드(Hex Code) ※

 

소스코드를 빌드하면 실행 파일이 생성된다.

 

이 때 생성된 실행 파일은 컴퓨터가 이해할 수 있는 2진수(Binary) 형식으로 되어 있다.

 

하지만 아무리 리버싱 전문가라고 0과 1로만 구성되어 있는 Binary(2진수) 파일을 

 

직접 보고 의미를 해석하는 것은 매우 힘든 일이다.

 

따라서 2진수를 16진수(Hex) 형식으로 변환시키곤 하는데,

 

자릿수가 줄어들면서 훨씬 보기에 수월하기 때문이다.

 

HxD라는 프로그램이 있는데(구글에 HxD라고 검색하면 다운로드 할 수 있다.)

 

이 프로그램은 Binary 형식의 파일을 16진수(Hex) 형식으로 보여주는 도구이다.

 

-

 

※ 어셈블리 코드(Assembly Code) ※

 

사실 Hex Code는 사람에게 직관적인 형태는 아니다.

 

따라서 좀 더 사람이 이해 하기 쉬운 어셈블리(Assembly) 코드 형태로 보기 위해 

 

디스어셈블 과정을 거쳐서 어셈블리 코드로 변환한다.

 

일반적인 리버싱 과정에서는 위와 같은 어셈블리 코드를 분석한다.

 

-

 

※ 복습 차원에서 문제 ※

 

1. 소스코드를 빌드하면 실행 파일이 생성되는데, 

이 때 생성된 실행 파일은 어떠한 형식으로 되어있는가?

 

2. 2진수를 16진수 형식으로 변환시키는 이유와 변환시키면 이득이 무엇인가?

 

3. HxD라는 프로그램은 어떤 역할을 하는 도구인가?

 

4. 어셈블리 코드 형태로 보기위해서는 어떤 과정을 거쳐야 하나?

 

5. 일반적으로 리버싱 과정에서는 어떤 걸 분석하는가?

반응형

+ Recent posts