Inicio Blog Página 16

El precio de las CPUs AMD Ryzen baja notablemente

0

Con la llegada de los procesadores Intel Core de 8ª Generación, más conocidos como Coffee Lake, los procesadores AMD Ryzen ya tienen un rival real gracias a la incorporación de modelos con 6 núcleos, y parece que AMD ha movido ficha para ajustar el precio de sus modelos para hacerlos más competitivos en términos de rendimiento/precio.

Si nos limitamos al mercado español, ya podemos apreciar notables rebajas de precio. Si por ejemplo, el AMD Ryzen 7 1700X de 8 núcleos y 16 hilos a una frecuencia Base/Turbo de 3.40/3.80 GHz salía a la venta a mitades del mes de agosto a un precio de 399 euros, a día de hoy lo podemos encontrar por 309 euros. En julio el AMD Ryzen 5 1500X (4 núcleos + 8 hilos @ 3.50/3.70 GHz) salía a la venta a un precio de 209 euros, costando a día de hoy 179 euros. Curiosamente, las CPUs más populares, como los Ryzen 5 1600/X han disminuido muy poco el precio, unos 10 euros, mientras que la gama de entrada se ha abaratado notablemente, pudiendo acceder a un AMD Ryzen 3 1200 (4x núcleos + 4x hilos @ 3.10/3.40 GHz) por un precio que ronda los 100 euros.

Obviamente, estaba bajada de precio busca seguir incentivando las ventas, teniendo AMD la ventaja de que el stock de CPUs Intel Coffee Lake es prácticamente inexistente y se espera que la situación no cambie hasta principios de 2018, esperando que para ese entonces ya se hayan filtrado detalles sobre las futuras CPUs AMD Ryzen 2, de esta forma AMD buscará comenzar a eclipsar la disponibilidad de stock de su eterno rival junto a nuevas bajadas de precio, ya que hay que recordar que será en febrero cuando lleguen estas CPUs estrenando un nuevo proceso de fabricación de 12nm.

Fuente

El avión secreto del Pentágono aterriza después de pasar dos años en el espacio

0

El X-37B ha estado en órbita más de 700 días haciendo pruebas de contenido clasificado

https://www.youtube.com/watch?v=De30IsdhAAQ

El avión espacial experimental X-37B de la Fuerza Aérea de Estados Unidos (USAF) aterrizó este domingo en el Centro Espacial Kennedy, en Florida, después de haber completado una misión clasificada que ha durado más de dos años, según las autoridades militares.

El X-37B, un aparato no tripulado que tiene el aspecto de una pequeña lanzadera espacial, tomó tierra a las 13.47 de este domingo en una pista que antes era usada por las lanzaderas espaciales, tal como ha informado la USAF.

El avión espacial, construido por Boeing, fue lanzado en mayo de 2015 desde Cabo Cañaveral a bordo de un cohete Atlas 5, construido por la compañía United Launch Alliance, socia de Lockheed Martin Corp y Boeing.

El X-37B, uno de los dos que hay en la flota de la USAF, llevó a cabo experimentos no especificados durante los más de 700 días que estuvo en órbita. Ha sido la cuarta misión y la más larga del programa secreto, organizado por la Oficina de Capacidades Rápidas de la Fuerza Aérea.

Estas naves orbitales «ponen a prueba tecnologías para reducir riesgos, experimentar y probar prototipos de vehículos espaciales reutilizables», ha explicado la USAF, sin dar más detalles. El coste de programa también es clasificado.

Misión de inteligencia

La «Secure World Foundation», un grupo que promueve la exploración pacífica del espacio ha dicho que el secretismo que rodea al X-37B sugiere que a bordo de la nave se están probando programas relacionados con inteligencia.

Estas naves miden nueve metros de largo y tienen una envergadura de 4,6 metros, lo que les hace ser cuatro veces más pequeños que los transbordadores espaciales ya retirados por la NASA.

El X-37B, también conocida como Vehículo Orbital de Pruebas (OTV, en inglés), voló por primera vez en 2010 y volvió a Tierra después de ocho meses. Una segunda misión, que duró 15 meses, fue lanzada en marzo de 2011, mientras que una tercera se lanzó en diciembre de 2012 y volvió después de 22 meses.

