SlideShare a Scribd company logo
1 of 30
1본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 .
목차
배포용 문서란?
배포용 문서의해제
미래
참고 문헌
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 2
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 3
배포용 문서
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 4
배포용 문서 (Cont’d)
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 5
[배포용 문서로 저장]는 고쳐선 안 될 문서에 대하여
내용을 변경하지 못하도록 만들어 줍니다.
http://help.hancom.com/hoffice/webhelp/9.0/ko_kr/hwp/file/send_to_mail/publish(save).htm
배포용 문서 (Cont’d)
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 6
[배포용 문서로 저장]는 고쳐선 안 될 문서에 대하여
내용을 변경하지 못하도록 만들어 줍니다.
http://help.hancom.com/hoffice/webhelp/9.0/ko_kr/hwp/file/send_to_mail/publish(save).htm
내용 변경하기
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 7
한/글 자체의 버그를 사용하기
파일을 직접 변경하기
한/글 자체의 버그 사용하기
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 8
http://850530.tistory.com/185
한/글 자체의 버그 사용하기 (Cont’d)
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 9
http://850530.tistory.com/185
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 10
기초 지식
Seed 찾기
난수 배열 만들기
해시코드 추출하기
해시코드로 복호화하기
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 11
기초 지식
Seed 찾기
난수 배열 만들기
해시코드 추출하기
해시코드로 복호화하기
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 12
기초 지식
CompoundFileBinaryFormat
 objidl.h의IStorage,IStream사용
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 13
IStorage *storage,*substorage;
IStream *header,*info;
StgOpenStorageEx(path,STGM_READWRITE|STGM_SHARE_EXCLUSIVE,STGFMT_STORAGE,0,NULL,0,IID_IStorage,(void**)&storage);
storage->OpenStream(L"FileHeader",NULL,STGM_READWRITE|STGM_SHARE_EXCLUSIVE,NULL,&header);
header->Seek(li(36),STREAM_SEEK_SET,NULL);
header->Read(buffer,1,NULL);
header->Seek(li(36),STREAM_SEEK_SET,NULL);
header->Write(buffer,1,NULL);
storage->OpenStream(L"DocInfo",NULL,STGM_READWRITE|STGM_SHARE_EXCLUSIVE,NULL,&info);
storage->DestroyElement(L"BodyText");
storage->RenameElement(L"ViewText",L"BodyText");
storage->OpenStorage(L"BodyText",NULL,STGM_READWRITE|STGM_SHARE_EXCLUSIVE,NULL,0,&substorage);
substorage->EnumElements(0,NULL,0,&enumstat);
storage->OpenStorage(L"Scripts",NULL,STGM_READWRITE|STGM_SHARE_EXCLUSIVE,NULL,0,&substorage);
storage->OpenStorage(L"DocHistory",NULL,STGM_READWRITE|STGM_SHARE_EXCLUSIVE,NULL,0,&substorage);
li : int → LARGE_INTEGER / uli : int → ULARGE_INTEGER
기초 지식
Seed 찾기
난수 배열 만들기
해시코드 추출하기
해시코드로 복호화하기
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 14
SEED 찾기
HWPTAG_DISTRIBUTE_DOC_DATA의첫4바이트
 SectionN스트림에서의 구조
 0~3바이트:레코드헤더
 4~7바이트:SEED
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 15
stream->Seek(li(4),STREAM_SEEK_SET,NULL);
stream->Read(data,256,NULL);
seed=(data[3]<<24)+(data[2]<<16)+(data[1]<<8)+data[0];
기초 지식
Seed 찾기
난수 배열 만들기
해시코드 추출하기
해시코드로 복호화하기
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 16
난수 배열 만들기
 srand(seed)
 a=rand()&0xFF, b=rand()&0x0F+1→배열에a값을 b번횟수만큼삽입
 배열크기가 256이될때까지 반복
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 17
for(i=0;i<256;++i)
{
if(b==0)
{
a=rand()&0xff;
b=(rand()&0x0f)+1;
}
random[i]=a;
b--;
}
기초 지식
Seed 찾기
난수 배열 만들기
해시코드 추출하기
해시코드로 복호화하기
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 18
해시코드 추출하기
 offset=(Seed&0x0f)+sizeof(UINT)
 난수배열과 배포용문서 데이터를 XOR연산
 offset부터80바이트가해시코드,2바이트가옵션플래그
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 19
for(i=0;i<256;++i)data[i]=data[i]^random[i];
offset=(seed&0x0f)+sizeof(unsigned int);
for(i=0;i<80;++i)hash[i]=data[offset+i];
for(i=0;i<2;++i)flag[i]=data[offset+80+i];
*해시코드는비밀번호의SHA-1값을문자열(UTF-16LE)으로변환한것
기초 지식
Seed 찾기
난수 배열 만들기
해시코드 추출하기
해시코드로 복호화하기
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 20
해시코드로 복호화하기
복호화할스트림
 ViewText/SectionN→BodyText/SectionN
 Scripts/JScriptVersion
 Scripts/DefaultScript
 DocHistory/HistoryLastDoc
 DocHistory/VersionLogN
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 21
해시코드로 복호화하기 (Cont’d)
해시코드의 처음16바이트로 AES-128ECB알고리즘을 사용해본문 레코드를복호화할 수있음
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 22
#include<openssl/ssl.h>
for(i=0;i<16;++i)key[i]=hash[i];
stream->Stat(&stat,STATFLAG_NONAME);
inp=(unsigned char*)malloc(stat.cbSize.QuadPart-260);
outp=(unsigned char*)malloc(stat.cbSize.QuadPart-260);
stream->Read(inp,stat.cbSize.QuadPart-260,NULL);
EVP_CIPHER_CTX ctx;
EVP_CIPHER_CTX_init(&ctx);
EVP_DecryptInit(&ctx,EVP_aes_128_ecb(),key,NULL);
EVP_DecryptUpdate(&ctx,outp,&outlen,inp,stat.cbSize.QuadPart-260);
EVP_DecryptFinal(&ctx,outp+outlen,&tmp);
outlen=outlen+tmp;
stream->Seek(li(0),STREAM_SEEK_SET,NULL);
stream->SetSize(uli(outlen));
stream->Write(outp,outlen,NULL);
storage->Commit(STGC_OVERWRITE);
결과
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 23
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 24
사용 목적에 따른 문서 처리 방법 차별화
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 25
문서 내용 변경 방지
문서 내용 복사 방지
문서 내용 변경 방지
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 26
문서 내용 복사 방지
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 27
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 28
참고 문헌
https://groups.google.com/forum/#!topic/hwp-foss/d2KL2ypR89Q
https://en.wikipedia.org/wiki/Compound_File_Binary_Format
https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_u
se
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 29
본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를
참 고 하 여 개 발 하 였 습 니 다 . 30

