# Ver presentación de repaso

--------------------

# Memorias compartidas
## Introducción a memoria
* https://www.jesusninoc.com/06/14/conocer-el-tamano-expresado-en-bytes-de-un-tipo-no-administrado-mediante-la-clase-marshal-en-powershell/
* https://www.jesusninoc.com/06/29/obtener-el-valor-de-una-variable-utilizando-otra-variable-mediante-la-direccion-del-primer-caracter-de-la-cadena-no-administrada-en-powershell-utilizando-la-clase-marshal/
* https://www.jesusninoc.com/06/29/obtener-valores-de-la-memoria-en-powershell-utilizando-la-clase-marshal/
* https://www.jesusninoc.com/06/30/copia-datos-de-una-matriz-de-caracteres-administrada-a-un-puntero-de-memoria-no-administrada-desde-powershell-utilizando-la-clase-marshal-funcionamiento-inseguro/
* https://www.jesusninoc.com/06/14/ver-credenciales-almacenados-mediante-la-clase-marshal-en-una-variable-con-get-credential-desde-powershell/

## Uso de las funciones ftok(), shmget(), shmat() y shmctl()
https://github.com/jesusninoc/ClasesPSP/blob/master/2017-10-24.md

## Programación de memorias compartidas en Linux
https://www.jesusninoc.com/2015/07/10/programacion-de-memorias-compartidas-en-linux/

## Utilizar zonas de memoria compartida en Linux mediante WSL desde PowerShell
https://www.jesusninoc.com/2018/06/25/utilizar-zonas-de-memoria-compartida-en-linux-mediante-wsl-desde-powershell/

## Relación con memoria
https://github.com/jesusninoc/ClasesPSP/blob/master/2017-10-12.md

## Volcado de memoria
https://github.com/jesusninoc/ClasesPSP/blob/master/2017-10-19.md

---------------------

# Ensamblador
## SPIM: A MIPS32 Simulator
https://github.com/jesusninoc/ClasesPSP/blob/master/2017-10-26.md

## Suma de números en ensamblador
https://github.com/jesusninoc/ClasesPSP/blob/master/2017-10-05.md

## Analizar con Cheat Engine un payload de ejecución de comandos arbitrarios para ejecutar PowerShell
https://www.jesusninoc.com/2017/03/20/analizar-con-cheat-engine-un-payload-de-ejecucion-de-comandos-arbitrarios-para-ejecutar-powershell/

---------------------

# Ktmutil
## Starts the Kernel Transaction Manager utility. If used without parameters, ktmutil displays available subcommands
```PowerShell
Ktmutil tm list
Ktmutil tm info
Ktmutil tx list
Ktmutil tx info
ktmutil tm info {f5a10f48-72be-11e5-8250-40167e1612ab}
Ktmutil list tms
```

----------------
----------------

# ¿Cómo va la entrega?

------------
------------

# Programación multiproceso:	
 -	Ejecutables. Procesos. Servicios.	
 -	Estados de un proceso.	
 -	Hilos.	
 -	Programación concurrente.	
 -	Programación paralela y distribuida.	
 -	Comunicación entre procesos.	
 -	Gestión de procesos.	
 -	Sincronización entre procesos.	
 -	Programación de aplicaciones multiproceso.	

# Conceptos:	
 - Señales	
 - Creación procesos Java	
 - Programación concurrente	
 - Programación paralela	
 - Memorias compartidas	
 - Semáforos	
 - Programación distribuida	

# Señales	
## Teoría	
### Types of signals	
http://www.yolinux.com/TUTORIALS/C++Signals.html	
### Lista de las señales disponibles	
http://manpages.ubuntu.com/manpages/cosmic/es/man7/signal.7.html	
### Chapter 12. Catching signals	
https://linux.die.net/Bash-Beginners-Guide/sect_12_01.html	
### signal	
http://man7.org/linux/man-pages/man2/signal.2.html	
### kill	
http://man7.org/linux/man-pages/man2/kill.2.html	
### pause	
http://man7.org/linux/man-pages/man2/pause.2.html	
## Ejercicios sobre señales	
### Enviar dos señales SIGUSR1 a un proceso hijo desde el padre	
https://github.com/mememiguelo/PSP/blob/master/C/Otros/sincronizar-1.c	
### Enviar señales entre un proceso padre y otro hijo que se ejecutan de forma síncrona	
https://github.com/mememiguelo/PSP/blob/master/C/Otros/sincronizar.c	