El aterrizaje de este domingo ha sido el primero del X-37B en Florida. Los tres anteriores han tenido lugar en la base de la Fuerza Aérea en Vandenberg, California. La USAF cambió la localización del programa en 2014, aprovechando dos de los hangares para transbordadores de la NASA.

La USAF pretende lanzar la quinta misión del X-37B desde la estación que tiene en Cabo Cañaveral, al sur del Centro Espacial Kennedy, este año.

Fuente

Detienen la propagación del ransomware Wanna Cry. Prevención del mismo [Guía]

0

Un experto en seguridad se ha convertido en un “héroe accidental” tras gastar unos pocos dólares y registrar un dominio inexistente, que hace que el ransomware WannaCry deje de extenderse. Vió que el malware tenía codificadas consultas a un dominio muy largo, que no estaba registrado Si WannaCry ve que ese dominio está activo, deja de propagarse. Aparentemente, los creadores del malware habían creado este interruptor para poder detener su avance. Cisco ha confirmado que la extensión se ha detenido por este descubrimiento. Microsoft ha decidido parchear versiones sin soporte de Windows por la gravedad del asunto.

Durante las últimas horas, un malware de secuestro denominado WannaCry afectó a muchas organizaciones de todo el mundo como Telefónica de España, FedEx de Estados Unidos o el Servicio Nacional de Salud (NHS) del Reino Unido, donde las computadoras del hospital comenzaron a mostrar un mensaje de rescate de $ 300 de bitcoin. También se confirma que Nissan en Sunderland, la mayor fábrica de automóviles del Reino Unido.

Ahora, un “héroe accidental” ha interrumpido la propagación global del ransomware, simplemente gastando unos pocos dólares registrando un nombre de dominio al que el malware hace una solicitud.

Este hombre, al parecer un investigador de  ciberseguridad de 22 años del Reino Unido @malwaretechblog, encontró que el interruptor fue codificado en el ransomware “en caso de que el creador quisiera detener su propagación. Esto se hizo a través de un nombre de dominio muy largo que el malware tuvo que conectarse (muy similar a buscar cualquier sitio web). Si la conexión es correcta, y muestra un dominio en vivo, el ‘kill switch’ funciona, se apaga inmediatamente y se detiene la propagación del ransomware. (del inglés ransom, ‘rescate’, y ware, por software)

Warren Mercer (líder de seguridad técnica en Cisco), confirmó que las infecciones por WannaCry / WanaDecrpt0r han bajado debido al descubrimiento de @MalwareTechBlog

El dominio es una dirección dot-com, formada por una larga cadena de letras y números gobbledygook, que termina en ‘gwea.com’. De acuerdo con TheDailyBeast, @MalwareTechBlog vio que el dominio no estaba registrado y decidió comprarlo en NameCheap.com por sólo 10,69 dólares. Luego, lo señaló en un servidor de ‘sumidero’ en California, con la intención de recolectar información sobre el malware. De repente, vio miles de conexiones por segundo.

Sin embargo, se advierte sobre un nuevo hilo que viene. “Hay una posibilidad muy probable que van a desvelar una nueva versión de la ransonware para comenzar de nuevo. Si la gente no repara sus computadoras, volverá a ocurrir “.

Los investigadores de Cisco Umbrella observaron por primera vez las solicitudes de uno de los dominios de killswitch de WannaCry (iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea Com) a partir de las 07:24 UTC, luego aumentando a un pico de poco más de 1.400 casi 10 horas más tarde.

iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com

La carga útil (Payload) de propagación WannaCry contiene un dominio previamente no registrado, la ejecución falla ahora que el dominio ha sido eliminado (skinhole)

API InternetOpenUrlA():

La subrutina anterior intenta un HTTP GET a este dominio y, si falla, continúa llevando a cabo la infección. Sin embargo, si tiene éxito, la subrutina sale. El dominio está registrado en un sumidero bien conocido, lo que efectivamente hace que esta muestra termine su actividad maliciosa.

La amenaza crea un servicio denominado mssecsvc2.0, cuya función es explotar la vulnerabilidad de SMB en otros equipos accesibles desde el sistema infectado:

Nombre del Servicio: mssecsvc2.0
Descripción del servicio: (Microsoft Security Center (2.0) Service)
Parámetros de servicio: “-m security”

