Saltar al contenido

El blog de Skatox Entradas

Hackeando las instrucciones de x86

Cuando utilizamos la computadora y encontramos problemas, siempre solemos echar la culpa a las aplicaciones, nunca lo hacemos con el hardware porque asumimos que son piezas perfectas sin fallas. También cuando hacemos auditorías de seguridad, solemos solo fijarnos en el software y vemos al hardware como una caja negra segura. Sin embargo, en esta presentación vemos como un hacker estudia la arquitectura x86 (utilizada en la mayoría de las computadoras de escritorio y servidores) y desarrolla un algoritmo para encontrar instrucciones no documentadas en los procesadores x86.

El resultado es que consigue varias de ellas, demostrando que el hardware no es tan seguro o confiable como creemos. Pues contiene varias instrucciones no documentadas.

Instrucciones no documentadas x86

Las instrucciones no documentadas, permiten codificar programas para realizar acciones secretas en tu computadora. Por ejemplo, pueder acceder a direcciones de memoria especiales (podría pertenecer a otros programas y contener información privada), acceder a registros, realizar acciones privilegiadas, entre otros.

El peligro es que ocurre a nivel de hardware y al no estar documentadas, nadie las conoce, son indetectables. No se sabe si Intel/AMD las coloca para colaborar con agencias gubernamentales, para ellos mismos, pruebas, entre otros.

Si te interesa mas el tema, observa la conferencia «Rompiendo el conjunto de instrucciones de x86».

Breaking the x86 Instruction Set

Esperemos ver que información oficial sale sobre estos descubrimientos, o si son vulnerabilidades que se aprovecharán en el futuro. De todos modos, deseo que te haya gustado el vídeo y recuerda compartir tu opinión en la caja de comentarios.

Happy Hardware Hacking!

Deja un comentario

Error de JSON malformed al enviar datos a Zoho

Zoho es una excelente herramienta en la nube para la administración de negocios. Posee una excelente API REST para realizar integración de datos entre sistemas. Hace unos días tuve problemas para subir información al API y me arrojaba el error JSON malformed.

Cómo solucionar el error de JSON malformed

La documentación no indica cual puede ser el problema y en que campo. Obviamente es un error de codificación de JSON pero al revisar mi código y los datos que estaba enviando, noté que el JSON estaba bien validado. Pero me di cuenta que Zoho pide enviar el JSON dentro del cuerpo de la petición en texto plano, no en formato JSON. Por ello, al codificar los campos en la cadena, el símbolo de ampersand ( & ) puede confundirse como el inicio de un parámetro GET. Así que es necesario codificarlo con su respectivo valor en HTML que es %26.

Así que para solucionar mi problema tuve simplemente que reemplazar el valor luego de ser codificado en JSON:

$jsonString = str_replace('&', '%26', json_encode($invoice));
$body = '&JSONString=' . $jsonString;

¡Listo! Ahora si podrás subir la data a Zoho.

Deja un comentario

Carga los productos de una orden en WooCommerce

WooCommerce es una excelente solución para crear tu propia tienda en línea. Al ser un plugin de WordPress permite aprovechar todo lo disponible para esta tecnología. Cada nueva versión incluye mejoras significantes pero sacrificando muchas veces compatibilidad hacia atrás. Hace unos meses salió la versión 3.0 que introdujo varias mejoras y cambios en el SDK. Uno de mis plugins estuvo funcionando mal con los productos variables, pues la forma de obtener los productos de una orden habían cambiado. A continuación te explico como carga los productos de una orden.

Carga de productos de una orden

El problema es que en WooCoommerce existen varios tipos de productos: simple, variable, virtual, etc. Cada uno de ellos es definido en su propia clase, entonces cuando cargas una orden en WooCommerce desde el SDK solo tienes acceso al ID. Luego poder detectar con ese ID el tipo de producto y cargar su respectivo objeto puede ser tedioso.

El primer paso es obtener los objetos que representan los productos de la orden. No se debe confundir con el producto como tal, pues estos tienen un precio y atributos únicos para la orden.  Luego de cargar estos productos, si procedemos a cargar la instancia de su respectiva clase que nos dará toda la información.

WooCommerce nos ofrece la función get_product() que dando un ID, se carga automáticamente el producto como un objeto de su respectiva clase. Permitiendo acceder y manipular la data de muchas formas.

$order = wc_get_order( $order_id );
$line_items = $original_order->get_items();

foreach ( $line_items as $item_id => $item ) {
  $wc_product = $item->get_product();
  ....
}

Y listo, ya con esto puedes obtener un objeto que representa al producto de un orden.

Deja un comentario

Mi entrevista en WordPress.tv por el Global WordPress Translation Day

El pasado noviembre me hicieron una entrevista en WordPress.tv, pues desde el 2016 he estado organizando encuentros de WordPress en San Cristóbal, Venezuela. El 12 de noviembre de 2016, organizamos el único Global WordPress Translation Day de latinoamérica. Allí explicamos como realizar traducciones y una herramienta para facilitar las hecha por Diego Juliao con la participación del localizador oficial para Venezuela Jordi Cuevas.

Mi entrevista en WordPress.tv

Puedes ver la entrevista a continuación, está en ingles, hablo un poco de mí y las tareas que realizo en los meetups. También explico como nació la comunidad local de WordPress y otras cosas.

Espero que les guste.

Deja un comentario