More Related Content

What's hot

K-means hashing (CVPR'13) とハッシング周り
K-means hashing (CVPR'13) とハッシング周りK-means hashing (CVPR'13) とハッシング周り
K-means hashing (CVPR'13) とハッシング周りYusuke Uchida
 
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習Preferred Networks
 
Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋智啓 出川
 
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。sasezaki
 
Graph Attention Network
Graph Attention NetworkGraph Attention Network
Graph Attention NetworkTakahiro Kubo
 
CycleGANについて
CycleGANについてCycleGANについて
CycleGANについてyohei okawa
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)Hiroki Nakahara
 
[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS
[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS
[DL輪読会]QUASI-RECURRENT NEURAL NETWORKSDeep Learning JP
 
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011Preferred Networks
 
Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門樽八 仲川
 
SlideShareをやめて Speaker Deckに移行します
SlideShareをやめて Speaker Deckに移行しますSlideShareをやめて Speaker Deckに移行します
SlideShareをやめて Speaker Deckに移行しますMoriwaka Kazuo
 
よくわかるHopscotch hashing
よくわかるHopscotch hashingよくわかるHopscotch hashing
よくわかるHopscotch hashingKumazaki Hiroki
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)Masahiro Suzuki
 
「解説資料」MetaFormer is Actually What You Need for Vision
「解説資料」MetaFormer is Actually What You Need for Vision「解説資料」MetaFormer is Actually What You Need for Vision
「解説資料」MetaFormer is Actually What You Need for VisionTakumi Ohkuma
 
第 1 回 Jetson ユーザー勉強会
第 1 回 Jetson ユーザー勉強会第 1 回 Jetson ユーザー勉強会
第 1 回 Jetson ユーザー勉強会NVIDIA Japan
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring増田 亨
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門hoxo_m
 

What's hot (20)

K-means hashing (CVPR'13) とハッシング周り
K-means hashing (CVPR'13) とハッシング周りK-means hashing (CVPR'13) とハッシング周り
K-means hashing (CVPR'13) とハッシング周り
 
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
 
Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋
 
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
 
Graph Attention Network
Graph Attention NetworkGraph Attention Network
Graph Attention Network
 
CycleGANについて
CycleGANについてCycleGANについて
CycleGANについて
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
 
[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS
[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS
[DL輪読会]QUASI-RECURRENT NEURAL NETWORKS
 
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
 
Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門
 
SlideShareをやめて Speaker Deckに移行します
SlideShareをやめて Speaker Deckに移行しますSlideShareをやめて Speaker Deckに移行します
SlideShareをやめて Speaker Deckに移行します
 
FPGAX2019
FPGAX2019FPGAX2019
FPGAX2019
 
よくわかるHopscotch hashing
よくわかるHopscotch hashingよくわかるHopscotch hashing
よくわかるHopscotch hashing
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
 
「解説資料」MetaFormer is Actually What You Need for Vision
「解説資料」MetaFormer is Actually What You Need for Vision「解説資料」MetaFormer is Actually What You Need for Vision
「解説資料」MetaFormer is Actually What You Need for Vision
 
1次式とノルムで構成された最適化問題とその双対問題
1次式とノルムで構成された最適化問題とその双対問題1次式とノルムで構成された最適化問題とその双対問題
1次式とノルムで構成された最適化問題とその双対問題
 
第 1 回 Jetson ユーザー勉強会
第 1 回 Jetson ユーザー勉強会第 1 回 Jetson ユーザー勉強会
第 1 回 Jetson ユーザー勉強会
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 

Viewers also liked

[14.07.16] 다양성자산과 염기
[14.07.16] 다양성자산과 염기[14.07.16] 다양성자산과 염기
[14.07.16] 다양성자산과 염기Hyeonmin Park
 
[14.03.18] 이온 결합 (Cont.)
[14.03.18] 이온 결합 (Cont.)[14.03.18] 이온 결합 (Cont.)
[14.03.18] 이온 결합 (Cont.)Hyeonmin Park
 
Csonn t2 atomic structure
Csonn t2 atomic structureCsonn t2 atomic structure
Csonn t2 atomic structurecheeshengonn
 
Chemical Bonding I: Basic Concepts
Chemical Bonding I: Basic ConceptsChemical Bonding I: Basic Concepts
Chemical Bonding I: Basic Conceptsguest3f3a4c0
 
Chemical bonding part 1 (chem 11)
Chemical bonding part 1 (chem 11)Chemical bonding part 1 (chem 11)
Chemical bonding part 1 (chem 11)Hoshi94
 
Atomic Bonding, Ionic, Covalent, Metallic Bonds, Physical Science Lesson Powe...
Atomic Bonding, Ionic, Covalent, Metallic Bonds, Physical Science Lesson Powe...Atomic Bonding, Ionic, Covalent, Metallic Bonds, Physical Science Lesson Powe...
Atomic Bonding, Ionic, Covalent, Metallic Bonds, Physical Science Lesson Powe...www.sciencepowerpoint.com
 
Csonn t3 chemical bonding
Csonn t3 chemical bondingCsonn t3 chemical bonding
Csonn t3 chemical bondingcheeshengonn
 
Bonding - ionic covalent & metallic
Bonding - ionic covalent & metallicBonding - ionic covalent & metallic
Bonding - ionic covalent & metallicJanadi Gonzalez-Lord
 
Covalent Vs. Ionic Bonding
Covalent Vs. Ionic BondingCovalent Vs. Ionic Bonding
Covalent Vs. Ionic BondingJoeChandler10
 
Material Science and Metallurgy
Material Science and MetallurgyMaterial Science and Metallurgy
Material Science and Metallurgytaruian
 
4-2 Ionic & Covalent Bonding
4-2 Ionic & Covalent Bonding4-2 Ionic & Covalent Bonding
4-2 Ionic & Covalent Bondingrkelch
 
Lecture 8.1- Ionic vs. Covalent
Lecture 8.1- Ionic vs. CovalentLecture 8.1- Ionic vs. Covalent
Lecture 8.1- Ionic vs. CovalentMary Beth Smith
 
Ionic Bonding Notes
Ionic Bonding NotesIonic Bonding Notes
Ionic Bonding Notesalchemist
 
Lesson 1 Intro to Chemical Bonding
Lesson 1 Intro to Chemical BondingLesson 1 Intro to Chemical Bonding
Lesson 1 Intro to Chemical Bondingtvacco
 
Lecture 1 introduction
Lecture 1 introductionLecture 1 introduction
Lecture 1 introductionAnnalyn Soria
 
Chemical bonding chapter 6
Chemical bonding chapter 6Chemical bonding chapter 6
Chemical bonding chapter 6vvchemistry
 

Viewers also liked (20)

[14.07.16] 다양성자산과 염기
[14.07.16] 다양성자산과 염기[14.07.16] 다양성자산과 염기
[14.07.16] 다양성자산과 염기
 
[14.03.18] 이온 결합 (Cont.)
[14.03.18] 이온 결합 (Cont.)[14.03.18] 이온 결합 (Cont.)
[14.03.18] 이온 결합 (Cont.)
 
Bonds, Atomic Bonds
Bonds, Atomic BondsBonds, Atomic Bonds
Bonds, Atomic Bonds
 
Csonn t2 atomic structure
Csonn t2 atomic structureCsonn t2 atomic structure
Csonn t2 atomic structure
 
Chemical Bonding I: Basic Concepts
Chemical Bonding I: Basic ConceptsChemical Bonding I: Basic Concepts
Chemical Bonding I: Basic Concepts
 
Chemical bonding part 1 (chem 11)
Chemical bonding part 1 (chem 11)Chemical bonding part 1 (chem 11)
Chemical bonding part 1 (chem 11)
 
Atomic Bonding, Ionic, Covalent, Metallic Bonds, Physical Science Lesson Powe...
Atomic Bonding, Ionic, Covalent, Metallic Bonds, Physical Science Lesson Powe...Atomic Bonding, Ionic, Covalent, Metallic Bonds, Physical Science Lesson Powe...
Atomic Bonding, Ionic, Covalent, Metallic Bonds, Physical Science Lesson Powe...
 
Chemical bonding
Chemical bondingChemical bonding
Chemical bonding
 
Csonn t3 chemical bonding
Csonn t3 chemical bondingCsonn t3 chemical bonding
Csonn t3 chemical bonding
 
Ionic bonding
Ionic bondingIonic bonding
Ionic bonding
 
Bonding - ionic covalent & metallic
Bonding - ionic covalent & metallicBonding - ionic covalent & metallic
Bonding - ionic covalent & metallic
 
Covalent Vs. Ionic Bonding
Covalent Vs. Ionic BondingCovalent Vs. Ionic Bonding
Covalent Vs. Ionic Bonding
 
Material Science and Metallurgy
Material Science and MetallurgyMaterial Science and Metallurgy
Material Science and Metallurgy
 
4-2 Ionic & Covalent Bonding
4-2 Ionic & Covalent Bonding4-2 Ionic & Covalent Bonding
4-2 Ionic & Covalent Bonding
 
Lecture 8.1- Ionic vs. Covalent
Lecture 8.1- Ionic vs. CovalentLecture 8.1- Ionic vs. Covalent
Lecture 8.1- Ionic vs. Covalent
 
Ionic Bonding Notes
Ionic Bonding NotesIonic Bonding Notes
Ionic Bonding Notes
 
Chapter 9
Chapter 9Chapter 9
Chapter 9
 
Lesson 1 Intro to Chemical Bonding
Lesson 1 Intro to Chemical BondingLesson 1 Intro to Chemical Bonding
Lesson 1 Intro to Chemical Bonding
 
Lecture 1 introduction
Lecture 1 introductionLecture 1 introduction
Lecture 1 introduction
 
Chemical bonding chapter 6
Chemical bonding chapter 6Chemical bonding chapter 6
Chemical bonding chapter 6
 

Similar to [16.06.25] 한글 배포용 문서의 모든 것

Perl Script Document
Perl Script DocumentPerl Script Document
Perl Script Document오석 한
 
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서Lee Sang-Ho
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)NAVER D2
 
200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연
200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연
200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연Joohyun Han
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdfSungkyun Kim
 
Part14 %ed%8 c%8c%ec%9d%bc%ec%9e%85%ec%b6%9c%eb%a0%a5
Part14 %ed%8 c%8c%ec%9d%bc%ec%9e%85%ec%b6%9c%eb%a0%a5Part14 %ed%8 c%8c%ec%9d%bc%ec%9e%85%ec%b6%9c%eb%a0%a5
Part14 %ed%8 c%8c%ec%9d%bc%ec%9e%85%ec%b6%9c%eb%a0%a5현웅 김
 
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드GangSeok Lee
 
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행Devgear
 
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리DaeHyun Sung
 

Similar to [16.06.25] 한글 배포용 문서의 모든 것 (10)

Perl Script Document
Perl Script DocumentPerl Script Document
Perl Script Document
 
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
[강릉원주대 대기환경과학과] 대기과학전산입문 설명서
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연
200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연
200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdf
 
Part14 %ed%8 c%8c%ec%9d%bc%ec%9e%85%ec%b6%9c%eb%a0%a5
Part14 %ed%8 c%8c%ec%9d%bc%ec%9e%85%ec%b6%9c%eb%a0%a5Part14 %ed%8 c%8c%ec%9d%bc%ec%9e%85%ec%b6%9c%eb%a0%a5
Part14 %ed%8 c%8c%ec%9d%bc%ec%9e%85%ec%b6%9c%eb%a0%a5
 
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드
 
업무 자동화
업무 자동화업무 자동화
업무 자동화
 
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행
[Step UP! 마이그레이션] RAD 업그레이드 마이그레이션_점검과 수행
 
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
 

More from Hyeonmin Park

[17.07.18] SCPC 1회 본선 - 트리
[17.07.18] SCPC 1회 본선 - 트리[17.07.18] SCPC 1회 본선 - 트리
[17.07.18] SCPC 1회 본선 - 트리Hyeonmin Park
 
[16.06.14] Auto Correction for Mobile Typing
[16.06.14] Auto Correction for Mobile Typing[16.06.14] Auto Correction for Mobile Typing
[16.06.14] Auto Correction for Mobile TypingHyeonmin Park
 
[16.05.31] 컴퓨터학과 소개
[16.05.31] 컴퓨터학과 소개[16.05.31] 컴퓨터학과 소개
[16.05.31] 컴퓨터학과 소개Hyeonmin Park
 
[16.05.10] 외로움은 스트레스가 아니라 카.페.인 때문이다
[16.05.10] 외로움은 스트레스가 아니라 카.페.인 때문이다[16.05.10] 외로움은 스트레스가 아니라 카.페.인 때문이다
[16.05.10] 외로움은 스트레스가 아니라 카.페.인 때문이다Hyeonmin Park
 
[16.05.09] 동성애에 대한 인식과 우리의 바람직한 자세
[16.05.09] 동성애에 대한 인식과 우리의 바람직한 자세[16.05.09] 동성애에 대한 인식과 우리의 바람직한 자세
[16.05.09] 동성애에 대한 인식과 우리의 바람직한 자세Hyeonmin Park
 
[16.05.11] KIST 청년 소프트웨어 프로젝트 @ 경기과학고등학교
[16.05.11] KIST 청년 소프트웨어 프로젝트 @ 경기과학고등학교[16.05.11] KIST 청년 소프트웨어 프로젝트 @ 경기과학고등학교
[16.05.11] KIST 청년 소프트웨어 프로젝트 @ 경기과학고등학교Hyeonmin Park
 
[15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석
[15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석[15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석
[15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석Hyeonmin Park
 
[15.08.19] 존경하는 인물
[15.08.19] 존경하는 인물[15.08.19] 존경하는 인물
[15.08.19] 존경하는 인물Hyeonmin Park
 
[14.07.25] KENNYSOFT - 야구심판
[14.07.25] KENNYSOFT - 야구심판[14.07.25] KENNYSOFT - 야구심판
[14.07.25] KENNYSOFT - 야구심판Hyeonmin Park
 
[14.07.09] STAC 2014
[14.07.09] STAC 2014[14.07.09] STAC 2014
[14.07.09] STAC 2014Hyeonmin Park
 
[14.05.02] 5/2 (금)
[14.05.02] 5/2 (금)[14.05.02] 5/2 (금)
[14.05.02] 5/2 (금)Hyeonmin Park
 
[15.08.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석
[15.08.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석[15.08.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석
[15.08.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석Hyeonmin Park
 
[15.05.22] 정보 전달하는 글 쓰고 읽기
[15.05.22] 정보 전달하는 글 쓰고 읽기[15.05.22] 정보 전달하는 글 쓰고 읽기
[15.05.22] 정보 전달하는 글 쓰고 읽기Hyeonmin Park
 
[15.05.01] Bèzier Curve
[15.05.01] Bèzier Curve[15.05.01] Bèzier Curve
[15.05.01] Bèzier CurveHyeonmin Park
 
[15.04.27] 최고가격제와 최저가격제
[15.04.27] 최고가격제와 최저가격제[15.04.27] 최고가격제와 최저가격제
[15.04.27] 최고가격제와 최저가격제Hyeonmin Park
 
[15.04.20] WEEK9_박현민_주원철
[15.04.20] WEEK9_박현민_주원철[15.04.20] WEEK9_박현민_주원철
[15.04.20] WEEK9_박현민_주원철Hyeonmin Park
 
[15.03.12] 일차변환
[15.03.12] 일차변환[15.03.12] 일차변환
[15.03.12] 일차변환Hyeonmin Park
 
[15.02.05] 타일 채우기 4
[15.02.05] 타일 채우기 4[15.02.05] 타일 채우기 4
[15.02.05] 타일 채우기 4Hyeonmin Park
 

More from Hyeonmin Park (20)

[17.07.18] SCPC 1회 본선 - 트리
[17.07.18] SCPC 1회 본선 - 트리[17.07.18] SCPC 1회 본선 - 트리
[17.07.18] SCPC 1회 본선 - 트리
 
[16.06.14] Auto Correction for Mobile Typing
[16.06.14] Auto Correction for Mobile Typing[16.06.14] Auto Correction for Mobile Typing
[16.06.14] Auto Correction for Mobile Typing
 
[16.05.31] 컴퓨터학과 소개
[16.05.31] 컴퓨터학과 소개[16.05.31] 컴퓨터학과 소개
[16.05.31] 컴퓨터학과 소개
 
[16.05.10] 외로움은 스트레스가 아니라 카.페.인 때문이다
[16.05.10] 외로움은 스트레스가 아니라 카.페.인 때문이다[16.05.10] 외로움은 스트레스가 아니라 카.페.인 때문이다
[16.05.10] 외로움은 스트레스가 아니라 카.페.인 때문이다
 
[16.05.09] 동성애에 대한 인식과 우리의 바람직한 자세
[16.05.09] 동성애에 대한 인식과 우리의 바람직한 자세[16.05.09] 동성애에 대한 인식과 우리의 바람직한 자세
[16.05.09] 동성애에 대한 인식과 우리의 바람직한 자세
 
[16.05.11] KIST 청년 소프트웨어 프로젝트 @ 경기과학고등학교
[16.05.11] KIST 청년 소프트웨어 프로젝트 @ 경기과학고등학교[16.05.11] KIST 청년 소프트웨어 프로젝트 @ 경기과학고등학교
[16.05.11] KIST 청년 소프트웨어 프로젝트 @ 경기과학고등학교
 
[15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석
[15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석[15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석
[15.10.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석
 
[15.08.19] 존경하는 인물
[15.08.19] 존경하는 인물[15.08.19] 존경하는 인물
[15.08.19] 존경하는 인물
 
[15.09.09] Alphabet
[15.09.09] Alphabet[15.09.09] Alphabet
[15.09.09] Alphabet
 
[14.07.25] KENNYSOFT - 야구심판
[14.07.25] KENNYSOFT - 야구심판[14.07.25] KENNYSOFT - 야구심판
[14.07.25] KENNYSOFT - 야구심판
 
[14.07.09] STAC 2014
[14.07.09] STAC 2014[14.07.09] STAC 2014
[14.07.09] STAC 2014
 
[14.05.02] 5/2 (금)
[14.05.02] 5/2 (금)[14.05.02] 5/2 (금)
[14.05.02] 5/2 (금)
 
[15.08.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석
[15.08.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석[15.08.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석
[15.08.07] 슈퍼컴퓨터를 이용한 안드로이드 어플리케이션의 정적 분석
 
[15.05.22] 정보 전달하는 글 쓰고 읽기
[15.05.22] 정보 전달하는 글 쓰고 읽기[15.05.22] 정보 전달하는 글 쓰고 읽기
[15.05.22] 정보 전달하는 글 쓰고 읽기
 
[15.05.01] Bèzier Curve
[15.05.01] Bèzier Curve[15.05.01] Bèzier Curve
[15.05.01] Bèzier Curve
 
[15.04.27] 최고가격제와 최저가격제
[15.04.27] 최고가격제와 최저가격제[15.04.27] 최고가격제와 최저가격제
[15.04.27] 최고가격제와 최저가격제
 
[15.04.20] WEEK9_박현민_주원철
[15.04.20] WEEK9_박현민_주원철[15.04.20] WEEK9_박현민_주원철
[15.04.20] WEEK9_박현민_주원철
 
[15.03.12] 일차변환
[15.03.12] 일차변환[15.03.12] 일차변환
[15.03.12] 일차변환
 
[15.03.09] 행렬
[15.03.09] 행렬[15.03.09] 행렬
[15.03.09] 행렬
 
[15.02.05] 타일 채우기 4
[15.02.05] 타일 채우기 4[15.02.05] 타일 채우기 4
[15.02.05] 타일 채우기 4
 

Recently uploaded

바리스타이론기초-1 수정 후 111111111111111111111111
바리스타이론기초-1 수정 후 111111111111111111111111바리스타이론기초-1 수정 후 111111111111111111111111
바리스타이론기초-1 수정 후 111111111111111111111111a01091282057
 
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.ultrasuperrok
 
친환경, 그린, 탄소저감 미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료
친환경, 그린, 탄소저감  미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료친환경, 그린, 탄소저감  미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료
친환경, 그린, 탄소저감 미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료Seongwon Kim
 
TDM(Text Data Mining) Studio manual(2024)
TDM(Text Data Mining) Studio manual(2024)TDM(Text Data Mining) Studio manual(2024)
TDM(Text Data Mining) Studio manual(2024)yonseilibrary
 
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다ultrasuperrok
 
이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.
이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.
이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.ultrasuperrok
 

Recently uploaded (6)

바리스타이론기초-1 수정 후 111111111111111111111111
바리스타이론기초-1 수정 후 111111111111111111111111바리스타이론기초-1 수정 후 111111111111111111111111
바리스타이론기초-1 수정 후 111111111111111111111111
 
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.
 
친환경, 그린, 탄소저감 미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료
친환경, 그린, 탄소저감  미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료친환경, 그린, 탄소저감  미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료
친환경, 그린, 탄소저감 미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료
 
TDM(Text Data Mining) Studio manual(2024)
TDM(Text Data Mining) Studio manual(2024)TDM(Text Data Mining) Studio manual(2024)
TDM(Text Data Mining) Studio manual(2024)
 
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
 
이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.
이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.
이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.
 

[16.06.25] 한글 배포용 문서의 모든 것

  • 1. 1본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 .
  • 2. 목차 배포용 문서란? 배포용 문서의해제 미래 참고 문헌 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 2
  • 3. 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 3
  • 4. 배포용 문서 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 4
  • 5. 배포용 문서 (Cont’d) 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 5 [배포용 문서로 저장]는 고쳐선 안 될 문서에 대하여 내용을 변경하지 못하도록 만들어 줍니다. http://help.hancom.com/hoffice/webhelp/9.0/ko_kr/hwp/file/send_to_mail/publish(save).htm
  • 6. 배포용 문서 (Cont’d) 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 6 [배포용 문서로 저장]는 고쳐선 안 될 문서에 대하여 내용을 변경하지 못하도록 만들어 줍니다. http://help.hancom.com/hoffice/webhelp/9.0/ko_kr/hwp/file/send_to_mail/publish(save).htm
  • 7. 내용 변경하기 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 7 한/글 자체의 버그를 사용하기 파일을 직접 변경하기
  • 8. 한/글 자체의 버그 사용하기 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 8 http://850530.tistory.com/185
  • 9. 한/글 자체의 버그 사용하기 (Cont’d) 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 9 http://850530.tistory.com/185
  • 10. 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 10
  • 11. 기초 지식 Seed 찾기 난수 배열 만들기 해시코드 추출하기 해시코드로 복호화하기 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 11
  • 12. 기초 지식 Seed 찾기 난수 배열 만들기 해시코드 추출하기 해시코드로 복호화하기 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 12
  • 13. 기초 지식 CompoundFileBinaryFormat  objidl.h의IStorage,IStream사용 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 13 IStorage *storage,*substorage; IStream *header,*info; StgOpenStorageEx(path,STGM_READWRITE|STGM_SHARE_EXCLUSIVE,STGFMT_STORAGE,0,NULL,0,IID_IStorage,(void**)&storage); storage->OpenStream(L"FileHeader",NULL,STGM_READWRITE|STGM_SHARE_EXCLUSIVE,NULL,&header); header->Seek(li(36),STREAM_SEEK_SET,NULL); header->Read(buffer,1,NULL); header->Seek(li(36),STREAM_SEEK_SET,NULL); header->Write(buffer,1,NULL); storage->OpenStream(L"DocInfo",NULL,STGM_READWRITE|STGM_SHARE_EXCLUSIVE,NULL,&info); storage->DestroyElement(L"BodyText"); storage->RenameElement(L"ViewText",L"BodyText"); storage->OpenStorage(L"BodyText",NULL,STGM_READWRITE|STGM_SHARE_EXCLUSIVE,NULL,0,&substorage); substorage->EnumElements(0,NULL,0,&enumstat); storage->OpenStorage(L"Scripts",NULL,STGM_READWRITE|STGM_SHARE_EXCLUSIVE,NULL,0,&substorage); storage->OpenStorage(L"DocHistory",NULL,STGM_READWRITE|STGM_SHARE_EXCLUSIVE,NULL,0,&substorage); li : int → LARGE_INTEGER / uli : int → ULARGE_INTEGER
  • 14. 기초 지식 Seed 찾기 난수 배열 만들기 해시코드 추출하기 해시코드로 복호화하기 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 14
  • 15. SEED 찾기 HWPTAG_DISTRIBUTE_DOC_DATA의첫4바이트  SectionN스트림에서의 구조  0~3바이트:레코드헤더  4~7바이트:SEED 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 15 stream->Seek(li(4),STREAM_SEEK_SET,NULL); stream->Read(data,256,NULL); seed=(data[3]<<24)+(data[2]<<16)+(data[1]<<8)+data[0];
  • 16. 기초 지식 Seed 찾기 난수 배열 만들기 해시코드 추출하기 해시코드로 복호화하기 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 16
  • 17. 난수 배열 만들기  srand(seed)  a=rand()&0xFF, b=rand()&0x0F+1→배열에a값을 b번횟수만큼삽입  배열크기가 256이될때까지 반복 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 17 for(i=0;i<256;++i) { if(b==0) { a=rand()&0xff; b=(rand()&0x0f)+1; } random[i]=a; b--; }
  • 18. 기초 지식 Seed 찾기 난수 배열 만들기 해시코드 추출하기 해시코드로 복호화하기 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 18
  • 19. 해시코드 추출하기  offset=(Seed&0x0f)+sizeof(UINT)  난수배열과 배포용문서 데이터를 XOR연산  offset부터80바이트가해시코드,2바이트가옵션플래그 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 19 for(i=0;i<256;++i)data[i]=data[i]^random[i]; offset=(seed&0x0f)+sizeof(unsigned int); for(i=0;i<80;++i)hash[i]=data[offset+i]; for(i=0;i<2;++i)flag[i]=data[offset+80+i]; *해시코드는비밀번호의SHA-1값을문자열(UTF-16LE)으로변환한것
  • 20. 기초 지식 Seed 찾기 난수 배열 만들기 해시코드 추출하기 해시코드로 복호화하기 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 20
  • 21. 해시코드로 복호화하기 복호화할스트림  ViewText/SectionN→BodyText/SectionN  Scripts/JScriptVersion  Scripts/DefaultScript  DocHistory/HistoryLastDoc  DocHistory/VersionLogN 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 21
  • 22. 해시코드로 복호화하기 (Cont’d) 해시코드의 처음16바이트로 AES-128ECB알고리즘을 사용해본문 레코드를복호화할 수있음 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 22 #include<openssl/ssl.h> for(i=0;i<16;++i)key[i]=hash[i]; stream->Stat(&stat,STATFLAG_NONAME); inp=(unsigned char*)malloc(stat.cbSize.QuadPart-260); outp=(unsigned char*)malloc(stat.cbSize.QuadPart-260); stream->Read(inp,stat.cbSize.QuadPart-260,NULL); EVP_CIPHER_CTX ctx; EVP_CIPHER_CTX_init(&ctx); EVP_DecryptInit(&ctx,EVP_aes_128_ecb(),key,NULL); EVP_DecryptUpdate(&ctx,outp,&outlen,inp,stat.cbSize.QuadPart-260); EVP_DecryptFinal(&ctx,outp+outlen,&tmp); outlen=outlen+tmp; stream->Seek(li(0),STREAM_SEEK_SET,NULL); stream->SetSize(uli(outlen)); stream->Write(outp,outlen,NULL); storage->Commit(STGC_OVERWRITE);
  • 23. 결과 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 23
  • 24. 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 24
  • 25. 사용 목적에 따른 문서 처리 방법 차별화 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 25 문서 내용 변경 방지 문서 내용 복사 방지
  • 26. 문서 내용 변경 방지 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 26
  • 27. 문서 내용 복사 방지 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 27
  • 28. 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 28
  • 30. 본 제 품 은 한 글 과 컴 퓨 터 의 한 / 글 문 서 파 일 ( . H W P ) 공 개 문 서 를 참 고 하 여 개 발 하 였 습 니 다 . 30