Detalles criptográficos

    • encrypted via AES-128-CBC (custom implementation in the binary)
    • AES key generated with a CSPRNG, CryptGenRandom
    • AES key is encrypted by RSA-2048 (windows RSA implementation)
    • https://haxx.in/key1.bin (the ransomware pubkey, used to encrypt the aes keys)
    • https://haxx.in/key2.bin (the dll decryption privkey) the CryptImportKey() rsa key blob dumped from the DLL by blasty.

 

Algunos strings interesantes del binario

BAYEGANSRV\administrator Smile465666SA wanna18@hotmail.com

Contraseña usada para descomprimir el dropper:

WNcry@2ol7

Microsoft publica una actualización urgente contra WannaCrypt para Windows XP y otras versiones sin soporte

Microsoft publica el parche de seguridad para Windows XP contra WannaCrypt, el ransomware. Una situación delicada como esta ha requerido una acción ‘inusual’ como la de desarrollar una actualización de seguridad de urgencia para proteger a los usuarios de sus antiguas plataformas.

    • Windows XP
    • Windows 8
    • Windows Server 2003

 

Descargar parches contra Ransom:Win32.WannaCrypt.

Windows Server 2003 SP2 x64
Windows Server 2003 SP2 x86
Windows XP SP2 x64
Windows XP SP3 x86
Windows XP Embedded SP3 x86
Windows 8 x86
Windows 8 x64

Actualización de seguridad -KB4012598

KB4012598

¿Cómo se propaga WannaCrypt, WannaCry, WanaCrypt0r, WCrypt, WCRY?

– Tienes protocolo SMBv1 habilitado
– Eres accesible desde internet (WAN)
– No tienes el parche MS17-010

En caso de que no sea posible aplicar los parches de seguridad se debería desactivar el servicio SMBv1. Para ello: – Abre el Panel de control, haz clic en Programas y, a continuación, haz clic en Activar o desactivar características de Windows.

– En la ventana Características de Windows, desactiva la casilla de verificación SMB1.0 / CIFS File Sharing Support y, a continuación, haz clic en Aceptar para cerrar la ventana.

– Reinicia el sistema.

Para desactivar SMB1 abre powershell como administrador y usa estos 2 comandos

SC.exe config lanmanworkstation depend = mrxsmb20/bowser/nsi
SC.exe config mrxsmb10 start = disabled

Para habilitar o deshabilitar SMBv1 en el servidor SMB, configure la clave del registro siguiente:

Subclave del registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

entrada del registro: SMB1

REG_DWORD: 0 = deshabilitado
REG_DWORD: 1 = habilitado
Valor predeterminado: 1 = habilitado

SMBv1 Workstation
Key/Hive – “HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation”
Subkey – DependOnService
Value – “Bowser”,”MRxSmb20″,”NSI”
SMBv1 Server
Key/Hive – HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters”
Subkey – SMB1
Value – 0
Type – DWORD
Note: This is a new subkey you need to create

Herramienta NoMoreCry  del CCN-CERT

 

El CCN-CERT ha desarrollado una herramienta para prevenir la infección por el malware WannaCry 2.0. Se trata de “CCN-CERT NoMoreCry Tool”, una herramienta disponible para todas las entidades que lo requieran, que crea un mutex (algoritmo de exclusión mutua) en el equipo que previene la ejecución del código dañino WannaCry 2.0. Es importante reseñar que, en el caso de máquinas infectadas, la ejecución de esta herramienta NO es de aplicación al no actuar sobre la misma de la forma prevista.

El Equipo de Respuesta del Centro Criptológico Nacional hace notar que la herramienta deberá ejecutarse tras cada reinicio, debido a que no presenta persistencia en el equipo. Este proceso se puede automatizar mediante la modificación del registro de Windows o a través de la aplicación de políticas en el dominio.

Esta herramienta funciona en sistemas operativos superiores a Windows XP.

CCN-CERT NoMoreCry Tool se encuentra en la plataforma en la nube del CCN-CERT, LORETO. Junto a ella también está disponible el Script que evita la ejecución del código dañino en equipos Windows en inglés y en español.

Fuente

 

Database Wrapper para PDO +(comentario sobre performance)

0