# Procesos en Java	
### Create operating system processes	
https://www.jesusninoc.com/08/29/create-operating-system-processes/	
### Create and destroy operating system processes	
https://www.jesusninoc.com/08/27/create-and-destroy-operating-system-processes/	
### Crear un proceso utilizando Runtime	
https://www.jesusninoc.com/08/26/crear-un-proceso-utilizando-runtime/	
### Crear un proceso utilizando ProcessBuilder	
https://www.jesusninoc.com/08/25/crear-un-proceso-utilizando-processbuilder/	
### Lanzar un programa del sistema operativo como argumento desde la línea de comandos	
https://www.jesusninoc.com/08/28/lanzar-un-programa-del-sistema-operativo-como-argumento-desde-la-linea-de-comandos/	
### Ejecutar y guardar el comando ‘arp’ utilizando ProcessBuilder	
https://www.jesusninoc.com/10/11/ejecutar-y-guardar-el-comando-arp-utilizando-processbuilder/	

# Programación concurrente	
- Memorias compartidas (ya visto)	
- Semáforos	
# Programación distribuida

--------
--------

# Programación multiproceso:	
 -	Ejecutables. Procesos. Servicios.	
 -	Estados de un proceso.	
 -	Hilos.	
 -	Programación concurrente.	
 -	Programación paralela y distribuida.	
 -	Comunicación entre procesos.	
 -	Gestión de procesos.	
 -	Sincronización entre procesos.	
 -	Programación de aplicaciones multiproceso.	

--------------	

# Práctica	
- Mostrar ejemplo de ejecución de proceso JAR (algo parecido a calculadora de DNI)	

--------------	
--------------	

# Programación multihilo:	
 -	Recursos compartidos por los hilos.	
 -	Estados de un hilo. Cambios de estado.	
 -	Elementos relacionados con la programación de hilos. Librerías y clases.	
 -	Gestión de hilos.	
 -	Sincronización de hilos.	
 -	Compartición de información entre hilos.	
 -	Programación de aplicaciones multihilo.	

--------------	

# Java	
## Oracle JDK 11 Documentation	
https://docs.oracle.com/en/java/javase/11/	

### Class Thread	
* https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Thread.html	
* https://docs.oracle.com/javase/10/docs/api/java/lang/Thread.html	
* https://docs.oracle.com/javase/9/docs/api/java/lang/Thread.html	
* https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html	
* http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html	

## Multiprocesos en Java: Como usar Hilos(Threads)	
http://panamahitek.com/multiprocesos-en-java-como-usar-hilosthreads/	

## Java Thread join	
https://www.journaldev.com/1024/java-thread-join-example	

----------------
----------------

# Ejemplo introducción
- Carrera de tortuga y liebre

--------------
--------------

# Programación multihilo:
 -	Recursos compartidos por los hilos.
 -	Estados de un hilo. Cambios de estado.
 -	Elementos relacionados con la programación de hilos. Librerías y clases.
 -	Gestión de hilos.
 -	Sincronización de hilos.
 -	Compartición de información entre hilos.
 -	Programación de aplicaciones multihilo.

--------------

# Java

## Java Thread: notify() and wait() examples
* https://www.programcreek.com/2009/02/notify-and-wait-example/
* https://www.tutorialspoint.com/java/java_thread_synchronization.htm

--------------

# C
## Uso de threads en C
https://www.driverlandia.com/programacion-c-avanzada-t3-uso-de-threads-en-c/

## How to include the command “wget” on my C source code?
https://stackoverflow.com/questions/15337932/how-to-include-the-command-wget-on-my-c-source-code
```C
#include <stdio.h>
#define BUFFLEN 2500

int main()
{
 char web_address[BUFFLEN] = "www.google.com"; 
 system("wget 'web_address' "); 
 return 0;
}
```

--------------

# Windows
## Win32_Thread class
https://msdn.microsoft.com/en-us/library/aa394494(v=vs.85).aspx

--------------

# WordPress
## Conocer la versión de un WordPress remotamente
https://www.jesusninoc.com/2016/01/23/conocer-la-version-de-un-wordpress-remotamente/

## WordPress to Android App using WP REST API Tutorial
https://www.simplifiedcoding.net/wordpress-to-android-app-tutorial/

--------------

# Google Dorks
## Obtener nuevos Google Dorks
http://www.jesusninoc.com/2015/12/01/obtener-nuevos-google-dorks/

```Google Dorks 
intext:"index of" .rar
intext:"index of" ".ZIP"
intext:"index of" "WHATSAPP"
intext:"index of" "backup"
intext:"index of" "Iphone"
intext:"index of" "WhatsApp"
```
