Bienvenido a Tecnohackers

Tecnohackers » Programacion » Area de Programacion » Programacion a Bajo Nivel. APIs, Hooking, ASM, C/C++, etc.
 » 

EsUsuarioUnAdministrador[Typical]



Autor Tema: EsUsuarioUnAdministrador[Typical]  (Leído 851 veces)

Desconectado P4|3L0

  • Asiduo
  • *
  • Mensajes: 75
  • TecnoHacker un nuevo proyecto.
    • http://www.tecnohacker.com
EsUsuarioUnAdministrador[Typical]
« en: Diciembre 29, 2009, 05:03:33 pm »
Pues ya que esto lo había hecho para VB, ahora tocaba crear la misma función pero para C.

El Code es sencillo y solo usando la libreria windows, consigo ver los privilegios del usuario.

la funcion que lo consigue se llama iuaa(IsUserAnAdmin) y lo que hace es cargar la libreria advapi32 en caso de que no la cargue o de que no la inicialice, la funcion iuaa no retornara y no sera administrador.

El código:
Código: You are not allowed to view links. Register or Login
#include <windows.h>
typedef BOOL( __stdcall *CTM ) ( HANDLE, PSID, PBOOL );
CTM CheckTokenMembership;

int IUAA()
{
     int llave, dc;
     PSID administrador;
     SID_IDENTIFIER_AUTHORITY sAuthority = SECURITY_NT_AUTHORITY;

     HMODULE advapilibreria = LoadLibrary( "advapi32" );
     if( advapilibreria != NULL )
     {
         CheckTokenMembership = (CTM) GetProcAddress( advapilibreria, "CheckTokenMembership" );
         if( CheckTokenMembership != NULL )
         {
             llave = AllocateAndInitializeSid( &sAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &administrador );
             if( llave == 1 )
             {
                 dc = CheckTokenMembership( NULL, administrador, &llave );
                 if( dc == 0 ) {
                     llave = 1;
                }}}}
return( llave );
}

int main()
{
    if( IUAA( ) == 1 ) {
        MessageBox(NULL,TEXT("Administrador"),TEXT("¿El usuario es un admin?"),MB_ICONWARNING | MB_OK );
    } else {
         MessageBox(NULL,TEXT("NO Administrador"),TEXT("¿El usuario es un admin?"),MB_ICONWARNING | MB_OK );
    }
    return( 0 );
}

Me he basado en dos paginas(principalmente) para idear esto:

You are not allowed to view links. Register or Login y You are not allowed to view links. Register or Login

Y luego he buscado el modo de cargar una libreria, y sacar los errores.

Espero que os sirva.




Tags:
Tags:

 


SMF 2.0.19 | SMF © 2016, Simple Machines
Paginas Afiliadas
Twitter - FaceBook - Daraxblog
Designed by Smf Personal