[Autogenerated] We've seen how to share, kernel objects by using names.
So some object types support this idea of names, but not all of them.
And the names I'm talking about here.
Are stream based names, processor, for example, don't have names.
They have IDs but in general, some object types support names.
And others don't and This just allows a look, up by name.
It doesn't change anything from the way the object works.
It works in exactly the same way.
It has the same kind of capabilities, regardless of whether it is named or not.
It's just one easy.
Mechanism.
To share objects between processes by using that name or names,
that we're using for objects.
If we are indeed,
leveraging this capability when we call the create something
function like create event that we've seen in other creation
functions like create tex, create 7-Up, four create file mapping,
and So on we can optionally provide a name for object types,
that support it.
So for the create process function as a counter example there,
is no name associated with the process.
The executable name, is is not the name of the process object.
Its just a path, to where the image.
File lies all named objects.
Are stored within the object manager's namespace which you
can view with a tool called win be J, that We've seen already.
And I'll show you in a moment,
a few more things about that Now we have two issues with names.
One of them, is the fact, that it can collide with other names.
Um So maybe I call my event object, the shutdown,
event maybe there, is already an object called shutdown,
event So collisions, are essentially possible.
So what typically processes do is to select some name
which is with a long winded kind of names.
So, that collision, is unlikely, to happen.
But there is a Deeper problem with names which is the fact,
that they're visible, they are visible in tools such as cross explore,
and cross explore, is not a magician.
It uses certain Windows APIs Although they,
error part of the native APIs Windows part of ant.
Well,
they're still fairly well known so anyone can search
for named objects fairly easily.
And then perhaps try even maliciously.
To get a handle, to one of these named objects, and foil its operation.
For example, if I get a handle, to an event I can call the set event function,
and trigger the event prematurely, which of course,
is problematic.
So, these kinds of things.
Can be solved using this idea called private object,
namespace its private, it's possible.
To create a private, namespace for objects,
and these names are not publicly visible at all from user mode There's no way.
To get to them.
In fact, it's also possible.
To limit the seeds, the security IDs that can access that private,
project namespace So, that is a possible solution.
To still use names but hide them from public access So
it's like eating your cake in heaven.
Two Let's see what win know,
be J looks like and where we can find these named objects.