FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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... |
#2
|
||||
|
||||
Hola, ¿qué hace tu programa, para qué sirve?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
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... |
#4
|
|||
|
|||
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!! |
#5
|
||||
|
||||
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. |
#6
|
|||
|
|||
Gracias Escafandra. La página no existe...
|
#7
|
||||
|
||||
Creo que este esto.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#8
|
||||
|
||||
Si existe pero está en un foro restringido.
Cita:
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. |
#9
|
||||
|
||||
Entonces es como si no estuviese
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#10
|
||||
|
||||
Tienes razón. No me di cuenta al poner el enlace.
Saludos. |
#11
|
||||
|
||||
escafandra,
Cita:
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 19:10:41. |
#12
|
||||
|
||||
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. |
#13
|
||||
|
||||
escafandra,
Nelson. |
|
|
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 12:44:23 |
Acceso a dll 32 bit desde aplicacion 64 bit | JF Sebastian | Varios | 0 | 30-12-2009 00:11:26 |
Problemas con Memoria Externa | santi33a | Windows | 3 | 10-01-2007 00:43:55 |
Proteger archivo dentro de una memoria USB | tiel | Varios | 6 | 04-07-2005 22:10:49 |
Usar una aplicación externa desde Delphi | erika.martinez | Varios | 9 | 14-04-2005 19:10:22 |
|