Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-07-2015
frangarrob frangarrob is offline
Miembro
 
Registrado: Aug 2012
Posts: 13
Poder: 0
frangarrob Va por buen camino
Proteger acceso memoria desde aplicación externa

Hola, estoy desarrollando una aplicación en Delphi7 en la que se muestran una serie de animaciones en Flash. La cuestión, es que estoy intentando proteger esas animaciones. Estoy trabajando con el componente f-in-box que he adquirido recientemente, con el que es posible cargar las animaciones desde TMemoryStream, pero resulta que es relativamente sencillo hacer un dump de las animaciones, cuando están cargadas y desencriptadas en la memoria... hay bastantes tutoriales y aplicaciones por internet para hacerlo.

Lo que quiero hacer son 2 cosas:
- Por un lado, todos estos programas que he visto, necesitan identificar el proceso para buscar los SWF en la memoria asignada a él, con lo que si fuera posible anular la función GetWindowThreadProcessId y otras funciones usadas por estos programas para identificar mi aplicación, se complicaría su funcionamiento... incluso si se pudiera ocultar el PID de mi aplicación...

- La segunda cosa podría ser anular y/o detectar ReadMemoryProcess (y otras funciones usadas para rastrear la memoria)... de forma que cuando una aplicación externa intente leer en la memoria usada por mi aplicación, para identificar los archivos SWF, se pueda forzar el cierre.

No sé por dónde empezar...
Responder Con Cita
  #2  
Antiguo 26-07-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.584
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, ¿qué hace tu programa, para qué sirve?
Responder Con Cita
  #3  
Antiguo 26-07-2015
frangarrob frangarrob is offline
Miembro
 
Registrado: Aug 2012
Posts: 13
Poder: 0
frangarrob Va por buen camino
Lo que he comentado, va mostrando animaciones SWF de un curso multimedia, mediante el componente f-in-box.

Quiero evitar que roben las animaciones rastreando la memoria RAM...
Responder Con Cita
  #4  
Antiguo 29-07-2015
frangarrob frangarrob is offline
Miembro
 
Registrado: Aug 2012
Posts: 13
Poder: 0
frangarrob Va por buen camino
Investigando...

Se podría hacer un hook de la función ZwOpenProcess de las APIS de Windows, haciendo que devuelva STATUS_ACCESS_DENIED si el proceso es el mío, que es el que quiero proteger.

¿Alguien sabe cómo implementarlo?

Gracias!!
Responder Con Cita
  #5  
Antiguo 01-08-2015
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: Nov 2007
Posts: 1.937
Poder: 13
escafandra Va camino a la famaescafandra Va camino a la fama
Para hacer un Hook a ZwOpenProcess debes hacerlo desde el Kernel, es decir, escribir un driver y éste depende del S.O. que uses. ZwOpenProcess. Un Hook al mismo Kernel.



Saludos.
Responder Con Cita
  #6  
Antiguo 01-08-2015
frangarrob frangarrob is offline
Miembro
 
Registrado: Aug 2012
Posts: 13
Poder: 0
frangarrob Va por buen camino
Gracias Escafandra. La página no existe...
Responder Con Cita
  #7  
Antiguo 01-08-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.584
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que este esto.
Responder Con Cita
  #8  
Antiguo 02-08-2015
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: Nov 2007
Posts: 1.937
Poder: 13
escafandra Va camino a la famaescafandra Va camino a la fama
Cita:
Empezado por frangarrob Ver Mensaje
Gracias Escafandra. La página no existe...
Si existe pero está en un foro restringido.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Creo que este esto.
Ese tutorial no es en modo Kernel. Sirve para un hook a una API no Kernel (las APIs del Kernel comienzan con Zw) inyectando código en un proceso.

Desde un driver se puede hookear una API del Ring 0 y afectaría a cualquier proceso que se ejecute sin necesidad de inyecciones. La dificultad estriba en escribir el driver para cada versión de Windows. Normalmente requiere escrirse en C.


Saludos.
Responder Con Cita
  #9  
Antiguo 02-08-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.584
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por escafandra Ver Mensaje
Si existe pero está en un foro restringido.
Entonces es como si no estuviese
Responder Con Cita
  #10  
Antiguo 02-08-2015
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: Nov 2007
Posts: 1.937
Poder: 13
escafandra Va camino a la famaescafandra Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Entonces es como si no estuviese
Tienes razón. No me di cuenta al poner el enlace.

Saludos.
Responder Con Cita
  #11  
Antiguo 02-08-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: Feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 15
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
escafandra,

Cita:
Empezado por escafandra
...Si existe pero está en un foro restringido...No me di cuenta al poner el enlace...


Pregunto: ¿Se puede publicar dicho código en un foro público?

Saludos,

Nelson.

Última edición por nlsgarcia fecha: 02-08-2015 a las 18:10:41.
Responder Con Cita
  #12  
Antiguo 04-08-2015
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: Nov 2007
Posts: 1.937
Poder: 13
escafandra Va camino a la famaescafandra Va camino a la fama
Cita:
Empezado por nlsgarcia Ver Mensaje
Pregunto: ¿Se puede publicar dicho código en un foro público?
No creo que se deba publicar libremente ese código por varios motivos. Forma parte del foro Platino de DA y es parte de su exclusividad. Por otro lado, quizás más importante y motivo de estar en un foro restringido, es que técnicamente puede ser considerado como un rootkit aunque no malicioso, y así lo detectaron los antivirus hasta que añadí un sistema para evitarlos. En resumen, se trata de un código que en malas manos puede hacer daño y servir para ocultar procesos y protegerlos del mismo S.O.

Por otra parte, el objetivo de este tema puede ser solucionado con un Hook a la API tradicional con inyección de código como apuntaba Casimiro Notevi, aunque requerirá inyectar todos los procesos. Para esto es necesario realizar un Hook a la API CreateProcessInternalW para que se encargue de inyectar en cada nuevo proceso creado.

En cualquier caso he de decir que si se trata de un S.O. de 64 bits, la inyección debe ser también con código compilado a 64 bits. Esto requiere, quizás, tener versiones preparadas para 32 y 64 bits, según el entorno que se quiera abarcar.


Saludos.
Responder Con Cita
  #13  
Antiguo 04-08-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: Feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 15
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
escafandra,



Nelson.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
abrir aplicación externa desde delphi y detectar su cierre petete2008 API de Windows 2 10-02-2012 11:44:23
Acceso a dll 32 bit desde aplicacion 64 bit JF Sebastian Varios 0 29-12-2009 23:11:26
Problemas con Memoria Externa santi33a Windows 3 09-01-2007 23:43:55
Proteger archivo dentro de una memoria USB tiel Varios 6 04-07-2005 21:10:49
Usar una aplicación externa desde Delphi erika.martinez Varios 9 14-04-2005 18:10:22


La franja horaria es GMT +2. Ahora son las 00:21:23.


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