티스토리 뷰

PE 파일 줄이기


google에 "조립하면서 배우는 PE"를 검색하면 나오는 tistory 블로그를 보고 PE파일을 만들었다.

구조도 복잡하고 한 번 봐서는 익숙해지기 어려워서 직접 조작을 통해 PE파일을 줄여보고 구조에 대해 익숙해지기로 했다.







aa.exe


만들어진 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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함