메모장 입니다2
Windows] 32bit / 64bit 차이점 본문
<차이점>
1) 자료형
LLP64 채택(기존 데이터 모델을 크기만 변경하여 그대로 사용)
사진 출처: 리버싱 핵심원리(reversecore.com)
2) 폴더구조
Windows\system32: 64bit 시스템 파일.
\sysWOW64: 32bit 시스템 파일(32bit 프로그램이 이용)
3) 레지스트리
32bit 프로세서에서 HKLM\Software 아래의 키를 요청할 경우,
Wow6432Node의 값이 리턴. (WOW64에 의해)
<WOW64>
: 기존 32bt 응용 프로그램을 64bit OS에서 실행할 수 있도록 도와주는 메커니즘.
사진 출처: 리버싱 핵심원리(reversecore.com)
32bit ntdll.dll 의 요청(API 호출)을 64bit ntdll.dll로 리다이렉션 시켜줌.
ex) 32bit 프로세서가 API 호출 -> 32bit ntdll.dll 동작(요청) -> WOW64가 64bit ntdll.dll로 리다이렉션
<확인해보기>
다음의 동작에 해당하는 API들을 32bit/64bit 환경에서 컴파일 후 실행.
1) 시스템 디렉토리 출력
2) kernel.dll의 사이즈 출력
3) Program files 경로 출력
사진 출처: 리버싱 핵심원리(reversecore.com)
결과)
1) 시스템 디렉토리가 같지만, kernel.dll의 파일 크기는 다름
->32bit 프로세서에서 system32는 WOW64에 의해 sysWOW64로 취급
2) 레지스트리 디렉토리 역시 같지만, 실제로 확인을 해보면
32bit 프로세서가 생성한 ReverseCore
'Study > 리버싱' 카테고리의 다른 글
Windows] TLS 콜백함수 (0) | 2017.08.08 |
---|---|
Windows] 32bit / 64bit 차이점 - 2 (0) | 2017.08.08 |
32bit/64bit 역사 (0) | 2017.08.08 |
어셈블리] TEST, JNZ (0) | 2017.08.08 |
Windows] Self Creation (0) | 2017.02.25 |