windows pe) null패딩이 진짜 null패딩인지 확인하기
Reversing/Windows PE
2014. 7. 23. 13:17
파일이 메모리에 올라가면 null공간이 생기는데 이공간에 dll injection이나 악성파일등을 넣을수있습니다,
허나 이null공간이 나중에 메모리에서 사용하는공간이면 에러가 나옴니다.
이null공간이 진짜null공간인지 알아보겟습니다.
명칭 |
값 |
기능 |
virtual size |
00002c56 |
메모리섹션의 크기 |
RVA |
00006000 |
메모리섹션의 시작 |
size of raw data |
00002e00 |
파일 섹션의 크기 |
pointer to raw data |
00005200 |
파일 섹션의 시작 |
파일이 메모리에 로딩되면 크기는 달라짐니다.
rdata의 파일의 크기는 2e00이지만 메모리에서 사용하는 크기는 2c56입니다.
파일 섹션에서 메모리에서 사용하는 크기를 뺸 공간이 실제로 사용하지 않는 공간 입니다.
2e00에서 2c56을 뺸 나머지 공간이 null패딩입니다.
간단히 계산기를 만들어서 계산을 해보앗습니다.
1aa만큼의 공간이 null공간입니다.
그렇다면 파일섹션의 시작값과 파일섹션의 크기를 더하면값에서 1aa값을 뺴면 그값에서 1aa크기만큼은 null공간 입니다.
파일 섹션의 시작값은 5200이고 파일섹션의 크기는 2e00입니다.
이값을 더하면 8000입니다.
8000에서 1aa값을 빼면 7e56입니다.
7e56부터 8000까지는 null공간입니다.
실제로도 null로 구성되어 있습니다.
'Reversing > Windows PE' 카테고리의 다른 글
windows pe) EAT (0) | 2014.08.06 |
---|---|
windows pe) IAT (0) | 2014.07.25 |
windows pe) RVA to RAW(file offset) (0) | 2014.07.15 |
windows pe)NT_HEADER 하 (0) | 2014.07.11 |
windows pe) NT_HEADER 상 (0) | 2014.07.10 |