리버싱 기초 #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