티스토리 뷰
PE 파일 줄이기
google에 "조립하면서 배우는 PE"를 검색하면 나오는 tistory 블로그를 보고 PE파일을 만들었다.
구조도 복잡하고 한 번 봐서는 익숙해지기 어려워서 직접 조작을 통해 PE파일을 줄여보고 구조에 대해 익숙해지기로 했다.
만들어진 PE의 구조는 다음과 같다.
DOS 헤더 + PE 헤더 + 섹션 테이블 + text섹션 + data섹션 + rdata섹션
FileAlignment를 맞춰줘야하기 때문에 각각의 영역을 줄이는 것은 힘들어 보인다.
그래서 아예 섹션의 수를 줄이는 것으로 방향을 잡았다.
초록색 : 섹션 이름
파란색 : SizeOfRawData 섹션 크기
빨간색 : PointerToRawData, 파일에서의 데이터 위치
<.data 섹션>
.data 섹션에 있던 데이터를 DOS 헤더의 빈 부분으로 옮겼다.
.text 섹션의 바이트 중 Title String과 Text String의 주소를 가리키는 바이트도 같이 바꿔줬다.
어떤 바이트가 주소를 가리키는 바이트인지는 OllyDBG에서 확인 가능하다.
바이트 변조 후 OllyDBG 화면
<.rdata 섹션>
섹션의 크기를 나타내는 SizeOfRawData의 값을 0x200에서 0x60으로 변조시켰다.
그 후, .rdata 섹션의 데이터 중 0x60 만큼의 크기를 제외한 패딩 바이트를 모두 지웠다.
결과
2,048 바이트 -> 1,120 바이트
해볼만한 것
(1) .data 섹션 외에 다른 섹션들도 비슷한 방법으로 합칠 수 있을 것 같다.
(2) 패딩 바이트를 지울 수 있으니 .rdata 섹션의 임포트 테이블을 변조하여 데이터를 줄일 수 있다.
'해킹 > REVERSING' 카테고리의 다른 글
[13th 해킹캠프 발표 자료] QR Code 리버싱 (1) | 2016.02.28 |
---|