Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #15  
Antiguo 09-11-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por dec Ver Mensaje
O sea, que, curiosamente, si después de ejecutar la función de marras, compruebo si existe la DLL, en efecto, parece que la comprobación es correcta y así el programa se cierra. Pero, si no compruebo la existencia de la DLL el programa sigue adelante sin problemas, esto es, cargando la DLL "shfolder.dll" que se encuentra en el directorio de la aplicación y no en el directorio del sistema...

La verdad es que esto desconcierta a cualquiera... esto es, se supone que usando la función "SetDefaultDllDirectories" estamos indicando a Windows que busque las DLL en el directorio del sistema, donde, en efecto, se encuentra una DLL "shfolder.dll", pero, aún y con esas la DLL que copiamos en el directorio del ejecutable del programa parece seguir cargándose antes sin problemas...
Vamos a ver si no digo una burrada. Yo creo que no es sorpresivo este comportamiento: cuando tú compruebas que la dll está en el directorio de la aplicación y cierras ésta, lo que estás haciendo es matar un problema que ya estaba presente, es decir, la dll maliciosa ya se había cargado. ¿Por qué? Porque desde el momento en que pones

Código Delphi [-]
uses Winapi.SHFolder.pas;

le indicas a tu aplicación que incluya la dll implícitamente, esto es, añade código que carga automáticamente la dll muy posiblemente antes de que cualquier código tuyo tenga la oportunidad de detenerlo o decirle dónde buscar.

Yo creo que lo más seguro sería, en la medida de lo posible, que te olvides de esa unidad y la hagas tú mismo (creo que son pocas funciones). Esto significa que uses tú mismo LoadLibrary y GetProcAddress para cargar la biblioteca exactamente de dónde la quieres e importar las funciones.

De todas formas, no me queda claro cómo esto te puede servir. Vamos a suponer que logras forzar la carga del shfolder.dll que está en el sistema. Pero estamos hablando del sistema del cracker. ¿Qué le impide al cracker reemplazar aunque sea temporalmente la bilbioteca del sistema, localizada en su directorio de sistema por la suya propia?

LineComment Saludos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como evitar q se ejecute el Explorer.exe ing_arismendy API de Windows 3 02-02-2009 06:13:08
Como evitar que una apicacion se ejecute dos veces. manitoba C++ Builder 4 28-05-2007 16:50:04
Como evitar que se ejecute el msn JODELSA Varios 7 26-12-2005 14:17:22
Cualquier cosa me puede servir cmgenny Conexión con bases de datos 1 02-07-2003 22:27:24


La franja horaria es GMT +2. Ahora son las 08:56:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi