Ensamblador - Direcciones de memoria de IO del SO de Windows 10

 
Vista:
Imágen de perfil de Rene
Val: 35
Ha mantenido su posición en Ensamblador (en relación al último mes)
Gráfica de Ensamblador

Direcciones de memoria de IO del SO de Windows 10

Publicado por Rene (14 intervenciones) el 08/02/2020 02:13:08
Introducción: En 1982 descubrí unos teoremas que me permitieron hacer un detector de alteraciones en cualquier fichero (cualquier tipo de virus) y tambien cumplía con esta premisa: Cuáles son las dos condiciones necesarias y suficientes para que un MALWARE, HACKER, ESPIA o cualquiera tenga acceso a tu PC ?

1. La primera que alcance la memoria. Todo programa para ejecutarse le tiene que hacer al SO una petición para que el SO le reserve memoria y lo ubique; bien para hacer esto el SO contaba (en MS-Dos) con una dirección en memoria que te remitía a un pequeño programa donde se procesaba la petición (en memoria), luego si conozco esa dirección de memoria puedo atajar las peticiones de acceso a memoria.

2. La segunda es que después de que un programa (malo o bueno) alcance la memoria (se ejecute) va a leer/escribir del disco duro, esta opción también se encontraba en la tabla de direcciones de acceso a la parte IO del SO.

Yo lo sabía en 1992, pero han pasado los años y no seguí el curso de desarrollo. Ahora quiero hacer un programa de protección (Anti-Malware, Anti-Hacker, Anti-Espía) y necesito esas dos direcciones, como llegar a ellas. Si alguien quiere ayudarme y también participar estoy dispuesto a compartir mis ideas al respecto y hacer el programa que se asombrarán de su sencillez y adios al FireWare, los Antivirus y la molestia de actualizarlos, en el PC no entra nadie.

Muchas gracias por su atención

René Facio
Lic. Matemáticas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Direcciones de memoria de IO del SO de Windows 10

Publicado por Nacho (81 intervenciones) el 12/02/2020 15:44:28
Sí, es sencillo, pero tampoco es así.

En Windows no existen direcciones de memoria fijas. Existen unas dlls que se cargan en memoria con offsetts a funciones. En manuales dicen que cuando Windows carga un proceso llama a VirtualAlloc, aunque llamará más bien a la función de núcleo ExAllocatePoolWithTag. Para acceceder a los ficheros, cualquier proceso, servicio, driver, lo que sea, llama a las también funciones de núcleo ZwCreateFile, ZwWriteFile o ZwReadFile.

Es perfectamente posible interceptar las llamadas a esas funciones o a cualquiera. Se hace con el procedimento llamado IAT hooking o mejor inline hooking. Microsoft distribuye una librería para hacerlo. Lo usa cualquier antivirus o firewall. Puedes ver qué funciones tienes ya mismo hookeadas con un antirootkit.

El problema no es impedir que un programa se cargue en memoria. Lo complicado es saber cuál programa es bueno y cuál no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Rene
Val: 35
Ha mantenido su posición en Ensamblador (en relación al último mes)
Gráfica de Ensamblador

Direcciones de memoria de IO del SO de Windows 10

Publicado por Rene (14 intervenciones) el 12/02/2020 21:03:21
Muchísimas gracias, voy a comenzar a buscar, estudiar y probar estas funciones estas funciones.

Con respecto a saber cuál programa es bueno y cuál no, eso lo tengo resuelto, a ver un adelanto:
El soft Nautilus está fundamentado en los dos siguientes teoremas básicos. (No se ofrece la demostración).
Sea cualquiera entidad medible “f” con parámetros x ∈ R
De esta manera podemos definir una función de cualquier entidad “f” de la siguiente manera:
AP = (f,x)
AP es un anillo.

Teorema 1: Teorema Básico.



Sean dos entidades medibles “f” y “g”, con parámetros x, y; diremos que ambas son iguales si y solo si
x(f) ≡ y(g)

Teorema 2: Teorema de Clases.</h4>



El valor de los parámetros x pueden formarse de infinitas maneras.

Corolario



Si los parametros x pueden seleccionarse de infinitas maneras y AP es un anillo, entonces existen infinitas maneras de seleccionar los funcionales AP.

Ahora imagina que puedo hacer un Cubrimiento de todo el PC con este funcional y hago una lista de todas entidades f contenidas en la PC con sus parametros, es decir AP(f,x), si un programa hace una petición de memoria lo intercepto y lo confronto con mi lista, entonces:
Está? -> pasa
No está? -> tumbalo !!!
así de sencillo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rene
Val: 35
Ha mantenido su posición en Ensamblador (en relación al último mes)
Gráfica de Ensamblador

Direcciones de memoria de IO del SO de Windows 10

Publicado por Rene (14 intervenciones) el 12/02/2020 21:22:09
Ahora la segunda parte: La condición SUFICIENTE

Supón que instalas un programa y éste tenga un "CABALLO DE TROYA" oculto, simplemente el programa que ya esta registrado en la listica pasa y alcanza la memoria pero; para divulgarse necesita leer/escribir en el HD, la pregunta es:

Qué lee ?, Dónde escribe ?

Las conclusiones se desprenden solitas. Además como debes saber el SO y muchos Soft tiene HUECOS y RUTINAS por donde JAMÄS pasan pero tienen lleno los huecos con bytes, para qué ??? Algunos dirán, para el futuro !!! JAJAJA.

CONCLUSIONES

Además de hacer un buen Depurador, puede servir para la "Certificación de Soft Originales" y sustituir las tan usadas funciones Hash que está demostrado que producen colisiones además de que han sido hackeadas, con Nautilus no hay hacker que valga, la garantia de Nautilus es de por vida.

Te entusiasmas ???

PD: Muchas, muchas gracias por el gran adelanto que me hicistes, estoy de lo mas contento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar