Reversing6 Base Relocation Table PE 재배치 PE 파일이 프로세스 가상 메모리에 로딩(Loading)될 때 PE 헤더의 ImageBase 주소에 로딩된다. DLL(SYS) 파일의 경우 ImageBase 위치에 이미 다른 DLL 파일이 로딩되어 있다면 다른 비어 있는 주소 공간에 로딩된다. 이를 PE 재배치라고 한다. 즉, PE 재배치는 PE 파일이 ImageBase에 로딩되지 못하고 다른 주소에 로딩되는 작업을 말한다. DLL/SYS TEST.EXE 프로세스에 A.DLL이 10000000 주소에 로딩되어 있다. 이후 B.DLL이 A.DLL과 같은 주소에 로딩을 시도하면 PE 로더는 B.DLL을 비어있는 3C000000에 로딩 시킨다. EXE 프로세스가 생성될 때 EXE파일이 가장 먼저 메모리에 로딩되기 때문에 EXE에서는 재배치를 고려.. 2021. 12. 30. PE File Format Windows 운영체제의 PE(Potable Executable) File Format에 대해 알아볼 것이다. Windows 운영체제의 가장 핵심적인 부분은 Process, Memory, DLL 등이다. PE 파일은 Windows 운영체제에서 사용되는 실행 파일 형식이다. 32bit 형태의 실행 파일을 의미하고 PE32라는 용어를 사용하기도 한다. 64bit 형태의 실행 파일은 PE+ 또는 PE32+라고 부르며 PE파일의 확장 형태이다. PE File Format 종류 주요 확장자 종류 주요 확장자 실행 계열 EXE, SCR 드라이버 계열 SYS, VXD 라이브러리 계열 DLL, OCX, CPL, DRV 오브젝트 파일 계열 OBJ OBJ 파일을 제외한 모든 것은 실행 가능한 파일이다. DLL, SYS 파.. 2021. 12. 15. 윈도우 기초 보호되어 있는 글 입니다. 2021. 4. 22. easy-crackme1 Dreamhack의 강의 문제 중 하나인 easy-crackme1을 풀어 보도록 하자. 프로그램을 실행시켜보면 input:이라는 문자열이 출력되고 숫자 2개를 입력해보니 wrong!이라는 문자열을 출력하는 것을 볼 수 있다. 이는 input:의 출력과 숫자 2개를 입력받고 무언가 받은 숫자를 처리하는 코드를 실행한 다음 결과에 따라 correct나 wrong을 출력한다는 것을 추측해볼 수 있다. 두 번째로는 main함수에서 printf, puts 등의 출력 함수 및 scanf같이 입력을 받는 함수가 포함되었을 것을 추측할 수 있다. x64 dbg로 프로그램을 열어본 후 모듈 간 호출 찾기 기능을 사용해 앞서 추측한 함수들이 있는지 찾아보면 상단에 puts함수가 보인다. puts함수를 따라가 보면 inpu.. 2021. 2. 20. 이전 1 2 다음