Os traigo un Wrapper que uso habitualmente en mis proyectos PHP. Lo suelo tener integrado en mi esqueleto Slim 3 pero lo he usado con anterioridad en otros tipos de proyectos. Seria un sustituto del ORM que nunca me ha gustado usar. Lo he ido programando con el tiempo y las funciones insert, update y delete las cogí de algún otro Wrapper, ORM o a saber.

En mis proyectos es importante que el acceso a la base de datos sea rápido y muchas veces el uso de un ORM como Doctrine o Eloquent no son para nada rápidos:

With pure PDO:
memory: 0.0044288635253906
seconds: 0.24748301506042

With DBAL and autoload:
memory: 0.97610473632812
seconds: 0.29042816162109

Extraído de Reddit y de gonzalo123.com. No es el código mas elegante ni de la ultima versión de PHP, de hecho tengo que actualizarlo para poder usar toda la potencia de PDO, aun así, aquí os lo pego y luego un tutorial de como usarlo (os prometo que lo actualizare para sacarle mas jugo):

class DatabaseWrapper {

    private $_conn;

    public function __construct( $db )
    {

        $pdo                = new PDO($db, $db, $db, $db);

        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

        $this->_conn        = $pdo;

    }

    protected function exec($query, $params)
    {

        if (strpos($query,'SELECT') !== false) {
            return $this->executeQuery($query, $params)->fetchAll(\PDO::FETCH_ASSOC);
        }

        return $this->executeQuery($query, $params)->rowCount();

    }

    protected function executeQuery($query, $params) {

        $statment  = $this->_conn->prepare($query);
        $statment->execute($params);

        return $statment;

    }

    public function fetchRow($query, $params = array()) {

        return $this->executeQuery($query,$params)->fetch(\PDO::FETCH_ASSOC);

    }

    public function fetchAll($query, $params) {

        return $this->executeQuery($query,$params)->fetchAll(\PDO::FETCH_ASSOC);

    }

    public function fetchColumn($query, $params, $column = 0) {

        return $this->executeQuery($query,$params)->fetchColumn($column);

    }

    public function fetchAssoc($statement, array $params = array())
    {
        return $this->executeQuery($statement, $params)->fetch(\PDO::FETCH_ASSOC);
    }

    public function fetchArray($statement, array $params = array())
    {
        return $this->executeQuery($statement, $params)->fetch(\PDO::FETCH_NUM);
    }

    public function delete($tableExpression, array $identifier, array $types = array())
    {
        if (empty($identifier)) {
            return FALSE;
        }

        $criteria = array();

        foreach (array_keys($identifier) as $columnName) {
            $criteria[] = $columnName . ' = ?';
        }

        return $this->exec(
            'DELETE FROM ' . $tableExpression . ' WHERE ' . implode(' AND ', $criteria),
            array_values($identifier)
            //is_string(key($types)) ? $this->extractTypeValues($identifier, $types) : $types
        );
    }

    public function insert($table, $data)
    {
        $fields = $values = array();
        foreach ($data as $key => $value) {

            if ($value instanceof DateTime) {
                $value = $value->format('Y-m-d H:i:s');
            }

            $fields[] = '`'.str_replace("`", "``", $key).'`';
            $values[] = $this->_conn->quote($value);
        }

        $query = "INSERT INTO `$table` (".implode(',', $fields).") VALUES (".implode(',', $values).")";

        $this->_conn->exec($query);

        return $this->_conn->lastInsertId();
    }

    public function update($table, $data, $conditions)
    {
        if (!$data) {
            return false;
        }

        $updates = $wheres = array();
        foreach ($data as $key => $value) {

            if ($value instanceof DateTime) {
                $value = $value->format('Y-m-d H:i:s');
            }

            $updates[] = '`'.str_replace("`", "``", $key).'` = '.$this->_conn->quote($value);
        }

        foreach ($conditions as $key => $value) {
            $wheres[] = '`'.str_replace("`", "``", $key).'` = '.$this->_conn->quote($value);
        }

        $table = '`'.str_replace("`", "``", $table).'`';

        $query = "UPDATE $table SET ".implode(', ', $updates)." WHERE ".implode(' AND ',$wheres);

        $this->_conn->exec($query);

        return true;
    }

    public function query($statement)
    {

        return $this->_conn->exec($statement);

    }

    public function errorCode()
    {
        return $this->_conn->errorCode();
    }

