se me ocurrio una forma de compartir y que ademas que algunos se inicien en delphi
posteo este source con errores echos a proposito

Mostrar/Ocultar

es una consola que "ejecutada como administrador" en windows 7 (solo en este contexto) deshabilita uac desde el registro "

( hize este codigo en media hora buscando las referencias en google)

la tarea es remplazar las x con los valores correctos y
hacer que la consola sea invisible(esta indicado en el code )

osea que el ejecutable final desactivara uac en modo invisible al usuario
los interesados me envian por mensaje privado el codigo final (con todas las correcciones que les pido)
pegado en un bloc de notas y a cambio por su interes en el tema, les voy a dar
"uac bypass.exe"
al que solamente deberan agregarle como recurso (los que modean saben como)
este ejecutable que ustedes crearon , quedando totalmente funcional, para que al ser ejecutado pondra a dormir uac desde el registro(el reinicio corre por su cuenta,) la herramienta esta pensada para un
pc ya controlado remotamente
el limite de tiempo de entrega es el 6 de diciembre de 2013
los codigos con errores se descartan (solo hay una posibilidad, ya que no es un codigo complejo)
posteen su dudas referidas al tema , no a soluciones del codigo,y por mp me envian el bloc de notas con su codigo
saludos y digan que les parece la idea.
paresco malo ,pero soy bueno
el programa que hize al ejecutarse verifica si la sesion en donde se ejecuta es de administrador y si no es asi se cierra.
en caso de ejecutarse en un entorno de sesion elevado extrae el ejecutable que esta en esta en este post y lo ejecuta como administrador sin
preguntar nada (estoy viendo la posibilidad de darle compatibilidad con 64 bit
por el momento solo funciona en 32)
saludos pink, metal
paresco malo ,pero soy bueno
Algo así?
program Project1;

{$APPTYPE GUI}

uses
  Winapi.Windows;

Function ExeIsAdmin: bool;
var
  Dir: array [0 .. MAX_PATH] of Char;
  F: THandle;
begin
  Result := False;
  GetSystemDirectory(Dir, MAX_PATH);
  F := CreateFile(PChar(Dir + '\hola.txt'), GENERIC_WRITE, FILE_SHARE_READ, nil,
    OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
  if F <> INVALID_HANDLE_VALUE then
  begin
    Result := True;
    CloseHandle(F);
    DeleteFile(PChar(Dir + '\hola.txt'));
  end;
end;

begin
  if ExeIsAdmin then
  begin
    { Aquí hacemos lo que queramos }
  end;

end.
Saludos.
UDTools.net
GitHub: https://github.com/MetalUDT
uso esta funcion que la saque de stackoverflow y de un codigo de snify
(forista de ic0de)que publico este año

Código: Seleccionar todo

function CheckTokenMembership(TokenHandle: THandle; SidToCheck: PSID; var IsMember: BOOL): BOOL; stdcall; external advapi32;
   //verifica  permiso para ejecutar
function IsUserElevatedAdmin : Bool;
const
  SECURITY_NT_AUTHORITY       : TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5));
  SECURITY_BUILTIN_DOMAIN_RID = $00000020;
  DOMAIN_ALIAS_RID_ADMINS     = $00000220;
var
  SecurityIdentifier          : PSID;
begin
   if not(AllocateAndInitializeSid (SECURITY_NT_AUTHORITY, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, SecurityIdentifier)) then exit(false);
   if (not(CheckTokenMembership(0, SecurityIdentifier, result))) then result := FALSE;
   FreeSid(SecurityIdentifier);
end;

begin

var
 VersionInfo : OSVERSIONINFO;

begin 

try
//aca deteccion Windows 7, 8:   y si el usuario es administrador
    VersionInfo.dwOSVersionInfoSize := sizeof(OSVERSIONINFO);
  GetVersionEx(VersionInfo);
  
  if ( (VersionInfo.dwMajorVersion = 6) and ( (VersionInfo.dwMinorVersion = 1) or (VersionInfo.dwMinorVersion = 2) ) and (not(IsUserElevatedAdmin)) ) then begin
metal si no te molesta, el viernes 6 entrego el programa a todos los que mandaron mp (recien conecte el disco con win7 y estoy revisando el codigo)
saludos
paresco malo ,pero soy bueno
Responder

Volver a “Delphi”