-->

한글 eps, zlib decompress 파이썬 코드

한글 문서형 악성코드는 한글의 eps 취약점을 사용하는 경우가 많다. eps는 BinData 영역에 .eps 형태로 있는데 zlib로 압축되어 있는 상태이다. 한글 스토리지 뷰어? 툴중에 가장 많이 쓰이는게 아무래도 누리랩의 HwpScan인데 이게 유료화로 전환이 되었다.

 

 

HwpScan을 사용하면 eps 부분에 대해 zlib 압축을 해제해주는 기능이 포함되어 있어 편한데 사용할 수 없게 되어 파이썬으로 수동 압축해제를 시도하게 됐다. 정말정말 간단한데 에러 해결에 시간이 좀 걸렸기 때문에 여기에 정리해 놓는다!

 

 

eps stream 얻기

HwpScan 툴을 대신해, SSView 툴을 사용했다. BinData 영역 중 원하는 데이터 부분에 오른쪽 마우스를 클릭하면 'Save Stream' 기능이 있다. 

 

 

 

한글 eps, zlib 압축해제 코드

코드는 정말 간단하다.

 

zlib를 import 해주고 zlib.decompress([bdata])를 해주면 된다. 하지만 이렇게만 하면 아래와 같은 에러가 발생한다. (zlib.error: Error -3 while decompressing data: incorrect header check)

 

 

 

따라서 아래와 같이, decompress 함수 두번째 인자에 -15를 넣어주자. 나도 이게 정확히 어떤 의미인지는...;;; 아래와 같이 압축해제된 eps 코드를 확인할 수 있다.

 

import zlib

indata = open("BIN0003.eps.stream", "rb").read()
outdata = zlib.decompress(indata,-15)
f = open("eps_decom",'wb')
f.write(outdata)

 

 

댓글

Designed by JB FACTORY