전체 글 (35) 썸네일형 리스트형 [리버싱 핵심원리] 16장 - Base Relocation Table 16.1 PE 재배치 PE 파일이 프로세스 가장 메모리에 로딩될 때 PE 헤더의 ImageBase 주소에 로딩된다. DLL(SYS) 파일의 경우 ImageBase 위치에 이미 다른 DLL(SYS) 파일이 로딩되어 있다면 다른 비어 있는 주소 공간에 로딩된다. 이것을 PE 파일 재배치라고 한다. PE 파일이 ImageBase에 로딩되지 못하고 다른 주소에 로딩될 때 수행하는 일련의 작업들을 말한다. 1. DLL/SYS Test.exe라는 프로세스에 A.DLL이 1000000 주소에 로딩되어 있다. 이후 B.DLL이 같은 주소에 로딩을 시도하면 PE 로더는 비어 있는 주소에 B.DLL을 로딩시킨다. 2. EXE 프로세스가 생성될 때 EXE 파일이 가장 먼저 메모리에 로딩되기 때문에 EXE에서는 재배치를 고려.. [리버싱 핵심원리] 15장 - UPX 실행 압축된 notepad 디버깅 15.1 notepad.exe의 EP code 15.2 notepad_upx.exe의 EP Code notepad_upx.exe를 OllyDbg로 열어보면, 아래 사진과 같이 경고 메시지 박스(디버거가 해당 파일이 압축되었다고 판단하였습니다.)가 나타난다. 예/아니오 중 아무거나 선택하면 두 번째 사진과 같이 UPX의 EP코드가 나타난다. 위 사진을 보면 EP 주소는 010154F0이고, 이곳은 두 번째 섹션의 끝부분이다. 실제로 압축된 notepad의 원본 코드는 EP 주소(010154F0) 위쪽으로 존재한다. 코드 시작 부분을 살펴보면, PUSHAD 명령으로 EAX~EDI 레지스터 값을 스택에 저장하고 ESI와 EDI 레지스터를 각각 두 번째 섹션 시작 주소(01011000)와 첫 번째 섹션 시작 주.. [리버싱 핵심원리] 14장 - 실행압축 14.1 데이터 압축 어떠한 형태의 파일(또는 데이터)이라도 내부는 바이너리(0 또는 1)로 되어 있으며, 이는 적절한 압축 알고리즘을 사용하여 크기를 줄일 수 있다. 이렇게 압축된 파일을 100% 원래대로 복원할 수 있다면 이를 비손실 압축(Lossless Data Compression)이라 하고, 원래대로 복원할 수 없다면 이를 손실 압축(Loss Data Compression)이라 한다. 1. 비손실 압축 비손실 압축이란 파일(데이터) 크기를 줄여서 보관 및 이동에 용이하도록 하려는 목적으로 사용된다. 파일을 사용하기 위해선 해당 압축 파일을 해제해야 한다. 이때, 데이터의 무결성(정보가 원형 그대로 변형되지 않고 전달되는 성질)이 보장되어야 하는 특징이 있다. 비손실 압축에 해당하는 프로그램은 7.. 이전 1 2 3 4 5 다음