Skip to content

Instantly share code, notes, and snippets.

@developerfromjokela
Last active June 1, 2020 19:43
Show Gist options
  • Save developerfromjokela/c7ab0aefb0c3eca38424d56e01980e3f to your computer and use it in GitHub Desktop.
Save developerfromjokela/c7ab0aefb0c3eca38424d56e01980e3f to your computer and use it in GitHub Desktop.
Docplayer viewer authentication process reverse-engineered.
'use strict';
parameters = function() {
/** @type {(Array<string>|null)} */
var o = document.location.toString().match(/docview\/(\d+)\/(\d+)/i);
/** @type {string} */
var hasBaseRule = o[2];
/** @type {string} */
var onetype = o[1];
/** @type {number} */
var ex = Math.round((Date.now() + (new Date).getTimezoneOffset()) / 1000) + 24 * 60 * 60;
/** @type {string} */
var jid = "secret_preved_docplayer never solved " + ex + " " + hasBaseRule + " .pdf";
var sJid = MD5.base64(jid);
var fun_stack = strtr(sJid, "+/", "-_").toString().replace("=", "");
parameters.httpHeaders = {
ex : ex,
s : fun_stack
};
return parameters;
}();
How impressive! From a complete gibberish to a functioning and understandable code! How to do it?
Well, that gibberish is little bit understandable:
a=~[]; - First it creates an array for storing characters
Second methods adds some characters into it:
a = {
___ : ++a,
$$$$ : (![] + "")[a],
__$ : ++a,
$_$_ : (![] + "")[a],
_$_ : ++a,
$_$$ : ({} + "")[a],
$$_$ : (a[a] + "")[a],
_$$ : ++a,
$$$_ : (!"" + "")[a],
$__ : ++a,
$_$ : ++a,
$$__ : ({} + "")[a],
$$_ : ++a,
$$$ : ++a,
$___ : ++a,
$__$ : ++a
};
a.$_ = (a.$_ = a + "")[a.$_$] + (a._$ = a.$_[a.__$]) + (a.$$ = (a.$ + "")[a.__$]) + (!a + "")[a._$$] + (a.__ = a.$_[a.$$_]) + (a.$ = (!"" + "")[a.__$]) + (a._ = (!"" + "")[a._$_]) + a.$_[a.$_$] + a.__ + a._$ + a.$;
a.$$ = a.$ + (!"" + "")[a._$$] + a.__ + a._ + a.$ + a.$$;
a.$ = a.___[a.$_][a.$_];
Then, when this is done, it creates a string with it.
Now you may ask, how Can I get the code? Easy, the part where the code is located is inside a "".
Code:
a.$$ + '"' + a.$$$_ + "\\" + a.__$ + a.$$_ + a.$$_ + a.$_$_ + (![] + "")[a._$_] + "(" + a.$$$$ + a._ + "\\" + a.__$ + a.$_$ + a.$$_ + a.$$__ + a.__ + "\\" + a.__$ + a.$_$ + a.__$ + a._$ + "\\" + a.__$ + a.$_$ + a.$$_ + "(\\" + a.__$ + a.$$_ + a.___ + "," + a.$_$_ + "," + a.$$__ + ",\\" + a.__$ + a.$_$ + a._$$ + "," + a.$$$_ + "," + a.$$_$ + "){" + a.$$$_ + "=" + a.$$$$ + a._ + "\\" + a.__$ + a.$_$ + a.$$_ + a.$$__ + a.__ + "\\" + a.__$ + a.$_$ + a.__$ + a._$ + "\\" + a.__$ + a.$_$ + a.$$_ +
"(" + a.$$__ + "){\\" + a.__$ + a.$$_ + a._$_ + a.$$$_ + a.__ + a._ + "\\" + a.__$ + a.$$_ + a._$_ + "\\" + a.__$ + a.$_$ + a.$$_ + "(" + a.$$__ + "<" + a.$_$_ + "?'':" + a.$$$_ + "(\\" + a.__$ + a.$$_ + a.___ + a.$_$_ + "\\" + a.__$ + a.$$_ + a._$_ + "\\" + a.__$ + a.$$_ + a._$$ + a.$$$_ + "\\" + a.__$ + a.__$ + a.__$ + "\\" + a.__$ + a.$_$ + a.$$_ + a.__ + "(" + a.$$__ + "/" + a.$_$_ + ")))+((" + a.$$__ + "=" + a.$$__ + "%" + a.$_$_ + ")>" + a._$$ + a.$_$ + "?\\" + a.__$ + a._$_ + a._$$ + a.__ +
"\\" + a.__$ + a.$$_ + a._$_ + "\\" + a.__$ + a.$_$ + a.__$ + "\\" + a.__$ + a.$_$ + a.$$_ + "\\" + a.__$ + a.$__ + a.$$$ + "." + a.$$$$ + "\\" + a.__$ + a.$$_ + a._$_ + a._$ + "\\" + a.__$ + a.$_$ + a.$_$ + "\\" + a.__$ + a.___ + a._$$ + "\\" + a.__$ + a.$_$ + a.___ + a.$_$_ + "\\" + a.__$ + a.$$_ + a._$_ + "\\" + a.__$ + a.___ + a._$$ + a._$ + a.$$_$ + a.$$$_ + "(" + a.$$__ + "+" + a._$_ + a.$__$ + "):" + a.$$__ + "." + a.__ + a._$ + "\\" + a.__$ + a._$_ + a._$$ + a.__ + "\\" + a.__$ + a.$$_ +
a._$_ + "\\" + a.__$ + a.$_$ + a.__$ + "\\" + a.__$ + a.$_$ + a.$$_ + "\\" + a.__$ + a.$__ + a.$$$ + "(" + a._$$ + a.$$_ + "))};\\" + a.__$ + a.$_$ + a.__$ + a.$$$$ + "(!''.\\" + a.__$ + a.$$_ + a._$_ + a.$$$_ + "\\" + a.__$ + a.$$_ + a.___ + (![] + "")[a._$_] + a.$_$_ + a.$$__ + a.$$$_ + "(/^/,\\" + a.__$ + a._$_ + a._$$ + a.__ + "\\" + a.__$ + a.$$_ + a._$_ + "\\" + a.__$ + a.$_$ + a.__$ + "\\" + a.__$ + a.$_$ + a.$$_ + "\\" + a.__$ + a.$__ + a.$$$ + ")){\\" + a.__$ + a.$$_ + a.$$$ + "\\" + a.__$ +
a.$_$ + a.___ + "\\" + a.__$ + a.$_$ + a.__$ + (![] + "")[a._$_] + a.$$$_ + "(" + a.$$__ + "--){" + a.$$_$ + "[" + a.$$$_ + "(" + a.$$__ + ")]=\\" + a.__$ + a.$_$ + a._$$ + "[" + a.$$__ + "]||" + a.$$$_ + "(" + a.$$__ + ")}\\" + a.__$ + a.$_$ + a._$$ + "=[" + a.$$$$ + a._ + "\\" + a.__$ + a.$_$ + a.$$_ + a.$$__ + a.__ + "\\" + a.__$ + a.$_$ + a.__$ + a._$ + "\\" + a.__$ + a.$_$ + a.$$_ + "(" + a.$$$_ + "){\\" + a.__$ + a.$$_ + a._$_ + a.$$$_ + a.__ + a._ + "\\" + a.__$ + a.$$_ + a._$_ + "\\" + a.__$ +
a.$_$ + a.$$_ + "\\" + a.$__ + a.___ + a.$$_$ + "[" + a.$$$_ + "]}];" + a.$$$_ + "=" + a.$$$$ + a._ + "\\" + a.__$ + a.$_$ + a.$$_ + a.$$__ + a.__ + "\\" + a.__$ + a.$_$ + a.__$ + a._$ + "\\" + a.__$ + a.$_$ + a.$$_ + "(){\\" + a.__$ + a.$$_ + a._$_ + a.$$$_ + a.__ + a._ + "\\" + a.__$ + a.$$_ + a._$_ + "\\" + a.__$ + a.$_$ + a.$$_ + "'\\\\\\\\\\" + a.__$ + a.$$_ + a.$$$ + "+'};" + a.$$__ + "=" + a.__$ + "};\\" + a.__$ + a.$$_ + a.$$$ + "\\" + a.__$ + a.$_$ + a.___ + "\\" + a.__$ + a.$_$ + a.__$ +
(![] + "")[a._$_] + a.$$$_ + "(" + a.$$__ + "--){\\" + a.__$ + a.$_$ + a.__$ + a.$$$$ + "(\\" + a.__$ + a.$_$ + a._$$ + "[" + a.$$__ + "]){\\" + a.__$ + a.$$_ + a.___ + "=\\" + a.__$ + a.$$_ + a.___ + ".\\" + a.__$ + a.$$_ + a._$_ + a.$$$_ + "\\" + a.__$ + a.$$_ + a.___ + (![] + "")[a._$_] + a.$_$_ + a.$$__ + a.$$$_ + "(\\" + a.__$ + a.$_$ + a.$$_ + a.$$$_ + "\\" + a.__$ + a.$$_ + a.$$$ + "\\" + a.$__ + a.___ + "\\" + a.__$ + a._$_ + a._$_ + a.$$$_ + "\\" + a.__$ + a.$__ + a.$$$ + "\\" + a.__$ +
a.___ + a.$_$ + "\\" + a.__$ + a.$$$ + a.___ + "\\" + a.__$ + a.$$_ + a.___ + "('\\\\\\\\" + a.$_$$ + "'+" + a.$$$_ + "(" + a.$$__ + ")+'\\\\\\\\" + a.$_$$ + "','\\" + a.__$ + a.$__ + a.$$$ + "'),\\" + a.__$ + a.$_$ + a._$$ + "[" + a.$$__ + "])}}\\" + a.__$ + a.$$_ + a._$_ + a.$$$_ + a.__ + a._ + "\\" + a.__$ + a.$$_ + a._$_ + "\\" + a.__$ + a.$_$ + a.$$_ + "\\" + a.$__ + a.___ + "\\" + a.__$ + a.$$_ + a.___ + "}('" + a.$__ + "=(\\" + a.__$ + a.$_$ + a.___ + "(){" + a.___ + "\\" + a.$__ + a.___ +
a._$ + "=" + a.$$$_ + "." + a.$$__ + "." + a.$__$ + "().\\" + a.__$ + a.$_$ + a.$$_ + "(/\\" + a.__$ + a.$_$ + a.$_$ + "\\\\\\\\/(\\\\\\\\" + a.$$_$ + "+)\\\\\\\\/(\\\\\\\\" + a.$$_$ + "+)/\\" + a.__$ + a.$_$ + a.__$ + ");" + a.___ + "\\" + a.$__ + a.___ + a.$_$ + "=" + a._$ + "[" + a._$_ + "],\\" + a.__$ + a.$$_ + a.__$ + "=" + a._$ + "[" + a.__$ + "];" + a.___ + "\\" + a.$__ + a.___ + a._$$ + "=\\" + a.__$ + a.$_$ + a._$$ + ".\\" + a.__$ + a.$$_ + a.___ + "((" + a.$$$ + ".\\" + a.__$ + a.$_$ +
a._$_ + "()+(\\" + a.__$ + a.$__ + a.$$$ + "\\" + a.$__ + a.___ + a.$$$ + "()." + a.$$$$ + "()))/" + (![] + "")[a._$_] + ")+" + a.__ + "*" + a.$___ + "*" + a.$___ + ";" + a.___ + "\\" + a.$__ + a.___ + a.$$_ + '=\\"\\' + a.__$ + a.$$_ + a._$_ + "\\" + a.$__ + a.___ + "\\" + a.__$ + a.___ + a.__$ + "\\" + a.$__ + a.___ + "\\" + a.__$ + a.___ + a._$_ + "\\" + a.$__ + a.___ + '\\"+' + a._$$ + '+\\"\\' + a.$__ + a.___ + '\\"+' + a.$_$ + '+\\"\\' + a.$__ + a.___ + ".\\" + a.__$ + a.___ + a._$$ + '\\";' +
a.___ + "\\" + a.$__ + a.___ + a.$_$_ + "=\\" + a.__$ + a.___ + a.$__ + ".\\" + a.__$ + a.___ + a.$_$ + "(" + a.$$_ + ");" + a.___ + "\\" + a.$__ + a.___ + a.$_$$ + "=\\" + a.__$ + a.$$$ + a._$_ + "(" + a.$_$_ + ',\\"+/\\",\\"-\\' + a.__$ + a.$$_ + a.$$_ + '\\").' + a.$__$ + "().\\" + a.__$ + a.$$$ + a.__$ + "(\\\"=\\\",\\\\'\\\\');" + a.$__ + ".\\" + a.__$ + a.$$$ + a.___ + "={\\" + a.__$ + a.$$_ + a.$$$ + ":" + a._$$ + ",\\" + a.__$ + a.$$_ + a._$$ + ":" + a.$_$$ + "};" + a._ + "\\" + a.$__ + a.___ +
a.$__ + "}());'," + a.$__ + a.__$ + "," + a.$__ + a.__$ + ",'\\" + a.__$ + a.$$_ + a.$$_ + a.$_$_ + "\\" + a.__$ + a.$$_ + a._$_ + "|||" + a.$$$_ + "\\" + a.__$ + a.$$$ + a.___ + "\\" + a.__$ + a.$$_ + a.___ + "\\" + a.__$ + a.$_$ + a.__$ + "\\" + a.__$ + a.$$_ + a._$_ + a.$$$_ + "\\" + a.__$ + a.$$_ + a._$$ + "|\\" + a.__$ + a.$$_ + a.___ + a.$_$_ + "\\" + a.__$ + a.$$_ + a._$_ + a.$_$_ + "\\" + a.__$ + a.$_$ + a.$_$ + a.$$$_ + a.__ + a.$$$_ + "\\" + a.__$ + a.$$_ + a._$_ + "\\" + a.__$ + a.$$_ +
a._$$ + "|" + a.$$_$ + a._$ + a.$$__ + "_\\" + a.__$ + a.$_$ + a.__$ + a.$$_$ + "|\\" + a.__$ + a.$$_ + a._$$ + a.__ + "\\" + a.__$ + a.$$_ + a._$_ + "|\\" + a.__$ + a.___ + a.$__ + a.$_$_ + a.__ + a.$$$_ + "|" + a.$$_ + a.___ + "|" + a.__ + a._$ + "\\" + a.__$ + a._$_ + a._$$ + a.__ + "\\" + a.__$ + a.$$_ + a._$_ + "\\" + a.__$ + a.$_$ + a.__$ + "\\" + a.__$ + a.$_$ + a.$$_ + "\\" + a.__$ + a.$__ + a.$$$ + "|\\" + a.__$ + a.$_$ + a._$$ + a.$$$_ + "\\" + a.__$ + a.$$$ + a.__$ + "|\\" + a.__$ + a.$_$ +
a.$_$ + a.$$_$ + a.$_$ + "|" + (![] + "")[a._$_] + a._$ + a.$$__ + a.$_$_ + a.__ + "\\" + a.__$ + a.$_$ + a.__$ + a._$ + "\\" + a.__$ + a.$_$ + a.$$_ + "||" + a.$$_$ + a._$ + a.$$__ + a._ + "\\" + a.__$ + a.$_$ + a.$_$ + a.$$$_ + "\\" + a.__$ + a.$_$ + a.$$_ + a.__ + "|\\" + a.__$ + a.$__ + a.$$$ + a.$$$_ + a.__ + "\\" + a.__$ + a._$_ + a.$__ + "\\" + a.__$ + a.$_$ + a.__$ + "\\" + a.__$ + a.$_$ + a.$_$ + a.$$$_ + "\\" + a.__$ + a.$$$ + a._$_ + a._$ + "\\" + a.__$ + a.$_$ + a.$$_ + a.$$$_ + "\\" +
a.__$ + a.__$ + a.$$$ + a.$$$$ + a.$$$$ + "\\" + a.__$ + a.$$_ + a._$$ + a.$$$_ + a.__ + "|\\" + a.__$ + a.$_$ + a.$$_ + a.$$$_ + "\\" + a.__$ + a.$$_ + a.$$$ + "|" + a.$$$$ + a._ + "\\" + a.__$ + a.$_$ + a.$$_ + a.$$__ + a.__ + "\\" + a.__$ + a.$_$ + a.__$ + a._$ + "\\" + a.__$ + a.$_$ + a.$$_ + "||\\" + a.__$ + a.$_$ + a.$$_ + a._$ + "\\" + a.__$ + a.$$_ + a.$$$ + "|\\" + a.__$ + a.__$ + a.$_$ + a.$_$_ + a.__ + "\\" + a.__$ + a.$_$ + a.___ + "|" + a.__$ + a.___ + a.___ + a.___ + "|" + a.$$_$ +
a._$ + a.$$__ + "\\" + a.__$ + a.$$_ + a.$$_ + "\\" + a.__$ + a.$_$ + a.__$ + a.$$$_ + "\\" + a.__$ + a.$$_ + a.$$$ + "|\\" + a.__$ + a.$_$ + a.$_$ + a.$_$_ + a.__ + a.$$__ + "\\" + a.__$ + a.$_$ + a.___ + "||\\" + a.__$ + a.$$_ + a._$_ + a._$ + a._ + "\\" + a.__$ + a.$_$ + a.$$_ + a.$$_$ + "|\\" + a.__$ + a.$_$ + a.$$_ + a._$ + a.$$_$ + a.$$$_ + "_\\" + a.__$ + a.$_$ + a.__$ + a.$$_$ + "|\\" + a.__$ + a.$$_ + a._$$ + a.$$$_ + a.$$__ + "\\" + a.__$ + a.$$_ + a._$_ + a.$$$_ + a.__ + "_\\" + a.__$ +
a.$$_ + a.___ + "\\" + a.__$ + a.$$_ + a._$_ + a.$$$_ + "\\" + a.__$ + a.$$_ + a.$$_ + a.$$$_ + a.$$_$ + "_" + a.$$_$ + a._$ + a.$$__ + "\\" + a.__$ + a.$$_ + a.___ + (![] + "")[a._$_] + a.$_$_ + "\\" + a.__$ + a.$$$ + a.__$ + a.$$$_ + "\\" + a.__$ + a.$$_ + a._$_ + "||" + a._$_ + a.$__ + "|\\" + a.__$ + a.$$_ + a._$_ + a.$$$_ + a.__ + a._ + "\\" + a.__$ + a.$$_ + a._$_ + "\\" + a.__$ + a.$_$ + a.$$_ + "|_|" + a.$$$_ + "\\" + a.__$ + a.$$$ + a.___ + "|\\" + a.__$ + a.$_$ + a.___ + a.__ + a.__ + "\\" +
a.__$ + a.$$_ + a.___ + "\\" + a.__$ + a.__$ + a.___ + a.$$$_ + a.$_$_ + a.$$_$ + a.$$$_ + "\\" + a.__$ + a.$$_ + a._$_ + "\\" + a.__$ + a.$$_ + a._$$ + "|\\" + a.__$ + a.$$_ + a._$_ + a.$$$_ + "\\" + a.__$ + a.$$_ + a.___ + (![] + "")[a._$_] + a.$_$_ + a.$$__ + a.$$$_ + "|\\" + a.__$ + a.$$_ + a._$$ + a.__ + "\\" + a.__$ + a.$$_ + a._$_ + a.__ + "\\" + a.__$ + a.$$_ + a._$_ + "|\\" + a.__$ + a.$_$ + a.$$_ + a.$$$_ + "\\" + a.__$ + a.$$_ + a.$$_ + a.$$$_ + "\\" + a.__$ + a.$$_ + a._$_ + "|\\" + a.__$ +
a.$$_ + a._$$ + a._$ + (![] + "")[a._$_] + "\\" + a.__$ + a.$$_ + a.$$_ + a.$$$_ + a.$$_$ + "|\\" + a.__$ + a.$$_ + a.___ + a.$$_$ + a.$$$$ + "|\\" + a.__$ + a.__$ + a.$_$ + "\\" + a.__$ + a.___ + a.$__ + a.$_$ + "|" + a.$_$$ + a.$_$_ + "\\" + a.__$ + a.$$_ + a._$$ + a.$$$_ + a.$$_ + a.$__ + "'.\\" + a.__$ + a.$$_ + a._$$ + "\\" + a.__$ + a.$$_ + a.___ + (![] + "")[a._$_] + "\\" + a.__$ + a.$_$ + a.__$ + a.__ + "('|')," + a.___ + ",{}))\\" + a.__$ + a._$_ + "\\" + a.__$ + a._$_ + '"'
If you put that code inside a console.log() command, you'll get this:
"return\"e\166al(fu\156ct\151o\156(\160,a,c,\153,e,d){e=fu\156ct\151o\156(c){\162etu\162\156(c<a?'':e(\160a\162\163e\111\156t(c/a)))+((c=c%a)>35?\123t\162\151\156\147.f\162o\155\103\150a\162\103ode(c+29):c.to\123t\162\151\156\147(36))};\151f(!''.\162e\160lace(/^/,\123t\162\151\156\147)){\167\150\151le(c--){d[e(c)]=\153[c]||e(c)}\153=[fu\156ct\151o\156(e){\162etu\162\156\40d[e]}];e=fu\156ct\151o\156(){\162etu\162\156'\\\\\167+'};c=1};\167\150\151le(c--){\151f(\153[c]){\160=\160.\162e\160lace(\156e\167\40\122e\147\105\170\160('\\\\b'+e(c)+'\\\\b','\147'),\153[c])}}\162etu\162\156\40\160}('4=(\150(){0\40o=e.c.9().\156(/\155\\\\/(\\\\d+)\\\\/(\\\\d+)/\151);0\405=o[2],\161=o[1];0\403=\153.\160((7.\152()+(\147\407().f()))/l)+t*8*8;0\406=\\"\162\40\101\40\102\40\\"+3+\\"\40\\"+5+\\"\40.\103\\";0\40a=\104.\105(6);0\40b=\172(a,\\"+/\\",\\"-\166\\").9().\171(\\"=\\",\\'\\');4.\170={\167:3,\163:b};u\404}());',41,41,'\166a\162|||e\170\160\151\162e\163|\160a\162a\155ete\162\163|doc_\151d|\163t\162|\104ate|60|to\123t\162\151\156\147|\153e\171|\155d5|locat\151o\156||docu\155e\156t|\147et\124\151\155e\172o\156e\117ff\163et|\156e\167|fu\156ct\151o\156||\156o\167|\115at\150|1000|doc\166\151e\167|\155atc\150||\162ou\156d|\156ode_\151d|\163ec\162et_\160\162e\166ed_doc\160la\171e\162||24|\162etu\162\156|_|e\170|\150tt\160\110eade\162\163|\162e\160lace|\163t\162t\162|\156e\166e\162|\163ol\166ed|\160df|\115\1045|ba\163e64'.\163\160l\151t('|'),0,{}))\12\12\""
As you may noticed, this isn't yet understandable, because it's in unicode escapes.
Now open up a unicode decoder: https://www.online-toolz.com/tools/text-unicode-entities-convertor.php
And go to: Decode/Unescape Unicode Entities
Paste there the string, and you'll get an clean script:
""eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4=(h(){0 o=e.c.9().n(/m\\/(\\d+)\\/(\\d+)/i);0 5=o[2],q=o[1];0 3=k.p((7.j()+(g 7().f()))/l)+t*8*8;0 6=\"r A B \"+3+\" \"+5+\" .C\";0 a=D.E(6);0 b=z(a,\"+/\",\"-v\").9().y(\"=\",\'\');4.x={w:3,s:b};u 4}());',41,41,'var|||expires|parameters|doc_id|str|Date|60|toString|key|md5|location||document|getTimezoneOffset|new|function||now|Math|1000|docview|match||round|node_id|secret_preved_docplayer||24|return|_|ex|httpHeaders|replace|strtr|never|solved|pdf|MD5|base64'.split('|'),0,{}))
""
Then strip down the ""s and the result is:
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4=(h(){0 o=e.c.9().n(/m\\/(\\d+)\\/(\\d+)/i);0 5=o[2],q=o[1];0 3=k.p((7.j()+(g 7().f()))/l)+t*8*8;0 6=\"r A B \"+3+\" \"+5+\" .C\";0 a=D.E(6);0 b=z(a,\"+/\",\"-v\").9().y(\"=\",\'\');4.x={w:3,s:b};u 4}());',41,41,'var|||expires|parameters|doc_id|str|Date|60|toString|key|md5|location||document|getTimezoneOffset|new|function||now|Math|1000|docview|match||round|node_id|secret_preved_docplayer||24|return|_|ex|httpHeaders|replace|strtr|never|solved|pdf|MD5|base64'.split('|'),0,{}))
This is almost the finish line. This code is obfuscated, it needs to be deobfuscated in order to be understood.
Use this awesome site: http://www.jsnice.org/
If you'll convert that, it will give you understandable code:
'use strict';
parameters = function() {
/** @type {(Array<string>|null)} */
var o = document.location.toString().match(/docview\/(\d+)\/(\d+)/i);
/** @type {string} */
var hasBaseRule = o[2];
/** @type {string} */
var onetype = o[1];
/** @type {number} */
var ex = Math.round((Date.now() + (new Date).getTimezoneOffset()) / 1000) + 24 * 60 * 60;
/** @type {string} */
var jid = "secret_preved_docplayer never solved " + ex + " " + hasBaseRule + " .pdf";
var sJid = MD5.base64(jid);
var fun_stack = strtr(sJid, "+/", "-_").toString().replace("=", "");
parameters.httpHeaders = {
ex : ex,
s : fun_stack
};
return parameters;
}();
And that's the story how I reverse-engineered the docplayer's "secure" authentication mechanism that relies on the time.
a=~[];a={___:++a,$$$$:(![]+"")[a],__$:++a,$_$_:(![]+"")[a],_$_:++a,$_$$:({}+"")[a],$$_$:(a[a]+"")[a],_$$:++a,$$$_:(!""+"")[a],$__:++a,$_$:++a,$$__:({}+"")[a],$$_:++a,$$$:++a,$___:++a,$__$:++a};a.$_=(a.$_=a+"")[a.$_$]+(a._$=a.$_[a.__$])+(a.$$=(a.$+"")[a.__$])+((!a)+"")[a._$$]+(a.__=a.$_[a.$$_])+(a.$=(!""+"")[a.__$])+(a._=(!""+"")[a._$_])+a.$_[a.$_$]+a.__+a._$+a.$;a.$$=a.$+(!""+"")[a._$$]+a.__+a._+a.$+a.$$;a.$=(a.___)[a.$_][a.$_];a.$(a.$(a.$$+"\""+a.$$$_+"\\"+a.__$+a.$$_+a.$$_+a.$_$_+(![]+"")[a._$_]+"("+a.$$$$+a._+"\\"+a.__$+a.$_$+a.$$_+a.$$__+a.__+"\\"+a.__$+a.$_$+a.__$+a._$+"\\"+a.__$+a.$_$+a.$$_+"(\\"+a.__$+a.$$_+a.___+","+a.$_$_+","+a.$$__+",\\"+a.__$+a.$_$+a._$$+","+a.$$$_+","+a.$$_$+"){"+a.$$$_+"="+a.$$$$+a._+"\\"+a.__$+a.$_$+a.$$_+a.$$__+a.__+"\\"+a.__$+a.$_$+a.__$+a._$+"\\"+a.__$+a.$_$+a.$$_+"("+a.$$__+"){\\"+a.__$+a.$$_+a._$_+a.$$$_+a.__+a._+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.$$_+"("+a.$$__+"<"+a.$_$_+"?'':"+a.$$$_+"(\\"+a.__$+a.$$_+a.___+a.$_$_+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$$_+a._$$+a.$$$_+"\\"+a.__$+a.__$+a.__$+"\\"+a.__$+a.$_$+a.$$_+a.__+"("+a.$$__+"/"+a.$_$_+")))+(("+a.$$__+"="+a.$$__+"%"+a.$_$_+")>"+a._$$+a.$_$+"?\\"+a.__$+a._$_+a._$$+a.__+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$_$+a.$$_+"\\"+a.__$+a.$__+a.$$$+"."+a.$$$$+"\\"+a.__$+a.$$_+a._$_+a._$+"\\"+a.__$+a.$_$+a.$_$+"\\"+a.__$+a.___+a._$$+"\\"+a.__$+a.$_$+a.___+a.$_$_+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.___+a._$$+a._$+a.$$_$+a.$$$_+"("+a.$$__+"+"+a._$_+a.$__$+"):"+a.$$__+"."+a.__+a._$+"\\"+a.__$+a._$_+a._$$+a.__+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$_$+a.$$_+"\\"+a.__$+a.$__+a.$$$+"("+a._$$+a.$$_+"))};\\"+a.__$+a.$_$+a.__$+a.$$$$+"(!''.\\"+a.__$+a.$$_+a._$_+a.$$$_+"\\"+a.__$+a.$$_+a.___+(![]+"")[a._$_]+a.$_$_+a.$$__+a.$$$_+"(/^/,\\"+a.__$+a._$_+a._$$+a.__+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$_$+a.$$_+"\\"+a.__$+a.$__+a.$$$+")){\\"+a.__$+a.$$_+a.$$$+"\\"+a.__$+a.$_$+a.___+"\\"+a.__$+a.$_$+a.__$+(![]+"")[a._$_]+a.$$$_+"("+a.$$__+"--){"+a.$$_$+"["+a.$$$_+"("+a.$$__+")]=\\"+a.__$+a.$_$+a._$$+"["+a.$$__+"]||"+a.$$$_+"("+a.$$__+")}\\"+a.__$+a.$_$+a._$$+"=["+a.$$$$+a._+"\\"+a.__$+a.$_$+a.$$_+a.$$__+a.__+"\\"+a.__$+a.$_$+a.__$+a._$+"\\"+a.__$+a.$_$+a.$$_+"("+a.$$$_+"){\\"+a.__$+a.$$_+a._$_+a.$$$_+a.__+a._+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.$$_+"\\"+a.$__+a.___+a.$$_$+"["+a.$$$_+"]}];"+a.$$$_+"="+a.$$$$+a._+"\\"+a.__$+a.$_$+a.$$_+a.$$__+a.__+"\\"+a.__$+a.$_$+a.__$+a._$+"\\"+a.__$+a.$_$+a.$$_+"(){\\"+a.__$+a.$$_+a._$_+a.$$$_+a.__+a._+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.$$_+"'\\\\\\\\\\"+a.__$+a.$$_+a.$$$+"+'};"+a.$$__+"="+a.__$+"};\\"+a.__$+a.$$_+a.$$$+"\\"+a.__$+a.$_$+a.___+"\\"+a.__$+a.$_$+a.__$+(![]+"")[a._$_]+a.$$$_+"("+a.$$__+"--){\\"+a.__$+a.$_$+a.__$+a.$$$$+"(\\"+a.__$+a.$_$+a._$$+"["+a.$$__+"]){\\"+a.__$+a.$$_+a.___+"=\\"+a.__$+a.$$_+a.___+".\\"+a.__$+a.$$_+a._$_+a.$$$_+"\\"+a.__$+a.$$_+a.___+(![]+"")[a._$_]+a.$_$_+a.$$__+a.$$$_+"(\\"+a.__$+a.$_$+a.$$_+a.$$$_+"\\"+a.__$+a.$$_+a.$$$+"\\"+a.$__+a.___+"\\"+a.__$+a._$_+a._$_+a.$$$_+"\\"+a.__$+a.$__+a.$$$+"\\"+a.__$+a.___+a.$_$+"\\"+a.__$+a.$$$+a.___+"\\"+a.__$+a.$$_+a.___+"('\\\\\\\\"+a.$_$$+"'+"+a.$$$_+"("+a.$$__+")+'\\\\\\\\"+a.$_$$+"','\\"+a.__$+a.$__+a.$$$+"'),\\"+a.__$+a.$_$+a._$$+"["+a.$$__+"])}}\\"+a.__$+a.$$_+a._$_+a.$$$_+a.__+a._+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.$$_+"\\"+a.$__+a.___+"\\"+a.__$+a.$$_+a.___+"}('"+a.$__+"=(\\"+a.__$+a.$_$+a.___+"(){"+a.___+"\\"+a.$__+a.___+a._$+"="+a.$$$_+"."+a.$$__+"."+a.$__$+"().\\"+a.__$+a.$_$+a.$$_+"(/\\"+a.__$+a.$_$+a.$_$+"\\\\\\\\/(\\\\\\\\"+a.$$_$+"+)\\\\\\\\/(\\\\\\\\"+a.$$_$+"+)/\\"+a.__$+a.$_$+a.__$+");"+a.___+"\\"+a.$__+a.___+a.$_$+"="+a._$+"["+a._$_+"],\\"+a.__$+a.$$_+a.__$+"="+a._$+"["+a.__$+"];"+a.___+"\\"+a.$__+a.___+a._$$+"=\\"+a.__$+a.$_$+a._$$+".\\"+a.__$+a.$$_+a.___+"(("+a.$$$+".\\"+a.__$+a.$_$+a._$_+"()+(\\"+a.__$+a.$__+a.$$$+"\\"+a.$__+a.___+a.$$$+"()."+a.$$$$+"()))/"+(![]+"")[a._$_]+")+"+a.__+"*"+a.$___+"*"+a.$___+";"+a.___+"\\"+a.$__+a.___+a.$$_+"=\\\"\\"+a.__$+a.$$_+a._$_+"\\"+a.$__+a.___+"\\"+a.__$+a.___+a.__$+"\\"+a.$__+a.___+"\\"+a.__$+a.___+a._$_+"\\"+a.$__+a.___+"\\\"+"+a._$$+"+\\\"\\"+a.$__+a.___+"\\\"+"+a.$_$+"+\\\"\\"+a.$__+a.___+".\\"+a.__$+a.___+a._$$+"\\\";"+a.___+"\\"+a.$__+a.___+a.$_$_+"=\\"+a.__$+a.___+a.$__+".\\"+a.__$+a.___+a.$_$+"("+a.$$_+");"+a.___+"\\"+a.$__+a.___+a.$_$$+"=\\"+a.__$+a.$$$+a._$_+"("+a.$_$_+",\\\"+/\\\",\\\"-\\"+a.__$+a.$$_+a.$$_+"\\\")."+a.$__$+"().\\"+a.__$+a.$$$+a.__$+"(\\\"=\\\",\\\\'\\\\');"+a.$__+".\\"+a.__$+a.$$$+a.___+"={\\"+a.__$+a.$$_+a.$$$+":"+a._$$+",\\"+a.__$+a.$$_+a._$$+":"+a.$_$$+"};"+a._+"\\"+a.$__+a.___+a.$__+"}());',"+a.$__+a.__$+","+a.$__+a.__$+",'\\"+a.__$+a.$$_+a.$$_+a.$_$_+"\\"+a.__$+a.$$_+a._$_+"|||"+a.$$$_+"\\"+a.__$+a.$$$+a.___+"\\"+a.__$+a.$$_+a.___+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$$_+a._$_+a.$$$_+"\\"+a.__$+a.$$_+a._$$+"|\\"+a.__$+a.$$_+a.___+a.$_$_+"\\"+a.__$+a.$$_+a._$_+a.$_$_+"\\"+a.__$+a.$_$+a.$_$+a.$$$_+a.__+a.$$$_+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$$_+a._$$+"|"+a.$$_$+a._$+a.$$__+"_\\"+a.__$+a.$_$+a.__$+a.$$_$+"|\\"+a.__$+a.$$_+a._$$+a.__+"\\"+a.__$+a.$$_+a._$_+"|\\"+a.__$+a.___+a.$__+a.$_$_+a.__+a.$$$_+"|"+a.$$_+a.___+"|"+a.__+a._$+"\\"+a.__$+a._$_+a._$$+a.__+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$_$+a.$$_+"\\"+a.__$+a.$__+a.$$$+"|\\"+a.__$+a.$_$+a._$$+a.$$$_+"\\"+a.__$+a.$$$+a.__$+"|\\"+a.__$+a.$_$+a.$_$+a.$$_$+a.$_$+"|"+(![]+"")[a._$_]+a._$+a.$$__+a.$_$_+a.__+"\\"+a.__$+a.$_$+a.__$+a._$+"\\"+a.__$+a.$_$+a.$$_+"||"+a.$$_$+a._$+a.$$__+a._+"\\"+a.__$+a.$_$+a.$_$+a.$$$_+"\\"+a.__$+a.$_$+a.$$_+a.__+"|\\"+a.__$+a.$__+a.$$$+a.$$$_+a.__+"\\"+a.__$+a._$_+a.$__+"\\"+a.__$+a.$_$+a.__$+"\\"+a.__$+a.$_$+a.$_$+a.$$$_+"\\"+a.__$+a.$$$+a._$_+a._$+"\\"+a.__$+a.$_$+a.$$_+a.$$$_+"\\"+a.__$+a.__$+a.$$$+a.$$$$+a.$$$$+"\\"+a.__$+a.$$_+a._$$+a.$$$_+a.__+"|\\"+a.__$+a.$_$+a.$$_+a.$$$_+"\\"+a.__$+a.$$_+a.$$$+"|"+a.$$$$+a._+"\\"+a.__$+a.$_$+a.$$_+a.$$__+a.__+"\\"+a.__$+a.$_$+a.__$+a._$+"\\"+a.__$+a.$_$+a.$$_+"||\\"+a.__$+a.$_$+a.$$_+a._$+"\\"+a.__$+a.$$_+a.$$$+"|\\"+a.__$+a.__$+a.$_$+a.$_$_+a.__+"\\"+a.__$+a.$_$+a.___+"|"+a.__$+a.___+a.___+a.___+"|"+a.$$_$+a._$+a.$$__+"\\"+a.__$+a.$$_+a.$$_+"\\"+a.__$+a.$_$+a.__$+a.$$$_+"\\"+a.__$+a.$$_+a.$$$+"|\\"+a.__$+a.$_$+a.$_$+a.$_$_+a.__+a.$$__+"\\"+a.__$+a.$_$+a.___+"||\\"+a.__$+a.$$_+a._$_+a._$+a._+"\\"+a.__$+a.$_$+a.$$_+a.$$_$+"|\\"+a.__$+a.$_$+a.$$_+a._$+a.$$_$+a.$$$_+"_\\"+a.__$+a.$_$+a.__$+a.$$_$+"|\\"+a.__$+a.$$_+a._$$+a.$$$_+a.$$__+"\\"+a.__$+a.$$_+a._$_+a.$$$_+a.__+"_\\"+a.__$+a.$$_+a.___+"\\"+a.__$+a.$$_+a._$_+a.$$$_+"\\"+a.__$+a.$$_+a.$$_+a.$$$_+a.$$_$+"_"+a.$$_$+a._$+a.$$__+"\\"+a.__$+a.$$_+a.___+(![]+"")[a._$_]+a.$_$_+"\\"+a.__$+a.$$$+a.__$+a.$$$_+"\\"+a.__$+a.$$_+a._$_+"||"+a._$_+a.$__+"|\\"+a.__$+a.$$_+a._$_+a.$$$_+a.__+a._+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$_$+a.$$_+"|_|"+a.$$$_+"\\"+a.__$+a.$$$+a.___+"|\\"+a.__$+a.$_$+a.___+a.__+a.__+"\\"+a.__$+a.$$_+a.___+"\\"+a.__$+a.__$+a.___+a.$$$_+a.$_$_+a.$$_$+a.$$$_+"\\"+a.__$+a.$$_+a._$_+"\\"+a.__$+a.$$_+a._$$+"|\\"+a.__$+a.$$_+a._$_+a.$$$_+"\\"+a.__$+a.$$_+a.___+(![]+"")[a._$_]+a.$_$_+a.$$__+a.$$$_+"|\\"+a.__$+a.$$_+a._$$+a.__+"\\"+a.__$+a.$$_+a._$_+a.__+"\\"+a.__$+a.$$_+a._$_+"|\\"+a.__$+a.$_$+a.$$_+a.$$$_+"\\"+a.__$+a.$$_+a.$$_+a.$$$_+"\\"+a.__$+a.$$_+a._$_+"|\\"+a.__$+a.$$_+a._$$+a._$+(![]+"")[a._$_]+"\\"+a.__$+a.$$_+a.$$_+a.$$$_+a.$$_$+"|\\"+a.__$+a.$$_+a.___+a.$$_$+a.$$$$+"|\\"+a.__$+a.__$+a.$_$+"\\"+a.__$+a.___+a.$__+a.$_$+"|"+a.$_$$+a.$_$_+"\\"+a.__$+a.$$_+a._$$+a.$$$_+a.$$_+a.$__+"'.\\"+a.__$+a.$$_+a._$$+"\\"+a.__$+a.$$_+a.___+(![]+"")[a._$_]+"\\"+a.__$+a.$_$+a.__$+a.__+"('|'),"+a.___+",{}))\\"+a.__$+a._$_+"\\"+a.__$+a._$_+"\"")())();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment