한글 입력기에 이어 다음은 글꼴 쪽 소식이다.

사용자 삽입 이미지
이게 과연 가능할까 나 자신도 장담할 수 없었는데 결국은 해냈다.
스크린샷의 프로그램은, 아래아한글 2.0 전문용에 들어있는 영문 신명조 HFT 파일을 읽어서 거기에 있는 글자를 찍은 모습이다.
TTF로 존재하지 않는 아래아한글만의 독창적인 글꼴--공한체나 휴먼옛체, 강낭콩 등--을 인증샷으로 보여야 더 재미가 있을 텐데, 아래아한글 2.0 시절에는 독창적인 글꼴이 아직 흔치 않았었다.

궁극의 오덕질의 승리.
뭐, 아예 압축 파일 포맷을 혼자 Reverse engineering만으로 알아낸 사람도 있는데, 이 정도 가지고 내가 딱히 RE의 귀재이거나 한 건 아니다.

아래아한글 2.0은 윤곽선 글꼴이 도입된 첫 버전이었고(무려 1992년 발매!), 지금의 아래아한글이 사용하는 '통합 글꼴' 포맷이 완전히 제정되기 전이었다. 글꼴 파일 내부에 아직 이름이나 제조사 같은 정보도 없고, 파일 포맷도 별도의 추상적인 계층이나 미래 확장 대비 공간이 전혀 없이 아주 아주 단순했다. 헥스 에디터로 딱 들여다보면, 이건 글자별 글립 데이터 오프셋 정보, 이건 글자별 폭(영문 가변폭 글꼴 기준) 이런 식으로 구간이 나뉘어 있겠다는 게 눈에 들어왔다. 구간을 나누는 데 성공한 것만으로도 최하 30% 이상은 성공이었다.

글립 데이터를 들여다보고 있으니, 처음 부분은 고정된 헤더인 듯하다. 그 지점 이후부터 가변 길이의 인스트럭션들이 나오는데(직선을 그어라, 곡선을 만들어라, 다음 폴리곤으로 넘어가라, 등의 그래픽 명령) 이건 알기가 쉽지 않았다.
그래서 가장 간단한 글자인 중고딕 . I L - _ (다 사각형 하나만 달랑 나오는-_-)가 어떻게 돼 있는지 분석하는 걸 시작으로, + = / : 을 이어 추적했다.

가장 마지막으로 원리를 알아 낸 건 물론 곡선 부분이다. 다행히 이 HFT는 트루타입(TTF)보다는 구조가 훨씬 더 단순했다. TTF 정도의 복잡도만 돼도 나 혼자서는 포맷을 못 알아냈을 것이다.
내가 이미 TTF 같은 더 복잡한 글꼴 파일 포맷의 구조에 대해 어느 정도 알고 있고, 그러니 뭐가 나올지 어느 정도 예상을 하고 있으며, HFT는 그보다 단순할 거라고 예상도 했기 때문에 해킹에 성공할 수 있었다.

다음 관심사는, 물론 아래아한글 2.1부터 지금까지 쓰이고 있는 통합 글꼴이다.
아래아한글 2.x 확장팩 글꼴들을 ttf로 바꿔서 윈도우 다른 프로그램에서도 쓰는 게 소원이다. -_-;;
언뜻 들여다본 바로는, 2.0하고는 인스트럭션들의 포맷이 살짝 다른 듯하다.

같은 한양 시스템 글꼴을 2.0 것과 통합 글꼴 것을 대조해 보면 분석이 훨씬 더 쉽겠지만, 안타깝게도 현재 아래아한글의 한양 시스템 hft 글꼴은 빡세게 암호화되어 있어서 분석을 할 수 없다. 파일 크기와 처리 성능으로 미뤄 보건대 내가 보기엔 압축은 아니고, 그냥 단순 암호화이다. HFT 중에서도 암호화가 안 된 글꼴만이 추후 분석 대상임.

아마 나는 아래아한글의 소스를 본 적이 전혀 없는 사람 중에서는,
글자 입출력과 관련하여 아래아한글이 사용하는 각종 데이터 파일의 구조를 우리나라에서 제일 잘 아는 사람일 것이다.
당장 <날개셋> 한글 입력기에 역대 아래아한글이 사용한 모든 custom 글쇠배열 파일을 읽어들이는 기능이 있으며,
바탕, 가는샘물, 필기는 도스용 아래아한글의 화면용 글꼴 파일을 추출한 것이다.

1월 10일 추가:
오늘 새벽. 통합 글꼴 HFT도 뚫는 데 성공. 단, 이건 내 혼자 힘만으로 한 건 아니다.
인증샷 대상 글꼴은 '신명 신명조'이다.

사용자 삽입 이미지

Posted by 사무엘

2012/01/08 19:23 2012/01/08 19:23
,
Response
No Trackback , 15 Comments
RSS :
http://moogi.new21.org/tc/rss/response/624

Trackback URL : http://moogi.new21.org/tc/trackback/624

Comments List

  1. 소범준 2012/01/08 23:19 # M/D Reply Permalink

    1. <날개셋> 뿐만 아니라 글꼴 쪽까지도 도전하고 계시니, 형제님의 한글 관련 연구 범위는 과연 어디까지인지... ㅎㄷㄷ;;

    2. 요샌 포털사 네이버도 지난번 한글날(2011/10/9) 즈음부터 새 폰트를 제작.발표하여 일반에 공개하여 배포하고 있습니다. 그 때 관련 방송 프로그램에서 '글꼴도 한글 경쟁력을 뒷받침하는 한 축'이라는 말을 들었던 적이 있습니다.

    3. 옛날 도스 시절의 아래아한글도 그 윈도 3.1 짜리의 구닥다리 아버지 노트북 쓸 때 살짝 써 본 적이 있습니다.
    그게 2.0이었다면 형제님이 글에서 언급하신 것과 동일할 겁니다. 전체 폰트가 명조체인 게 인상 깊군요.

    ※ 참고로 서울메트로 1호선 현대정공 VVVF 및 4호선 대우산 내부 안내기가 명조체를 사용합니다.ㅋ

    1. 사무엘 2012/01/09 09:21 # M/D Permalink

      1. 딱 저 두 개가 전부입니다. 더 없어요. ㅎㅎ 각각 입력과 출력이죠.

      2. 글꼴 '도'가 아니라 글꼴 '이야말로' 진짜 한글의 경쟁력을 뒷받침하는 한 축입니다.
      <날개셋> 한글 입력기는 세벌식 이념을 아는 사람에게만 적극적인 appeal이 가능하지만, 글꼴은 한글을 쓰는 누구에게라도 영향을 줄 수 있습니다.

      3. 그런 전광판에 있는 서체들은 명조이긴 하지만, 조합 테이블이 아래아한글의 그것과 완전히 100% 일치하는 명조는 아닐 겁니다. 뭐, 그래봤자 겨우 16*16 크기에서 차이는 미미하지만 말이죠.

  2. 주의사신 2012/01/09 09:40 # M/D Reply Permalink

    1. 전 도저히 16진수로 된 binary 파일 못 읽겠더군요. 아마 많이 안 읽어서 그런가 봅니다.


    2. StackOverflow라는 유명한 프로그래밍 관련 질의응답 사이트가 있습니다.

    이것 만드신 분들이 꼭 프로그래밍만 할 것은 없다라는 생각에 이것저것 사이트를 늘릴 수 있도록 해 놨습니다. 그러다 보니 요즘에는 별 게 다 있습니다. 성경 관련된 것도 있습니다. 두 개나!

    목록 보기
    http://stackexchange.com/sites

    이 사이트들은 아래 사이트에서 준비가 되어서 시작이 되게 됩니다.

    http://area51.stackexchange.com/

    처음에 질문이랑 follower를 모으고, '열심히 참여하겠습니다' 서명 운동(?)을 하는 commiter를 모은 후에 beta로 들어갑니다.

    한국어 질문하고 답하는 사이트도 준비 중이더군요. follower 12명 더 모으고, committing 시작해야합니다.

    http://area51.stackexchange.com/proposals/31223/korean-language-usage

    올 해 안에 될까 궁금합니다. 중국어, 일본어는 벌써 beta가 있는데, 한국어는 관심 있는 사람들이 별로 없는가 봅니다. 글꼴 뿐만 아니라 이런 거 생기는 것도 나라의 언어의 경쟁력인데...ㅜㅜ

    1. 사무엘 2012/01/09 19:21 # M/D Permalink

      자기가 주로 다루는 분야의 파일의 내부 구조에 대한 context만 알면, 16진수 코드 들여다보는 건 그리 어렵지 않게 감이 생깁니다.

      개인적으론, 해커와 리버스 엔지니어를 위한 잘 만들어진 헥스 에디터가 없나 궁금합니다.
      이 지점부터 스캔 시작했을 때 특정 구조체에 차는 값, 이 지점이 가리키는 오프셋에 있는 값 등, view를 사용자가 마음대로 사용자 지정할 수 있고, 값을 고쳐서 데이터의 길이가 달라졌을 때, 오프셋 계산을 다시 한다거나 하는 것 말이죠.
      텍스트 에디터야 워낙 먼치킨급의 상용 프로그램이 많습니다만, 헥스 에디터 분야는 잘 모르겠습니다.

      StackOverflow는 물론 저도 잘 알고 있죠. 네이버에 지식인이 있다면, 구글은 거기 커뮤니티의 Q&A 검색 결과를 잘 찾아 주는 편이어서 프로그래밍 관련 의문을 해결하는 데 큰 기여를 하고 있습니다.
      한국 사람이 그런 세계구 커뮤니티에 기여를 잘 못하는 이유는, 뭐 각박한 사회 구조 때문보다는 영어가 딸려서인 게 더 크게 작용하겠죠. -_-;; 말만 통한다면야 무한 잉여력이 발산되지 않겠어요? ㄲㄲ

  3. 자랑쟁이 2012/01/10 04:20 # M/D Reply Permalink

    정말 대단하십니다.

    최근에 이것 저것 공부를 하다가 내용이 용묵님 블로그에서 걸리는 일이 많아 몇번을 보면서 대단한 사람이다.. 라고 감탄하고 갔는데(개인적으론 주유구는 정말 재미있게 읽었습니다), 이 글까지 보니 댓글을 안남기고는 못배기겠네요.

    저도 제 컴퓨터를 처음 갖으면서 세벌식을 쓰려고 했었는데, (개인적으론 한달동안 160타로 올렸던 2벌식에서의 타수가 삼벌식으로 2주만에 300타가 나온 경험이 있습니다.), 다른 사람의 컴터를 쓸때 바보가 되는 느낌을 받아서 포기했던 기억이 있습니다. 사실 개인적으론 왜!!!! 세벌식이 아니라 2벌식이 표준이 됐는지 아직도 이해가 안갑니다...
    워낙에 학부때 한글과 타이포그래피에 관심이 많아서, 이런 쪽에 관심이 많았는데... 정말 재미있네요. 전 지금까지 서체가 암호화 되어 있으리라고 생각조차 해본적이 없었거든요. (물론 저는 디자이너라... 그것까지 생각할 일은 별로 없습니다만.. ^^)

    여튼 앞으론 영묵님 블로그에서 글을 읽게 되면 다녀갔다는 흔적이라도 남겨야 겠다는 생각을 했습니다.
    좋은 포스팅 감사드립니다. ^^

    1. 사무엘 2012/01/10 10:32 # M/D Permalink

      악.. 오덕질 자랑하는 글에 '자랑쟁이' 닉을 쓰시는 분께서?? ㅋㅋㅋ

      반가운 손님께서 댓글 남겨 주셔서 대단히 고맙습니다.
      네, 저도 어릴적에 한글, 타이포그래피, 글자판 이런 쪽에 완전 꽂혀 지냈고, 미래엔 그게 접목된 논문도 쓰려 합니다.
      여러가지 이력이 독특하신 분 같네요. 자세한 얘기는 제가 거기에 올리도록 하겠습니다.

  4. 사무엘 2012/01/10 10:58 # M/D Reply Permalink

    통합 글꼴 HFT도 부분적으로 뚫어서 인증샷을 추가했다. 이건 레퍼런스를 좀 보고 뚫은 것임.
    이로써 암호화되지 않은 HFT는 장기적으로 TTF로 변환할 수 있는 기반이 마련됐다. goodbye HFT -_-;;

    통합 글꼴은 자체적인 코드 페이지, 더욱 세밀한 서체 메타정보, 섹션(미래의 확장에 대비 가능한 영역)이 추가되는 등, 전반적으로 TTF에 더 가까워지고 구조도 더욱 복잡해졌다. 사실, 통합 글꼴이 제정되는 당시엔 국내의 폰트 엔지니어들도 TTF의 존재는 알고 있었을 것이다.
    어쨌든, 이 때문에 예전처럼 하드코딩된 오프셋만 디비보는 방법만으로는 모든 HFT 파일을 커버할 수 없다.

    또한, HFT는 암호화되지 않은 인스트럭션도 명령이 아니라 좌표 체계 내부에 비트 단위 꼼수가 추가되어 분석하기 더 까다롭다. 파일을 더 compact시켜서 크기를 줄이려는 의도로 보인다. 통합 글꼴에 비하면 이전의 과도기적 2.0 HFT가 정말 간단하기 그지없었던 구조임.

    2.0 HFT야 20년 전의 아래아한글 2.0에서만 딱 한 번 쓰이고 말았던 임시 legacy 포맷이다만,
    통합 글꼴은 상용 제품인 아래아한글이 계속 지원하는 포맷인 만큼, 더 자세한 정보는 저작권 보호를 위해 밝히지 않으련다.

  5. 다물 2012/01/12 10:06 # M/D Reply Permalink

    글꼴 원 저작사와 충돌이 생길지도 모른다고 생각합니다.
    잘 알아보고 하심이 좋을 것 같네요.
    한/글에 포함된 글꼴을 한/글에서 쓰는건 가능하지만 그 밖에 다른 곳에서 쓰면 문제가 될 수 있고 다른 용도로 쓰는건 문제가 될 수 있습니다.

    1. 사무엘 2012/01/13 13:43 # M/D Permalink

      이런 15년 전의 구닥다리 서체에 집착하는 사람도 없을 것이고,
      그때 HFT 공급했던 서체 회사들 중에 망하거나 합병되지 않고 지금까지 남아 있는 회사도 별로 없을 겁니다.
      물론 그렇다고 해서 저작권 침해 해도 된다는 소리는 아니지만, 저도 위험한 짓은 안 합니다. ㅎㅎ

  6. 비밀방문자 2014/09/14 22:21 # M/D Reply Permalink

    관리자만 볼 수 있는 댓글입니다.

    1. 사무엘 2014/09/15 09:23 # M/D Permalink

      저도 해킹이나 RE 전문가인 건 아니고 딱히 어디서 배워서 분석하지는 않습니다. 글꼴이라는 해당 분야 자체에 관심이 많다 보니 그냥 '감'으로 어째어째 하다가 운이 좋아서 성공한 것일 뿐이지요.
      그리고 포맷을 안다고 해서 바로 TTF로 바꿀 수 있는 건 아니기 때문에 개인적으로는 후반부 작업에도 굉장히 애를 먹었습니다. :)

  7. ㅇㅇ 2014/11/18 22:08 # M/D Reply Permalink

    신명 중명조를 개인적으로 굉장히 좋아하는데 저도 PDF를 통해서 어찌어찌 추출해 보려 했으나 잘 안 되서 아쉽네요... 신명 중명조를 한글 이외의 프로그램에서도 쓰고 싶은데... 컴퓨터에 대해 아는 건 잡지식밖에 없는데 작성자님처럼 되려면 얼마나 많이 배워야 할까요 +_+

    글 잘 읽고 갑니당 ㅠㅜ

    1. ㅇㅇ 2014/11/18 22:11 # M/D Permalink

      아 그리고 만약 추출할 수 없다면 이 글꼴만 따로 사고 싶은데... 한컴께 문의 드리면 나올려나요..

    2. 사무엘 2014/11/19 09:12 # M/D Permalink

      안녕하세요? 저도 신명 신명조/중명조의 완전 중독자랍니다. ^^ 정말 고퀄이죠.
      재래식 HFT는 아래아한글 개발사에서도 이제는 더 개발이나 지원을 안 하는 완전히 legacy가 됐습니다. (안티앨리어싱조차 없이 출력되니 화면 품질 안습)
      신명 글꼴은 현재는 SM 글꼴로 바뀌어서 '직지소프트'라는 후속 기업이 여전히 저작권을 갖고 정식 판매를 하더군요. 물론 TTF 형태입니다. http://www.smfont.com 정식 구매를 원하시면 이쪽으로 알아보시는 게 좋을 듯합니다. :)

  8. ㅇㅇ 2014/12/12 19:14 # M/D Reply Permalink

    감사합니다 ㅠㅠ 근데 단일폰트 구매는 힘들다는데 가격이 걱정되네요...

Leave a comment
« Previous : 1 : ... 1667 : 1668 : 1669 : 1670 : 1671 : 1672 : 1673 : 1674 : 1675 : ... 2204 : Next »

블로그 이미지

그런즉 이제 애호박, 단호박, 늙은호박 이 셋은 항상 있으나, 그 중에 제일은 늙은호박이니라.

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/12   »
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        

Site Stats

Total hits:
3051605
Today:
2625
Yesterday:
2142