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.zo...@gmail.com>:
> Hi,
>
> I want to set P_PROTECTED flag for some daemons after it start, without
> patching application and kernel.
> It possible?
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to