#include #include #include #include #include #include #include #include #include "procfs.h" int procfs_open(pid_t pid) { char path[2048]; sprintf(path, "/proc/%d/mem", pid); return open(path, O_RDWR); } int read_page(int fd, uintptr_t index, uint8_t *data) { if (lseek(fd, index * PAGE_SIZE, SEEK_SET) == -1) return -1; size_t n = 0; while (n < PAGE_SIZE) { ssize_t result = read(fd, data + n, PAGE_SIZE - n); if (result == -1) return -1; n += result; } return 0; }