发现了一个在线很好的教材PDF,但是阅读时候加密了,咋办?简单分析,解密该加密的在线PDF文档,并且下载解密。
事件
在阅读一个在线PDF时候,出现了下面的情况。已经被加密了,无法正常的阅读。
尝试
现在尝试着开始解密一下他吧。
过程
1、常规F12打开开发工具。找到【sources】点击暂停,然后点击确定。如下:
2.然后跳到一个断点。顺着我们向上看到了一个【alert】弹出提醒。很快发现他是一个【else】。
3、大家都知道else是另外的意思。那这样肯定会有if啦。顺势线上查找。
4、if条件发现了【查询成功】的字样。下面的这些代码肯定就是成功对密码的判断了。
alert(_0x4146('0x9', 'Zr4M'));
var DEFAULT_URL = '';
var pdfUrl = document[_0x4146('0xa', 'A&!J')][_0x4146('0xb', 'qPv5')][_0x4146('0xc', 'TaFo')](0x1);
if (null == pdfUrl || '' == pdfUrl) {
var BASE64_MARKER = _0x4146('0xd', 'qPv5');
var preFileId = '';
var pdfAsDataUri = _0x4146('0xe', 'z*sM') + PDFData;
var pdfAsArray = convertDataURIToBinary(pdfAsDataUri);
DEFAULT_URL = pdfAsArray;
function convertDataURIToBinary(_0x199de2) {
var _0x23ce75 = {
'busWz': function _0x12bb0c(_0x150639, _0x34f7a6) {
return _0x150639 + _0x34f7a6;
}
};
var _0x242bff = '0|4|3|2|6|1|5'[_0x4146('0xf', 'reoE')]('|')
, _0x200204 = 0x0;
while (!![]) {
switch (_0x242bff[_0x200204++]) {
case '0':
var _0x4d8629 = _0x23ce75[_0x4146('0x10', '*91K')](_0x199de2[_0x4146('0x11', '#yjo')](BASE64_MARKER), BASE64_MARKER['length']);
continue;
case '1':
for (i = 0x0; i < _0x5bdad4; i++) {
_0x5314ee[i] = _0x4fbb5d[_0x4146('0x12', '^Fp5')](i) & 0xff;
}
continue;
case '2':
var _0x5bdad4 = _0x4fbb5d[_0x4146('0x13', '7k%*')];
continue;
case '3':
var _0x4fbb5d = window[_0x4146('0x14', 'T$TS')](_0x4afd6d);
continue;
case '4':
var _0x4afd6d = _0x199de2['substring'](_0x4d8629)[_0x4146('0x15', 'qPv5')](/[\n\r]/g, '');
continue;
case '5':
return _0x5314ee;
case '6':
var _0x5314ee = new Uint8Array(new ArrayBuffer(_0x5bdad4));
continue;
}
break;
}
}
}
5、 不叨叨直接复制去控制台运行。
6、 很明显的,现在我们可以正常的阅读了。点击确定我们看看。点击确定之后自动调试,现在我们发现自己带出密码来了。
7、使用密码查看器查看一下之后,密码呈现出来。 点击确定之后就进入。
8、进入之后显示如下:
9、现在按ctrl+s保存该PDF。
成功
10、保存完成之后,打开需要密码。输入我们第 7部查询出来的密码即可。
完美的打开了。
此加密PDF来源于网络【涛之雨】,本人学习尝试并且成功,写作记录一下。版权属于原作者。