Título: [m][SNIPPET] IsUserAnAdmin? Publicado por: Karcrack en 30 Julio 2010, 16:19 pm Código
Es un pequeño codigo minimalista (como a mi me gusta ::)) que reemplaza a la funcion IsUserAnAdmin@SHELL32, que es simplemente un wrapper a CheckTokenMembership@ADVAPI32 Como podeis comprobar el SID (Security IDentifier) esta hardcodeado... asi que me gustaria que lo probaseis en vuestros PCs, no deberia fallar, pero nunca se sabe :laugh: Originalmente posteado en: Código: http://cobein.com/wp/?p=559 Saludos :D Título: Re: [m][SNIPPET] IsUserAnAdmin? Publicado por: Psyke1 en 30 Julio 2010, 16:31 pm Si me funciona¡! :D
Tengo Win XP... Muy buena Kar! :-* :laugh: Aunque no entiendo esto :-[ : Citar Código
DoEvents¡! :P Título: Re: [m][SNIPPET] IsUserAnAdmin? Publicado por: Karcrack en 30 Julio 2010, 16:40 pm Claro, con mucho gusto :D
Primero, Que es un SID? Código: http://msdn.microsoft.com/en-us/library/aa379594(v=VS.85).aspx En este caso el SID que utilizamos es el de: "Esta en el grupo Administradores?" :xDhttp://msdn.microsoft.com/en-us/library/aa379597(VS.85).aspx Para utilizar el API CheckTokenMembership has de preparar el SID con (por ejemplo) el API ConvertStringSidToSid, estas conversiones son siempre constantes, es decir, tu podrias establecer directamente la estructura sin valerte de estas API de ayuda, a pesar de que Windows no lo recomienda.... El tamaño de la estructura SID es variable, pero en este caso ocuparia 16bytes (Es decir 2x8) cada Currency ocupa 8 bytes, asi que lo que he hecho ha sido definir la estructura en Currencies en vez de con Bytes,Integers y Longs, que es como deberia estar... Al API le da igual como lo haga, porque accede exactamente igual a la informacion, simplemente lo hago para acortar :D Espero haber sido claro, no se me da muy eso de redactar a mi :laugh: :laugh: Saludos ;) Título: Re: [m][SNIPPET] IsUserAnAdmin? Publicado por: raul338 en 30 Julio 2010, 16:42 pm Aunque no entiendo esto :-[ : Citar Código
Es la variable en memoria donde esta el flag si es admin o no?:..... .FAIL! :xD Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje. :¬¬ Título: Re: [m][SNIPPET] IsUserAnAdmin? Publicado por: Psyke1 en 30 Julio 2010, 16:44 pm Claro, con mucho gusto :D Gracias tio! ;-)Primero, Que es un SID? Código: http://msdn.microsoft.com/en-us/library/aa379594(v=VS.85).aspx En este caso el SID que utilizamos es el de: "Esta en el grupo Administradores?" :xDhttp://msdn.microsoft.com/en-us/library/aa379597(VS.85).aspx Para utilizar el API CheckTokenMembership has de preparar el SID con (por ejemplo) el API ConvertStringSidToSid, estas conversiones son siempre constantes, es decir, tu podrias establecer directamente la estructura sin valerte de estas API de ayuda, a pesar de que Windows no lo recomienda.... El tamaño de la estructura SID es variable, pero en este caso ocuparia 16bytes (Es decir 2x8) cada Currency ocupa 8 bytes, asi que lo que he hecho ha sido definir la estructura en Currencies en vez de con Bytes,Integers y Longs, que es como deberia estar... Al API le da igual como lo haga, porque accede exactamente igual a la informacion, simplemente lo hago para acortar :D Espero haber sido claro, no se me da muy eso de redactar a mi :laugh: :laugh: Saludos ;) Lo voy a mirar! ;) DoEvents¡! :P Título: Re: [m][SNIPPET] IsUserAnAdmin? Publicado por: Karcrack en 30 Julio 2010, 17:38 pm Ya ha sido probado en W$ 7 x86/x64
Resultado: Va de lujo :P |