메모리를 직접 변경하여 프로그램이 실행되는 동안 값을 편집할 수 있는지 확인하고 싶었습니다.
내 사고 과정(테스트되지 않음)은 다음을 수행하는 것입니다.
- 프로그램을 실행하세요.
- 시스템 모니터 응용 프로그램을 열고 프로그램을 "중지"(종료하거나 종료하지 않음)하십시오.
- 항해
/proc/<ID#>/
chmod
mem
읽기 및 쓰기 액세스 권한을 부여하는 파일mem
16진수 편집기를 사용하여 편집- 계속해서 계획을 세우고 변경 사항이 반영되는지 확인하세요.
이것이 이 문제를 해결하는 올바른 방법입니까?
그렇지 않다면 어떻게 이를 달성하려고 합니까?
답변1
~에 따르면man 5 proc
:
/proc/[pid]/mem
This file can be used to access the pages of a process's memory through open(2),
read(2), and lseek(2).
즉, 이 인터페이스는 다음과 같은 기능만 제공합니다.읽다사용권. 이 파일에 쓰거나 수정할 수 없습니다:
# chmod +w /proc/$pid/mem
chmod: changing permissions of '/proc/2905/mem': Operation not permitted
실행 중인 프로세스의 메모리를 수정하려는 경우 제가 생각할 수 있는 한 가지 방법은 다음과 같습니다.디버거를 프로세스에 연결하고 이를 사용하여 변수를 설정합니다..