QR codes

QR code (abbreviated from Quick Response code) is a type of matrix barcode (or two-dimensional code) first designed for the automotive industry. More recently, the system has become popular outside of industry due to its fast readability and comparatively large storage capacity. The code consists of black modules arranged in a square pattern on a white background. The information encoded can be made up of any kind of data (e.g., binary, alphanumeric, or Kanji symbols)[1]

Malicious QR codes combined with a permissive reader can put a computer’s contents and user’s privacy at risk. QR codes intentionally obscure and compress their contents and intent to humans.[19]They are easily created and may be affixed over legitimate QR codes.[20] On a smartphone, the reader’s many permissions may allow use of the camera, full internet access, read/write contact data,GPS, read browser history, read/write local storage, and global system changes.[21][22][23]
Risks include linking to dangerous websites with browser exploits, enabling the microphone/camera/GPS and then streaming those feeds to a remote server, exfiltrating senstive data (passwords, files, contacts, transactions),[24] and sending email/SMS/IM messages or DDOS packets as part of a botnet, corrupting privacy settings, stealing identity,[25] and even containing malicious logic themselves such as JavaScript[26] or a virus.[27][28] These actions may occur in the background while the user only sees the reader opening a harmless webpage. [29]

Construyendo bzip2 con mingw

bzip2 es una rutina de compresión de código libre. bzip2 es competitivo con las mejores técnicas estadí­sticas (PPM) en términos de compresión pero mucho más rápido. El código de bzip2 esta escrito en ansi c y no tiene dependencias, así­ que quise usarlo para probar varios enfoques para construir los ejecutables en Windows XP siendo una aplicación cuyo ambiente natural es Linux.

mingw

Una diferencia en el modelo de archivos entre Windows y Unix es como se determina si un archivo es ejecutable o no.

En unix los privilegios de ejecución de un archivo están definidos dentro de la estructura interna del archivo y existen utilerí­as como chmod que permiten manipular los privilegios de ejecución.

En Windows, la extensión de un archivo determina si es un ejecutable o no. los archivo ejecutables en Windows tiene la terminación .exe. Existen otras terminaciones de archivos ejecutables, pero si el archivo tiene un terminación que no este en la lista entonces no es un ejecutable. Dicho de otra manera, En Windows, la terminación de un archivo determina que aplicación (ejecutalbe) esta asociada con él.

Para crear el ejecutable de bizp2 usando mingw

Bajar las fuentes de bzip2
Modificar el archivo Makefile quitando las lineas que contengan la instrucción
chmod a+x
En el shell de msys ir al directorio de los fuentes de bzip2 y ejecutar el comando
make install

Visual Studio 2005 command prompt

En el shell de comandos de Visual Studio 2005 ir al directorio de los fuentes de bzip2 y ejecutar el comando
nmake -f makefile.msc

Al ejecutarse el nmake hay algunos warnings pero los ejecutables se generan bien

Visual Studio 2005 Proyecto Visual C++ win32

Abrir un nuevo proyecto del tipo libreria estatica con el nombre de salida libbz2.lib
Agregar los archivos

blocksort.c
huffman.c
crctable.c
randtable.c
compress.c
decompress.c
bzlib.c
bzlib.h
Construir la libreria
Abrir un nuevo proyecto del tipo consola
Agregar el archivo
bzip2.c
Agregar la referencia a libbz2.lib en los archivos de entrada del linker
construir el ejecutable