1. Server & Client 준비과정
Server : Server Program을 실행하여 Client들과 통신을 할 준비를 시작한다. Server Start
Client : NotepadHook Program 실행. Client PC 부팅시 자동 실행. 서버와 통신을 시도한다.
Server 프로그램과 Client 프로그램은 서로 통신을 시도하며 Iptable, Dll 초기값, Key 값 등을 주고받는다.
2. Server & Client 실행과정
Client : User들이 사용하는 PC - Windows XP. NotepadHook 이란 프로그램의 실행으로 서버와 통신을 한다.
Server : Client와의 통신을 담당하는 Server. Log기록, Samba Server, Socket통신, Iptable 셋팅의 역할을 담당
![](https://t1.daumcdn.net/cfile/tistory/18117A4A4F7AEA9B34)
3. Server Key Value
Client의 프로그램과의 연동에 쓰이는 변수.
![](https://t1.daumcdn.net/cfile/tistory/1872B13A4F7AEEB30B)
4. Iptables Set
![](https://t1.daumcdn.net/cfile/tistory/167C143B4F7C13451C)
5. Server Log
Client와 Server의 접속허용, 거부, 서버시작, 종료 등의 일련의 과정을 Log로 기록한다.
![](https://t1.daumcdn.net/cfile/tistory/1811003B4F7C137C04)
6. Inject Process
모든 프로세스에 DLL을 강제로 Inject하여 메모장의 파일저장 및 읽기에 대한 동작을 재정의한다.
![](https://t1.daumcdn.net/cfile/tistory/1120314E4F7C198524)
7. 프로세스 강제종료 방지
서버와 통신을 하는 NotepadHook 프로그램을 강제 종료할 수 없도록 한다.
![](https://t1.daumcdn.net/cfile/tistory/2017AF4E4F7C19C62D)
8. 복사하기( Ctrl + C ) 방지
메모장 내에서 복사하기를 수행할 수 없도록 방지한다.
![](https://t1.daumcdn.net/cfile/tistory/2027A6494F7C19F41A)