Reverse Engineering
중국산 실행압축프로그램~ Upack~!
XeroNic(HS)
2007. 12. 2. 22:56
반응형
Upack
요 녀석이 많이 알려졌는지는 잘 모르겠지만..;;;
실행압축프로그램중에 하나입니다.
( "실행압축프로그램"이라면 UPX, FSG, ASPack 등과 같이 실행파일을 대상으로 압축하고,
압축된 상태에서 실행이 가능하도록 해주는 유틸의 한 종류입니다. )
제가 Upack 을 처음알게 된 건, 음;;.. 회사에 입사하고 2~3달 정도 지났을 시점이니;;
작년 여름(2006년 6~7월)쯤이겠네요;;
그 당시는 한참 "실행압축해제기법" 연구에 몰두하고 있던 기억이..^^;;;
인터넷 검색하다가 우연히 알게되었는데... 그 때는 저에게 정말 신선한 충격이었습니다.
전문가는 아니지만 이런저런 것들을 하면서 나름대로는 실행파일구조에 대해서는
어느 정도는 알고 있다고 생각했는데... 제가 알고 있던 고정관념을 한방에...
날려버린 녀석이 요.. Upack 입니다.
NOTEPAD.EXE 정상 파일

NOTEPAD.EXE Upack으로 실행압축한 상태
보통 윈도우즈 실행파일(대부분 PE 파일)의 경우 위의 첫번째 캡쳐와 같은 구조로 되어있습니다.
제일 첫부분에 'MZ'로 실행파일이란 것을 명시하고, 그 다음 DOS Stub 코드가 들어가고..
실제 PE 파일의 내용이 들어가있습니다.
Upack 으로 압축된 위의 두번째 캡쳐는 약간 다른 형태란 걸 확인할 수 있을 것입니다.
PE 파일의 시작부분이 DOS Stub 영역과 겹쳐있는 상태인데...;; 어쨌든 실행은 됩니다.
PE 파일의 경우 파일의 첫부분에 'MZ'로 실행파일임을 명시하고..
0x3C 에 PE 헤더의 위치를 기록하고 있습니다.
그리고 Upack 을 알기 전까지는 모든 실행파일들의 PE 헤더의 위치가..
0x3C 보다 뒤에 위치했는데;;;.. Upack 으로 압축된 실행파일들은..
0x3C 보다 앞이더군요;; 신기했습니다...
PE 시작부분과 DOS Stub 이 겹치더라도... PE 정보만 정확하게 들어있다면
실행에는 아무런 문제가 없다는 걸 이때 알았습니다;;ㅋ
살짝, 궁금한게 있다면;;.. Upack 으로 압축된 실행파일을 DOS 모드에서 실행시키면..
어떻게 될까..하는거;;ㅋ
보통은 DOS 모드에서 실행시킬 수 없다는 메시지를 찍으면서 정상적으로 종료가 되는데;;
Upack 에서는 그 부분이 없거든요;;ㅋ.
담에 언제... 시간과 여건이 되면 한번 실험해봐야겠네요..^^;;;ㅋ
아;; 이미 알고 계신분 계시다면 알려주시는 것도 괜찮구요~~:D
( 여담이지만 공개되어있는 PE 파일의 정보를 보여주는 툴들이 많은데,,,,
그 중에서도 교과서적인 방법을 사용하는 일부 툴들에서는 Upack 으로 압축된 파일은
인식을 못하는 경우도 있습니다. )
반응형