So the mach/xnu system that Mac OS is based on has a potentially big security 
hole: if you can get the task post of a task, you can do things to it.

So, Apple put security features on get_task_for_pid, and put taskgated in 
charge of it.

And, apple-supplied debuggers, such as GDB, are blessed and can get task ports.

But jvisualvm comes from oracle with each new release of Java, and does not get 
that blessing.

Now, according to the man page, the answer is to sign the bundle that your tool 
is in.

     -s       Allow signed applications marked as "safe" to have free access to 
task ports, without having to
              pass an authorization check. Note that such callers must be 
marked both allowed and safe.

It also mentions this:

     system.privilege.taskport  Authorization right used to check access of 
allowed (but not safe) callers.

Now, signing: everything that I've seen on signing is about signing a bundle. 
Jvisualvm is not a bundle; it is a flat java program. 

So, is there a way to make the java system executable blessed so that java 
debuggers can get the task port of a java program?

---
Entertaining minecraft videos
http://YouTube.com/keybounce

_______________________________________________
MacOSX-talk mailing list
[email protected]
http://www.omnigroup.com/mailman/listinfo/macosx-talk

Reply via email to