LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2131|回复: 0

pdf转html的利器-pdftohtml

[复制链接]
发表于 2004-12-5 20:06:41 | 显示全部楼层 |阅读模式
现在网络上很多文档都是pdf格式,看起来方便是方便,可惜不论用什么工具(xpdf or acrobat reader)字体却始终没办法作到清晰漂亮.因此转为其他格式的文档看就不失为一个好办法了.
pdftohtml就是一个linux下转pdf为html的工具,它可以将pdf很完美的转为html格式,而且使用起来十分简单.

主页:
http://pdftohtml.sourceforge.net/
版本已经很久没有更新,但不影响使用,经测试acroread 1.5格式的也可以照转不误.

* 简单应用:

编译安装完后,直接pdftohtml -c xxx.pdf即可.

* 高级应用:

一般的pdf文件都是可以直接转的,但现在还有很多的pdf文件被加密了,如果用pdftohtml去转,它会告诉你出错,那么网上下的pdf文件,不知道密码怎么办呢?

这时,你就需要有一点点的编程基础了,我们要把pdftohtml的代码稍稍的修改一下,配合一个crack工具,绕过密码.

对于pdf文件来说,一般可以设置user密码和owner密码,大多的pdf文件都不会设置user密码,而我们需要关注的就是owner密码,这就是我们在转换时候遇到的拦路虎了.

假设现在有一个pdf文件 enc.pdf,被owner密码加密了.

1) 到
http://www.password-crackers.com/crack/guapdf.html
下载一个demo版本的guapdf(这东东不错,可惜要钱,不然就不能解压大文件)

解压,运行guapdf


  1. [fog@fog-linux pdf]$ ./guapdf enc.pdf
  2.    Guaranteed PDF Decryptor v. 2.0 BETA - freeware DEMO version
  3.     (c) PSW-soft, 2000-03, by P. Semjanov, S. Lysak
  4.      [url]http://www.password-crackers.com[/url]
  5. This product includes software developed by Eric Young (eay@cryptsoft.com)

  6. 'enc.pdf' has no user password, only restrictions present

  7. Key found! (exact value is  23 10 65 70 D7 34 6A D5 25 2B 62 2B 7F 97 5C E7)
  8. Would you like to decrypt it now?

复制代码


这时候我们看到Key已经被crack出来了,虽然不是password,但已经够用了,记下这个Key,按C-c结束程序.

2) 我们有了Key,下一步就是直接修改pdftohtml的源代码来使用它了.

需要修改的文件是./xpdf/XRef.cc,关键就是fileKey的值.

在文件头定义一个const变量


  1. const Guchar KnownKey[16] =    {0x23,0x10,0x65,0x70,0xD7,0x34,0x6A,0xD5,0x25,0x2B,0x62,0x2B,0x7F,0x97,0x5C,0xE7};
复制代码


然后在XRef::checkEncrypted函数最后插入


  1. ownerPasswordOk = 1;
  2. memcpy(fileKey,KnownKey,sizeof(fileKey));
复制代码


回到根目录,重新编译.

3)OK,这时候输入命令pdftohtml -c enc.pdf,看到什么了?哈哈,成功转换了.

注: 这里介绍的只是一个方法,最好当然是把code改一下,把key做成一个参数,甚至直接带guapdf为参数完成解密的工作,哪位兄弟有兴趣自己改把,我闪人了先
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表