Mostrando entradas con la etiqueta pdfs. Mostrar todas las entradas
Mostrando entradas con la etiqueta pdfs. Mostrar todas las entradas

04 enero 2013

Jugando con los PDF, contraseñas y marcas de agua

Es común que a los informáticos nos lleguen "peticiones" de todo tipo. Una de esas peticiones es, "Oye me he bajado/encontrado este PDF y tiene contraseña y una marca de agua. Es entonces cuando te vuelves un poco loco buscando software que existen por internet para quitarle la contraseña a los PDF y las marcas de agua.
Las marcas de agua es una técnica esteganográfica que sirve entre otras cosas para  insertar un grupo de bits con información sobre el autor o propietario intelectual.

Quitar contraseña del PDF

En el caso de los password, tenemos las contraseñas de aperturas de ficheros de lo que no trata este artículo, contraseñas de protección para modificar el contenido, poder copiar texto etc...
De los múltiples programas que te puedes encontrar por Internet, muchos acaban siendo de pago o no acaban de funcionar bien. Además en la búsqueda de ciertos programas algunos pueden llevar regalito.
Dándole vueltas temas pensé que no sería tan difícil el poder quitarle la contraseña sin tener la necesidad de usar un programa específico para ello.

Primero vamos a ver las propiedades del PDF:


En este caso solo está permitido el poder imprimir, pero no podremos en ningún caso modificar este PDF. Los permisos quedan claros en la imagen.
Una manera de curiosa de poder quitar todos los permisos al PDF es imprimir el documento en una impresora en concreto. Es en este caso cuando hablamos del formato XPS.
El formato XPS, XML parser specification, es un formato creado por Microsoft y que viene de serie incluído desde Windows Vista. En teoría era un formato para competir con el formato PDF, se trata de un formato que sea fácil de compartir y de leer.
Como explicaba a partir de Windows Vista, viene incorporada una impresora XPS para generar este tipo de documentos. Es por eso que ahora con el PDF protegido por contraseña lo imprimimos en esta impresora y generamos el documento XPS.

Ahora tendremos el fichero en formato XPS, igualito que lo tendríamos en PDF. Lo que haremos ahora es volver a generar el PDF, en este caso lo haremos de la manera mas sencilla posible y es usar una impresora virtual. Existen multitud de ellas, en este caso yo he usado la propia que viene incluída con Adobe.
Lo que haremos ahora es abrir el docuemento XPS y volver a imprimirlo pero esta vez seleccionando la impresora Adobe. Miramos los permisos y....



 Et voilà! Ya tenemos el documento PDF sin seguridad, para poder editarlo.

Marcas de agua

En el caso de la marca de agua ya es algo un poco mas complicado y es que tendremos que usar algún programa y luego un sencillo script para automatizar la tarea.
Lo primero que haremos es con Total Comander y su visor abrir el PDF


Si, no se entiende ni se puede ver nada, así que tendremos que limpiarlo un poquito para que podamos trabajar con él.
La manera más rápida es usar pdftk, lo bajamos de la web y hacemos:


Ejecutamos pdftk, como parámetro el pdf a limpiar, le indicamos el nombre del fichero del output y la opción uncompress.
Ahora abrimos el PDF con el visor de total comander de nuevo. El fichero se presentará mas limpio, y lo que haremos será buscar la imagen en RAW directamente en el fichero hasta que encontramos las imágenes.


En la última parte del visor es donde tenemos la imagen, en la parte de stream. Lo que tenemos que hacer ahora es eliminar el obj del PDF. De esta manera eliminaremos la imagen.
Si el documento tiene n páginas, está claro que no tenemos porque hacer esto de manera manual. 
Con un cutre script en python podemos solucionar esto, en este caso , yo además me he encontrado marcas de agua de diferente tamaño...

El script MUY mejorable podría ser:


Con esto obtendremos el PDF sin las marcas de agua.

Este artículo sirve para poder ver que con un poco de trabajo manual, no hace falta valerse de esos programas que te dicen que te quitan el candado del documento. Además se ha podido ver como quitar las marcas de agua con un script y mirando que tiene el documento.

Artículo cortesía de Marc Rivero López

Leer más...
  翻译: