악성코드 치료 과정에서 파일 삭제에 실패하는 경우는 여러가지가 있습니다.

1. NTFS 권한이 없는 경우나 읽기전용인 경우 등
2. 삭제하려는 .exe 파일이 실행중인 경우
3. 삭제하려는 .dll / .ocx 파일이 다른 .exe 파일에 로딩되어 있는 경우
4. 해당 파일을 다른 .exe가 열고 있는 경우 (Handle이 Open된 경우)
5. 삭제 관련 API (DeleteFile, CreateFile 등.. 혹은 더 밑에 있는 ntdll / 커널 API 들..)가 Hooking된 경우

이중 1번은 크게 문제될 것이 없구요...
2번은 그냥 .exe를 kill 해버리고 지우면 됩니다.
5번은 커널 드라이버에서 ntos kernel을 새로 로드해 SSDT 후킹을 원천 차단해버린 상태에서 삭제하면 해결됩니다.

문제는 3번과 4번인데, 이런 경우는 커널에서도 마땅한 방법이 없는 것이 사실입니다.
악성 dll이 다른 프로세스에 로딩되어 있다면 대부분 Dll Injection된 경우인데 이 경우 Host 프로세스는 정상적인 프로세스이기 때문에 무턱대고 죽이기도 곤란합니다. 4번의 경우도 마찬가지이구요.

만약 리부팅을 감수한다고 하면 기존에 확실하게 삭제할 수 있는 방법이 있었지만,
저는 지금 리부팅을 하지 않고 삭제하는 방법을 연구하고 있습니다. 어찌보면 엄청난 잔머리와 꼼수의 결합체가 될지도.. ㅋㅋ
잘 되면... 쓸만한 제품이 나올 것 같습니다. 푸할할~~ ^^

'Treasure Island' 카테고리의 다른 글

강기갑 의원 무죄판결에 관하여...  (2) 2010.01.20
반효정 씨의 공로상 수상소감  (6) 2010.01.01
철도노조 파업의 진실  (2) 2009.12.02
Windows7 단축키 모음  (2) 2009.11.28
수능 성적표. ㅋㅋ  (15) 2009.11.16
Posted by kuaaan
,


사랑합니다. 편안히 잠드소서