    public function errorInfo()
    {
        return $this->_conn->errorInfo();
    }

    public function lastInsertId($seqName = null)
    {
        return $this->_conn->lastInsertId($seqName);
    }

}

SELECT de una fila

$dbw      = new DatabaseWrapper($db);
$sql        = 'SELECT `name`, email FROM Users WHERE id = ?';

$user      = $dbw->fetchRow($sql, );

SELECT

$dbw      = new DatabaseWrapper($db);
$sql        = 'SELECT `id`, `room`, beds
                              FROM Rooms WHERE hotel_id = ?';

$rooms      = $dbw->fetchAll($sql, );

DELETE

$dbw      = new DatabaseWrapper($db);
$dbw->delete($table_name, );

INSERT

$dbw      = new DatabaseWrapper($db);
$row_id  = $dbw->insert($table_name, );

UPDATE

$dbw      = new DatabaseWrapper($db);
$row_id  = $dbw->update($table_name, ,);

Resumen de metodos:

    • fetchRow
    • fetchAll
    • fetchColumn
    • fetchAssoc
    • fetchArray
    • delete
    • insert
    • update
    • query
    • errorCode
    • errorInfo
    • lastInsertId

Nunca hago el new en el código porque mis proyectos funcionan con DI y el objeto $dbw siempre me llega al controlador. Si os interesa esta técnica os podría explicar como.

Consiguen velocidades de 112 Gbps con una conexión de luz infrarroja

0

Un grupo de ingenieros de los Países Bajos está desarrollando un sistema de conexión inalámbrica que utiliza luz infrarroja que destaca por ofrecer un rendimiento muy superior al que ofrece la WiFi en la actualidad.

El sistema se basa en la utilización de antenas infrarrojas para dirigir los haces de luz hacia los dispositivos conectados, y los resultados de las pruebas muestran que alcanza una velocidad de transmisión de datos de 112 Gbps. Por el contrario, los routers WiFi convencionales solo ofrecen decenas o cientos de Mbps, por lo que la diferencia es muy elevada.

La conexión WiFi utiliza ondas de radio para transferir datos y conectar los dispositivos a Internet de manera inalámbrica. Sin embargo, este sistema tiene sus limitaciones, principalmente las derivadas de la necesidad que tienen los distintos aparatos conectados a un router de compartir el ancho de banda. Como consecuencia de la afluencia de dispositivos, las redes se congestionan y se producen los temidos cuellos de botella que ralentizan la conexión.

Para resolver este problema, en los últimos años se ha avanzado en la investigación de las conexiones mediante luz, como el LiFi, un sistema de comunicaciones ópticas inventado por el profesor Harald Hass de la Universidad de Edimburgo en 2011. Esta técnica utiliza bombillas LED para transmitir los datos y prometía que en el futuro podría alcanzar velocidades de hasta 100 Gbps, aunque de momento solo han conseguido 10 Gbps.

Más tarde, los científicos de la Universidad Técnica de Eindhoven (Países Bajos) presentaron el pasado mes de marzo un nuevo sistema basado en luz infrarroja para transmitir los datos. Ahora, el equipo ha conseguido optimizarlo, pasando de una velocidad de transmisión de 40 Gbps a los 112 Gbps actuales.

En este nuevo sistema, los datos son transportados a través de un rayo láser infrarrojo, que es el mismo tipo que se emplea en las redes de telecomunicaciones, a un arsenal de fibras ópticas. El haz inicial se puede dividir en múltiples canales, cada uno con una longitud de onda distinta, lo que evita las congestiones y permite que cada dispositivo disfrute de la velocidad de transferencia completa.

Ton Koonen, líder del proyecto, asegura que si recibe los apoyos comerciales necesarios, su sistema de conexión inalámbrica por rayos infrarrojos podría estar disponible dentro de cinco años.

Consigue a Albóndiga como Campeón para tu Sede de Clase

0

