Autor
|
Tema: [m][SNIPPET] IsUserAnAdmin? (Leído 3,177 veces)
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
'ADVAPI32 Private Declare Function CheckTokenMembership Lib "ADVAPI32" (ByVal TokenHandle As Long, ByVal pSidToCheck As Long, ByRef IsMember As Boolean) As Long '--------------------------------------------------------------------------------------- ' Procedure : IsUserAnAdmin ' Author : Karcrack ' Date : 300710 ' Purpose : Check wether the user is in the Administrator Group ' TestedOn : Windows XP SP3 '--------------------------------------------------------------------------------------- ' Private Function IsUserAnAdmin() As Boolean Dim SID(1) As Currency 'Hardcoded SID SID(0) = 36028797018964.0193@: SID(1) = 233646220.9056@ Call CheckTokenMembership(0, VarPtr(SID(0)), IsUserAnAdmin) End Function
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@ADVAPI32Como 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 Originalmente posteado en:http://cobein.com/wp/?p=559 Saludos
|
|
« Última modificación: 20 Noviembre 2011, 15:30 pm por Karcrack »
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Si me funciona¡! Tengo Win XP... Muy buena Kar! Aunque no entiendo esto : 'Hardcoded SID SID(0) = 36028797018964.0193@: SID(1) = 233646220.9056@
Me podrias explicar un poco¿? DoEvents¡!
|
|
« Última modificación: 30 Julio 2010, 16:32 pm por *PsYkE1* »
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Claro, con mucho gusto Primero, Que es un SID? http://msdn.microsoft.com/en-us/library/aa379594(v=VS.85).aspx http://msdn.microsoft.com/en-us/library/aa379597(VS.85).aspx En este caso el SID que utilizamos es el de: "Esta en el grupo Administradores?" 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 Espero haber sido claro, no se me da muy eso de redactar a mi Saludos
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Aunque no entiendo esto : 'Hardcoded SID SID(0) = 36028797018964.0193@: SID(1) = 233646220.9056@
Me podrias explicar un poco¿? Es la variable en memoria donde esta el flag si es admin o no?:..... .FAIL! Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
|
|
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Claro, con mucho gusto Primero, Que es un SID? http://msdn.microsoft.com/en-us/library/aa379594(v=VS.85).aspx http://msdn.microsoft.com/en-us/library/aa379597(VS.85).aspx En este caso el SID que utilizamos es el de: "Esta en el grupo Administradores?" 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 Espero haber sido claro, no se me da muy eso de redactar a mi Saludos Gracias tio! Lo voy a mirar! DoEvents¡!
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Ya ha sido probado en W$ 7 x86/x64 Resultado: Va de lujo
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[FASM-SRC]IsUserAnAdmin [Estrenando SubForo :P]
ASM
|
Karcrack
|
4
|
3,716
|
30 Mayo 2009, 23:36 pm
por Eternal Idol
|
|
|
[Snippet]Suicide
Programación Visual Basic
|
Mi4night
|
1
|
1,988
|
27 Julio 2010, 10:48 am
por fary
|
|
|
[SNIPPET] IsPCode()?
Programación Visual Basic
|
Karcrack
|
0
|
1,425
|
3 Septiembre 2010, 18:01 pm
por Karcrack
|
|
|
[SNIPPET][VB6] WhereAmI, thisexe, GetMyPath...
Programación Visual Basic
|
Karcrack
|
4
|
3,108
|
11 Marzo 2014, 03:42 am
por LeandroA
|
|
|
Ayuda .cpp Snippet
Programación C/C++
|
alexlopezcifuentes
|
1
|
1,700
|
6 Marzo 2015, 11:11 am
por eferion
|
|