Basic knowledge/리버싱(Reversing)
-
ASPACK UnpackingBasic knowledge/리버싱(Reversing) 2019. 5. 6. 12:49
패킹 중에서 Aspack 패킹이라는 방법이 있습니다. 예시를 들기 위해서 Codeengn basic 10번 문제의 문제파일을 가져 왔습니다. 해당 파일을 PEID 툴을 이용해서 확인해 보겠습니다. 저기 아래에 보면 Aspack v2.0/2.001 이라는 문자열을 확인 할수 있습니다. 올리디버거로 확인해 보겠습니다. 좀 아래로 내려가 보면 다음과 같은 화면을 확인 할 수 있습니다. PUSHAD 라는 문자열을 확인 할 수 있습니다. PUSHAD는 범용 레지스터에 저장된 값들을 스택에 저장하는 명령어 입니다. 현재의 레지스터값을 스택에 저장하고 원본 코드로 복구한다음 POPAD를 이용해서 원래의 레지스터 값으로 되돌린 다음 복구한 OEP로 분기합니다. F8을 한번더 눌러보면 PUSHAD 명령어가 실행 되서 E..
-
PE File Format(2)Basic knowledge/리버싱(Reversing) 2019. 3. 25. 20:11
1. RVA to RAW PE 파일이 메모리에 로딩 되었을때 각 섹션에서 메모리의 주소(RVA)와 파일 옵셋을 잘 매핑할 수 있어야 합니다. 이러한 방법을 RVA to RAW이라고 합니다. 1. RVA가 속해있는섹션을 찾습니다.2. 간단한 비례식을 사용해서 파일 옵셋(RAV)을 계산합니다. IMAGE_SECTION_HEADER 구조체의 비례 식은 다음과 같습니다. RAW - PointerToRawData = RVA - VirtualAddress RAW = RVA - VirtualAddress + PointerToRawData Q1. RVA = 5000일때 File Offset = ? 일단 RVA는 5000이므로 Section이 (".text")를 가리키고 있습니다.IMAGE_SECTION_HEADER 구..
-
PE File Format(1)Basic knowledge/리버싱(Reversing) 2019. 3. 25. 17:58
PE Format 이란? PE(Portable Executable) 파일을 그대로 해석해 보자면, 옮겨 다니면서 실행시킬수 있는 파일을 뜻하는데, 이는 MS 뿐만 아니라 다른 운영체제와 이식성을 좋게 만들기 위해서 사용합니다.또한, windows 운영체제에서 사용되는 실행 파일 형식입니다. PE파일은 32비트 형태의 실행 파일을 의미하며 PE32라는 용어를 사용합니다.하지만 32비트가 아닌 64비트는 PE+ 또는 PE32+ 라고 이야기 하며, PE의 확장 형태 입니다.[PE64라고 생각할 때도 있지만 실수 하시면 안됩니다.] PE File 종류? PE File의 기본 구조 PE File의 기본 구조는 다음과 같습니다.( 메모리에 적재(loading 또는 mapping)됬을때의 모습 )섹션의 시작 위치는 ..