목록Reversing. (4)
X2r0Ar
리버싱 - PE File Format ◆ PE File Format 이란? Windows 운영체제에서 사용되는 실행 파일 형식입니다. - 32bit : PE32- 64bit : PE+, PE32+ PE File의 종류 - 실행 계열 : EXE, SCR- 라이브러리 계열 : DLL, OCX, CPL, DRV- 드라이버 계열 : SYS, VXD- 오브젝트 파일 계열 : OBJ VA & RVA - VA : 프로세스 가상 메모리의 절대주소- RVA : ImageBase 기준에서 부터의 상대주소 ※ ImageBase + RVA = VA ◆ PE 헤더 DOS Header PE 헤더의 제일 앞부분에 존재 (IMAGE_DOS_HEADER 구조체 / 64byte) typedef struct _IMAGE_DOS_HEADE..
리버싱 - 기초 리버싱2 이번에는 스택에 관하여 자세하게 배워봤습니다. 1. 스택이란? - 함수 내의 로컬 변수 임시 저장- 함수 호출 시 파라미터 전달- 복귀 주소(return address) 저장- FILO 구조(First In Last Out) ※ FILO : 처음 들어온게 가장 마지막에 나갑니다. 2. 스택의 특징 위 사진을 보는거와 같이 스택 관련 명령어는 대표적으로 PUSH와 POP이 있습니다. PUSH EAX로 스택에 넣으면 스택 포인터(ESP)가 위쪽으로 올라갑니다.(ESP가 가리키고 있는 주소는 감소)POP EAX로 스택을 꺼내면 스택 포인터(ESP)가 아래쪽으로 내려갑니다.(ESP가 가리키고 있는 주소는 증가) 3. 함수와 스택의 관계 위 사진을 보면 MessageBoxA가 호출되는 부..
리버싱 TIP - Hot Patching 리버싱을 하다보면 함수의 시작부분은 push ebpmov ebp, esp... 이런식으로 시작한다고 들었습니다. 하지만 특정 dll에서 제공되는 api 호출을 따라가보면 아래 사진과 같이 볼 수 있습니다. 위 사진은 MessageBoxW 호출 부분을 따라 들어간 모습입니다. mov edi, edi부터 시작되며 그 위에는 nop으로 5바이트가 지정되어있습니다.이 부분을 핫 패칭이라고 불립니다. 핫 패칭이란? MS에서 제공하는 기술로 필요한 코드를 별다른 재부팅 없이 바로 메모리에 적용할수 있는 기술입니다. 핫 패칭 적용법 위 사진을 보시면 mov edi, edi 부분에 jmp short 로 1바이트 점프를 하고 nop가 있던 부분에 4바이트 점프를 한것을 볼 수 있..
리버싱 - 기초 리버싱 이미 예전에 공부했던적이 있기 때문에 가볍게 중요한 부분만 정리해보겠습니다. 1. 리버스 엔지니어링이란? 영어로 "Reverse Engineering"이라고 하며 한글로 해석해보면 역공학이라는 뜻을 가지고 있습니다.역공학이라는 단어가 여러분야에서 사용되겠지만 우리가 배울 역공학은 소프트웨어의 구조, 기능, 동작 등을 분석하게 될 것 입니다. 2. 리버싱 방법? 2-1) 정적 분석 파일을 실행시키지 않고 겉모습을 관찰하여 분석하는 방법입니다.정적 분석은 파일의 종류(EXE, DLL, DOC 등), 크기, PE, 문자열, 패킹 여부 등 내용을 확인하는 단계입니다. ※ 주의 : 디스어셈블러를 통한 어셈블코드 분석과 구조를 확인하는것도 정적 분석입니다. 2-2) 동적 분석 정적 분석과 달..