프로세스의 변경 사항을 반영하기 위해 "/proc/$pid/mem"의 주소 값을 편집할 수 있습니까?

프로세스의 변경 사항을 반영하기 위해 "/proc/$pid/mem"의 주소 값을 편집할 수 있습니까?

메모리를 직접 변경하여 프로그램이 실행되는 동안 값을 편집할 수 있는지 확인하고 싶었습니다.

내 사고 과정(테스트되지 않음)은 다음을 수행하는 것입니다.

  1. 프로그램을 실행하세요.
  2. 시스템 모니터 응용 프로그램을 열고 프로그램을 "중지"(종료하거나 종료하지 않음)하십시오.
  3. 항해/proc/<ID#>/
  4. chmodmem읽기 및 쓰기 액세스 권한을 부여하는 파일
  5. mem16진수 편집기를 사용하여 편집
  6. 계속해서 계획을 세우고 변경 사항이 반영되는지 확인하세요.

이것이 이 문제를 해결하는 올바른 방법입니까?

그렇지 않다면 어떻게 이를 달성하려고 합니까?

답변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

실행 중인 프로세스의 메모리를 수정하려는 경우 제가 생각할 수 있는 한 가지 방법은 다음과 같습니다.디버거를 프로세스에 연결하고 이를 사용하여 변수를 설정합니다..

관련 정보