지금 생각한게, 머 컴퓨터로 한글이나 파워포인트 등 작업한다음 저장하잖아? 그러면 그걸 해당 컴퓨터에 저장하는게 아니라
하나의 메인서버로 전부다 전송하는거야. 그리고 개개인이 작업한 컴퓨터에는 다 자료가 안남아 있도록..

그래서 생각해본게, DLL인젝션으로 전역후킹을해서 CreateFile, WriteFile을 후킹했어.

그런다음 메모장을 실행시킨다음(인젝션된 상태) 내용 입력후에 다른이름으로 저장하기 하면 다음과 같은 함수호출을 하더라구..(DLL안에서 콘솔생성하는 함수를 넣어놓음..)

그런데 문제가, CreateFile을 없던 파일을 생성하려고 호출한건지, 아니면 읽으려고 한건지에 대한 부분은 CreateFile호출전에 CreateFile하려는 파일이 존재하는지 먼저 검사해서 생성하려는 거구나 라는걸 알 수 있엇는데.. 없는 파일인데도 스샷과 같이 미친듯이 생성하는 경우도 있더라고..(거북이 svn깔앗더니 메모장에서 저장하는 동작 하나로도저럼..)

한마디로 사용자가 저장하려는 진짜파일을 구분할 수 있는 좋은 방법이 있을까..?

생각해본게, CreateFile하는순간의 리턴되는 핸들을 리스트에 넣어서 기억해놧다가, CloseHandle 할때 리스트에서 지워지도록 만들고,
WriteFile함수가 호출되는놈만 필요한 파일로 보려고 햇는데, 메모장만 봐도 일단 파일 생성한다음 CloseHandle하고, 다시 열어서 WriteFile 하더라고.. 크...

아니면 특정 확장자만 저장되고 나머지는 전부다 drop시키는 방법도 쓸만할까? 예를 들어 자주쓰는 .txt .ppt .pptx .doc 같은것만 전송시키고 나머지는 컴퓨터에 저장조차 안되게 전부 drop... 근데 또 이건 문제가 생길거 같아서,,