튜기's blogggg

리버싱 기초 #1

by St1tch

정적 분석 : 파일종류, 크기, 헤더정보, API, 내부문자열 등 다양한 정보 확인 겉모습을 관찰함.

                  내부코드와 코드구조를 분석

동적 분석 : 파일을 실행시켜 확인. 디버깅을 통해 코드의 흐름과 메모리 상태 확인

 

정적분석으로 정부를 수집하면서 해당 프로그램의 구조와 동작원리에 대해 예측한 후 이 정보를 이용해 동적 분석을 한다.

 

Stub Code : 각 컴파일러 별로 프로그램 초기에 싱행되는 코드

패치 : 파일, 프로세스 메모리의 내용을 변경하는 작업.

 

IA-32 레지스터

1. 범용레지스터

EAX : 연산, return 등에 사용되는 가장 많이 사용되는 레지스터.(Accumulator)

EDX : EAX와 같이 연산에 사용, return 에는 사용하지 않는다. (Data)

ECX : 주로 루프문에서 카운팅 할 때 사용(Count)

EBX : 용도 없이 필요할 때 그냥 쓴다.

ESP : stack의 제일 아래부분, 현재 진행 stack부분, 아래로 성장한다.

EBP : stack의 가장 윗 부분(기준점), Base Pointer


              


ESI,EDI : 문자열이나 각종 반복 데이터를 처리 또는 메모리를 옮기는데 사용

2. 세그먼트레지스터

CS, DS, SS, ES, FS, GS

3. 컨트롤 레지스터

32bit로 상태를 나타내며 다 알필요 X

4. Instruction Pointer

EIP : 처리할 명령어의 주소

 

                      -EIP에 있는 명령어를 CPU가 실행 후 명령어의 길이만큼 증가


블로그의 정보

튜기's blogg(st1tch)

St1tch

활동하기