| 
	
		|  Autor | Tema: [m][SNIPPET] IsUserAnAdmin?  (Leído 3,375 veces) |  
	| 
			| 
					
						| Karcrack 
								       
								
								 Desconectado 
								Mensajes: 2.416
								
								 
								Se siente observado ¬¬'
								
								
								
								
								
								   | 
 
'ADVAPI32Private 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@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   Originalmente posteado en: http://cobein.com/wp/?p=559Saludos   
 
 |  
						| 
								|  |  
								| « Ú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).aspxhttp://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).aspxhttp://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/x64Resultado:  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,897 |  30 Mayo 2009, 23:36 pm por Eternal Idol
 |  
						|   |   | [Snippet]Suicide Programación Visual Basic
 | Mi4night | 1 | 2,227 |  27 Julio 2010, 10:48 am por fary
 |  
						|   |   | [SNIPPET] IsPCode()? Programación Visual Basic
 | Karcrack | 0 | 1,554 |  3 Septiembre 2010, 18:01 pm por Karcrack
 |  
						|   |   | [SNIPPET][VB6] WhereAmI, thisexe, GetMyPath... Programación Visual Basic
 | Karcrack | 4 | 3,312 |  11 Marzo 2014, 03:42 am por LeandroA
 |  
						|   |   | Ayuda .cpp Snippet Programación C/C++
 | alexlopezcifuentes | 1 | 1,945 |  6 Marzo 2015, 11:11 am por eferion
 |    |