How change process flags from userland?
Andrey Zonov
andrey.zonov at gmail.com
Wed Jul 14 11:49:08 UTC 2010
Hi,
I resolve this problem (thanks Julian Elischer for his thoughts):
===
int fd;
int cnt;
off_t off;
void *p;
kvm_t *kd;
struct kinfo_proc *kip;
struct proc *p_mmap;
kd = kvm_open(NULL, _PATH_MEM, NULL, O_RDONLY, NULL);
kip = kvm_getprocs(kd, KERN_PROC_PID, pid, &cnt);
fd = open(_PATH_KMEM, O_RDWR, 0);
off = (off_t)((uintptr_t)kip->ki_paddr);
p = mmap(0, sizeof(struct proc), PROT_READ | PROT_WRITE,
MAP_SHARED, fd, off);
p_mmap = (struct proc *)p;
p_mmap->p_flag |= P_PROTECTED;
...
===
I wrote daemon [1] that set P_PROTECTED flag for applications. May be
it useful for someone.
[1] http://zonov.pp.ru/pprotectd/pprotectd.tbz
--
Andrey Zonov
2010/6/30 Andrey Zonov <andrey.zonov at gmail.com>:
> Hi,
>
> I want to set P_PROTECTED flag for some daemons after it start, without
> patching application and kernel.
> It possible?
More information about the freebsd-hackers
mailing list