해결된 질문
작성
·
308
1
선생님 안녕하세요, 강의 재밌게 보고 있는 수강생 중 한명입니다
"실행중인 프로세스 열거"를 듣고 있다가 하나의 궁금증이 생겨서 질문합니다. 영상을 이해한 바로는 시스템에서 실행중인 Process Handle 과 그 process가 사용한 메모리에 권한만 충족한다면 접근할 수 있다고 이해했습니다.
그런데 여기서 제가 소유하지 않은 프로그램에 접근해서 메모리와 정보를 읽는 프로그램을 만들고 배포 유통 까지 하면 현행법상 문제가 발생하나요? 예를들어서, 어떤 회사가 A라는 프로그램을 만들었는데 그 프로그램을 모니터링하는 프로그램을 제가 출시한다면 거기에 따른 법적 제약이 있는지 선생님 경험의 바탕에서 궁금합니다.
OS위에 돌아가는 process 간의 접근 제약이 그렇게 크지 않다는 것을 보고 갑자기 흥미로운 질문이 들어서 질문합니다 :D
질문 봐주셔서 감사하고 강의의 주제에 다소 벗어나는 질문인 것 같지만 가볍게라도 답변해주셨으면 감사하겠습니다.
답변 1
1
아니오, 딱히 문제가 되지는 않습니다. 타 프로세스의 메모리를 보는 가장 대표적인 프로그램이 바로 '디버거' 입니다. 당장 Visual C++ 내장 디버거 프로세스는 내가 작성한 코드가 프로세스화 됐을 때 사용중인 메모리 영역은 물론 실행 코드 기계어까지 디스어셈블해서 보여줍니다. 심지어 메모리 직접 조작도 가능합니다. 아주 예리한 '칼'이라 하겠습니다.
이 칼을 누가 어떤 목적으로 들었는가에 따라 현행법상 문제가 될 수도 있겠습니다. 보통 리버싱을 통한 직접적인 공격은 해킹으로 간주해 법적 문제가 발생할 수 있습니다. 그 외에는 대부분 문제될 것이 없습니다. 특히 예로 든 '모니터링'은 매우 흔하고 자주 있는 일입니다. 그런 제품을 만들어 판매하는 것은 문제가 될 가능성이 매우 낮습니다. 다만 모니터링 대상 제품이 변경되거나 기능이 변경되는 경우 그에 따라 유지보수가 이루어지지 않으면 모니터링 기능은 유지될 수 없겠습니다.
참고로 그러한 모니터링이 매우 반갑지 않은 프로그램으로 게임 클라이언트가 있습니다. 해서 대부분의 게임들이 자신의 메모리 시스템을 보호하기 위한 보안 솔루션들을 적용해 운영하고 있습니다. 심지어 공격에 대한 방어력을 높이기 위한 개발 방법도 활용됩니다. 참고하시기 바랍니다.