Bienvenidos a la guía para conseguir a http://es.wowhead.com/champion=986/ como campeón, se puede poner como aliado de combate o http://es.wowhead.com/spell=231701.

    • Tener acceso a la hermandad de los camorristas (Necesitaremos http://es.wowhead.com/item=144363/, que se puede obtener facilmente matando PNJ’s en Reposo del Escudo (Tormenheim)

 

PD: Puede que sea necesario esperar entre una misión y otra aproximadamente 1 hora.

Comics sobre la nueva expansión "Caballeros del trono helado"

0

Aquí os dejo los enlaces a los cómics de la nueva expansión de Hearthstone: Caballeros del trono helado. (Estaría bien que sacaran alguno de esos aspectos en Heroes of the Storm)

Primer cómic: Enlace

Segundo cómic: Enlace

Tercer cómic: Enlace

Cambia el tipo de letra en WoW

0

Hace tiempo hice un vídeo sobre como cambiar el tipo de letra en World of Warcraft. Os dejo el vídeo.

Tenemos que crear una carpeta llamada Fonts (dentro de la carpeta del juego, junto a interfaz, wtf, data…)
Dentro metemos las fuente que queramos y le damos uno de los siguientes nombres (o todos)

FRIZQT__.ttf (interfaz – nombre de los npc y jugadores, spells, objetos, buffos, registro de misiones, texto flotante…)
ARIALN.ttf (chat)
skurri.ttf (chat de combate)
MORPHEUS.ttf (correo, rastreador de misiones)
FRIENDS.ttf (lista de amigos)

Call of Duty WWII es una realidad: se presentará el 26 de abril

0

El videojuego de Activision y Sledgehammer Games vuelve a la Segunda Guerra Mundial.

Tras semanas de rumores, Activision acaba de confirmar la existencia de Call of Duty: WWII, el nuevo videojuego de la franquicia bélica americana. Poco se sabe del juego más allá de lo visto en la página web oficial, en la que se nos insta a esperar al próximo 26 de abril para poder ver el primer adelanto del esperadísimo título.

Lo que ya parece más que confirmado es que Call of Duty regresa a la Segunda Guerra Mundial, periodo histórico en el que comenzó la serie con gran éxito a principios de la pasada década. Es también el segundo Call of Duty de Sledgehammer: firmó el competente CoD: Advanced Warfare, que contó con la presencia de Kevin Spacey.

Restará esperar al próximo miércoles, a partir de las 19:00 (hora española), para poder saber qué nos espera en el nuevo videojuego de la franquicia.

Fuente

¡¡Dios mio que ganas tenía de esto!! Por fin un CoD que voy a comprar después del MW3 y del BO3 !!!!  Porque el ghost, advanced warfare y infinity warfare… para ellos.

Call of Duty WWII – Tráiler y fecha de lanzamiento en PS4, PC y Xbox One

0

La espera ha terminado! Tras varios días de rumores y carteles promocionales filtrados, hoy por fin os podemos ofrecer los primeros detalles oficiales del esperado Call of Duty WWII. Activision ha cumplido su promesa y ha presentado el juego de Sledgehammer Games para PS4, PC y Xbox One con un primer tráiler que podéis ver en el encabezado de esta noticia. Call of Duty WWII es el esperado regreso de la saga de Activision a la Segunda Guerra Mundial, una ambientación que los fans llevan pidiendo desde hace años y que por fin podremos disfrutar a partir del próximo 3 de noviembre, fecha elegida por la compañía para que la nueva entrega de Call of Duty se ponga a la venta en PS4, PC y Xbox One.

Como podéis ver sobre estas líneas, el primer tráiler de Call of Duty WWII presenta un apartado visual espectacular, no sólo en lo que respecta a las localizaciones, sino también a los principales personajes de su modo campaña interpretados por los actores Josh Duhamel, cuya participación fue filtrada hace unos días; Jonathan Tucker y Jeffrey Pierce. En cuanto al modo historia de Call of Duty WWII, nos llevará a combatir en diferentes localizaciones de Europa en la piel del soldado Daniels, un hombre común convertido en soldado de la Primera División de Infantería y que tratará de luchar por preservar la libertad.

Activision y Sledgehammer Games se han limitado a revelar los primeros detalles del modo campaña de Call of Duty WWII, y aunque ha mostrado un adelanto de unos segundos del modo multijugador del juego de PS4, PC y Xbox One, parece que tendremos que esperar hasta el próximo E3 2017 para conocer más información al respecto. Además, se confirma la presencia de un modo zombies en Call of Duty WWII, aunque, al igual que ocurre con el modo multijugador, tendremos que esperar para conocer más detalles.

Fuente