Tôi có thể nghĩ ra cách khá giả tạo để làm điều đó và nó sẽ không hoạt động đối với các quy trình tùy ý.
Giả sử rằng bạn viết thư viện chia sẻ của riêng mình, thực hiện 'char * getenv'. Sau đó, bạn thiết lập 'LD_PRELOAD' hoặc 'LD_LIBRARY_PATH' env. vars để cả hai quy trình của bạn được chạy với thư viện được chia sẻ của bạn được tải trước.
Bằng cách này, về cơ bản bạn sẽ có quyền kiểm soát mã của hàm 'getenv'. Sau đó, bạn có thể làm đủ mọi trò lố. 'Getenv' của bạn có thể tham khảo tệp cấu hình bên ngoài hoặc phân đoạn SHM cho các giá trị thay thế của vars env. Hoặc bạn có thể thực hiện tìm kiếm / thay thế regexp trên các giá trị được yêu cầu. Hoặc là ...
Tôi không thể nghĩ ra cách dễ dàng để làm điều đó đối với các quy trình đang chạy tùy ý (ngay cả khi bạn là root), thiếu viết lại trình liên kết động (ld-linux.so).