티스토리 뷰
작업을 하는 도중에 HWP 안의 글을 파싱해서 가져와야 하는 작업이 있었는데, 한글이 암호화가 잘 되어있는지, read 함수로 읽어보아도, 알아볼 수 없는 문자로 출력이 되어서 당황스럽습니다.
하지만, Python에서는 hwp 를 다양한 확장자로 바꿔주는 Library가 존재했습니다.
https://pypi.python.org/pypi/pyhwp 아래의 zip 파일을 다운 받습니다.
1. pip 를 이용해서 설치
- pip install --user --pre pyhwp
# 환경변수 설정을 잘 해줘야 다음 단계에서도 원할합니다. C:\python 안에 있는 폴더마다 환경변수로 추가해주시면 깔끔히 잘 구동이 됩니다. 따로 설명은 안 하겠습니다.
2. setup.py 를 이용해서 설치
- cmd 열고, python setup.py install
참고 : http://mytory.net/archives/12797/
https://forum.ubuntu-kr.org/viewtopic.php?p=113914
3. 아래의 오류 이유는, 아래의 코드 때문인데, open 으로 hwp를 읽어 오려고했더니, 50줄 정도 되는 글을 인코딩 시켜서 글을 보호한 것 같은데, 읽혀 지지도 않고, 스트레스가 장난 아니였습니다.
a.hwp를 notepad++로 열어본 결과 흠... ? F..u..
4. pyhwp를 다운 받으시고 까보시면 기능들이 아주 많습니다. 대표적으로 hwp -> html, txt, odt 같은 확장자로 변환이 깨지지 않고 가능합니다!! 아래로 가서 실습을 해보겠습니다.
# 위에서도 말 했듯이 환경변수를 등록 해주면, cmd를 아무데서나 켜도 실행이 가능하다는 것은 다들 알고 계시죠..
5. 저의 목표는 hwp를 txt로 만들어서 글을 파싱해오는게 목적이였기 때문에, hwp5txt를 택했습니다. 사용법은 간단합니다. hwp5txt [변환하고 싶은 hwp파일] 정말...간단합니다.
hwp5txt -h 는 디벨러퍼가 작성한 도움말을 볼 수가 있습니다. 친절하기까지...
hwp5txt 버전을 알아옵니다.
# Tip이라고 한다면, cmd 현재 경로와 hwp 현재 경로가 같으면 실행이 간단합니다. 다른 경로에 있으면, 절대경로가 더럽게 나와서 복잡하게 됩니다.
6. 이제 사용법을 알았으니, 실행을 해봅니다. hwp5txt [변환하고 싶은 hwp파일]
실행을 하면, 리턴 값은 0입니다.
7. 결과를 보면, txt가 생기면서 내용을 보면, 잘 변환이 되었네요.
# Respect [mete0r]
'프로그래밍 > Python' 카테고리의 다른 글
[pyhwp] HWP 파일을 다양한 확장자로 변환하기 - 2 (0) | 2015.11.19 |
---|---|
[unittest] 단위 테스트 by Python (0) | 2015.11.19 |
[os.walk] 특정 디렉토리(폴더)의 모든 파일 이름 알아내기 (0) | 2015.11.17 |
[tweepy] Python으로 Twitter Streaming API 사용하기(Test) (0) | 2015.11.05 |
[pygeoip]IP주소로 물리적 위치 구하기 (0) | 2015.11.03 |
- Total
- Today
- Yesterday
- Kimsuky
- keylogger
- CVE-2018-9375
- Yara
- VirusBulletin
- infostealer
- 악성코드
- 멋쟁이사자처럼 4기
- Decoding
- 위협정보공유
- vuln
- 해킹메일
- koodous
- CVE-2018-0798
- us-cert
- Static Analysis Engine
- AMSI
- 스피어피싱
- 출처 : Do it 안드로이드 프로그래밍
- Cisco Talos
- 한글악성코드
- Servey
- Flybits
- idapython
- cuckoo-sandbox
- malware
- 비트코인
- .wll
- Bisonal
- MS-Office
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |