[완료] 실행중인 프로세스의 실행파일을 수정/삭제 하는 것이 가능한가요?
글쓴이: bearchit / 작성시간: 월, 2007/05/28 - 12:19오전
안녕하세요
질문 중 Windows 환경에서의 내용도 포함되어 있어서 이곳에 질문을 올려도 되나
망설이다가 적당한 답변이나 자료를 찾기가 어려워 잠시 염치를 접어두고 질문 올립니다 ^^;;
제가 궁금한 것은 실행중인 프로세스의 실행파일을 변경해야 할 경우에 대한 것입니다.
자동 업데이트 프로그램을 예로 들면, 실행되지 않은 프로세스의 실행파일들은 변경이
가능하겠지만 현재 실행중인(업데이트 프로그램) 프로세스의 실행파일을 변경하거나 삭제하려면
어떤 방법을 써야할까요?
직접 간단하게 테스트 해보니 리눅스의 경우는 프로세스가 실행중이더라도 해당 실행파일을 삭제하는 것이 가능했습니다.
그런데 Windows에서는 프로세스가 실행중일 경우는 해당 실행파일을 삭제하려고 하면 접근 오류가 발생합니다.
이런 문제를 가능하게 하는 방법에는 어떤 것이 있을까요?
Forums:
윈도우즈 커널 파일시스템 정책인데 가능하게 할 수는...
리눅스 프로세스야, 실행한 파일과 상관없이 동작하니 문제가 없지만,
윈도우즈 파일 같은 경우는 프로세스와 관련된 파일은 죽이지 못하니까요...
덕분에 바이러스 프로그램들이 그런 점을 이용해서 프로세스나 서비스에 파일을 점유해놓고
열심히 감시/등록을 반복하고 있죠...
대부분의 윈도우즈 업데이트는 프로세스가 시작되기 전인 데스크탑 환경 로딩시나, 종료시에 수행되는 편입니다.
저도 자세한 내용은 잘 모르니... msdn에 물어봐주세요.
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.
windows같은 경우에는
windows같은 경우에는 삭제는 안되지만 이름변경이 가능합니다.
a.exe를 패치하고자 하신다면..
a.exe -> a.ex_ 등으로 적당히 이름변경..
패치된 a.exe를 원래 디렉토리에 복사..
실행중인 프로세스 종료..
다음에 프로세스가 실행시 a.ex_ 파일 삭제..
이렇게 하시면 됩니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
보통 이런 식으로
보통 이런 식으로 많이 하고 있습니다.
1. 변경 대상 프로그램이 업데이트 프로그램 호출
2. 업데이트 프로그램이 #HOME#/update에 변경대상프로그램의 새 프로그램 저장 (#HOME#는 변경대상프로그램이 있는 위치)
3. 업데이트 프로그램이 변경대상 프로그램 종료
4. 새 프로그램을 설치
5. 업데이트 프로그램이 새 프로그램 실행.
일부 프로그램은 4번 과정에서 압축 해제를 하는 경우도 있지요. 윈도에서는 파일 삭제시에 Lock이 걸리기 때문에 위와 같은 방법을 많이 사용합니다.
한 걸음 더 가까이
내용이 정확히 어떻게 되는건지 알고 싶습니다.
안녕하세요...궁금한게 있습니다.
전 windows/system32/...안에 win32k.sys와 user32.dll 파일을 수정한 파일로 변경하려 하는데, 실행중인 파일이라 이름을 바꿔도 안되고, 어떻게 해서 바꿀수 있는지 모르겠습니다.
내용보시면 연락주시기 바랍니다.
\windows\system32\win32k.sys
\windows\system32\win32k.sys와 user32.dll 파일을 수정하시려면 wininit.ini 파일을 이용하고 수정후 재부팅하도록 설정해야 합니다.
이것은 원래 알려주신 내용보다 어려운 내용이고 저도 잘 모르는 내용이라 답변을 드리기 어렵네요.
답변해주신 모든
답변해주신 모든 분들 정말 감사합니다 ^^
댓글 달기