pwgen-for-bios/decrypt_bios.min.js
2012-01-20 01:32:55 +02:00

1 line
8.3 KiB
JavaScript

var keyboardDict={2:"1",3:"2",4:"3",5:"4",6:"5",7:"6",8:"7",9:"8",10:"9",11:"0",16:"q",17:"w",18:"e",19:"r",20:"t",21:"y",22:"u",23:"i",24:"o",25:"p",30:"a",31:"s",32:"d",33:"f",34:"g",35:"h",36:"j",37:"k",38:"l",44:"z",45:"x",46:"c",47:"v",48:"b",49:"n",50:"m"},SONY="sony",SAMSUNG="samsung",PHOENIX="phoenix",HP_COMPAQ="hp_compaq_phoenix",FSI_PHOENIX="fsi_phoenix",FSI_L_PHOENIX="fsi_l_phoenix",FSI_P_PHOENIX="fsi_p_phoenix",FSI_S_PHOENIX="fsi_s_phoenix",FSI_X_PHOENIX="fsi_x_phoenix",INSYDE="insyde", HP_MINI="hp_mini",FSI_20_DEC_NEW="fsi_20_dec_new",FSI_20_DEC_OLD="fsi_20_dec_old",FSI_HEX="fsi_hex";if("undefined"==typeof Object.keys)Object.keys=function(a){var b=[],c;for(c in a)a.hasOwnProperty(c)&&b.push(c);return b};var keys=Object.keys;"undefined"==typeof values&&(values=function(a){var b=[],c;for(c in a)a.hasOwnProperty(c)&&b.push(a[c]);return b});Array.prototype.swap=function(a,b){var c=this[a];this[a]=this[b];this[b]=c;return this}; if("undefined"===typeof String.prototype.trim)String.prototype.trim=function(){return(""+this).replace(/^\s+|\s+$/g,"")};function min(a,b){return a<b?a:b}function CreateHashTable2(a,b){for(var c=min(a.length,b.length),d={},e=0;e<c;e++)d[a[e]]=b[e];return d}function CreateHashTable3(a){for(var b={},c=0;c<a.length;c++)b[a[c][0]]=a[c][1];return b}function CreateHashTable(a,b){return"undefined"==typeof b?CreateHashTable3(a):CreateHashTable2(a,b)}function ord(a){return a.charCodeAt(0)} function chr(a){return String.fromCharCode(a)}function div(a,b){return a/b-a%b/b}function copy_array(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b}var keyboardDictDigits=CreateHashTable(keys(keyboardDict).slice(0,9),values(keyboardDict).slice(0,9)),keyboardDictChars=CreateHashTable(keys(keyboardDict).slice(10,36),values(keyboardDict).slice(10,36)); function keyboardEncToAscii(a){for(var b="",c=0;c<a.length&&!(0==a[c]);c++)if(a[c]in keyboardDict)b+=keyboardDict[a[c]];else return"";return b}function badCRC16(a,b){for(var c="undefined"==typeof b?0:b,d=0,d=0;d<a.length;d++)for(var c=c^a[d],e=8;e--;)c=c&1?c>>1^8193:c>>1;return c} function bruteForce(a,b,c,d,e,f){var b="undefined"==typeof b?0:b,e="undefined"==typeof e?3:e,f="undefined"==typeof f?7:f,g=[0,0,0,0,0,0,0];if(16383<a)return"Bad hash";for(var h=0,c=keys(!0==("undefined"==typeof d?!0:d)?keyboardDictChars:!0==("undefined"==typeof c?!1:c)?keyboardDictDigits:keyboardDict),d=c.length;;){for(var j=Math.random()*d,i=0;7>i;i++)g[i]=c[Math.floor(j%d)],j*=7;h++;if(5E4<h)return"No";for(i=e;i<=f;i++)if(badCRC16(g.slice(0,i),b)==a)return g=g.slice(0,i),keyboardEncToAscii(g)}} function getBiosPwdForSony(a){if(7!=a.length)return"";for(var b=0,c="",d=0;d<a.length;d++)c+="0987654321876543210976543210982109876543109876543221098765436543210987".charAt(parseInt(a.charAt(d))+10*b),b++;return c} function getBiosPwdForSamsung(a){function b(c,a,d){for(var e=[],b=0;b<c.length;b++)e.push(c[b]<<d[7*a+b]&255|c[b]>>8-d[7*a+b]);return e}for(var c=[1,6,2,5,7,3,0,7,1,6,2,5,0,3,0,6,5,1,1,7,2,5,2,3,7,6,2,1,3,7,6,5,0,1,7],d=[],e=1;e<div(a.length,2);e++)d.push(parseInt(a.charAt(2*e)+a.charAt(2*e+1),16));a=parseInt(a.substring(0,2),16)%5;e=keyboardEncToAscii(b(d,a,[7,1,5,3,0,6,2,5,2,3,0,6,1,7,6,1,5,2,7,1,0,3,7,6,1,0,5,2,1,5,7,3,2,0,6]));""==e&&(e=keyboardEncToAscii(b(d,a,c)));return e} function getBiosPwdForGenericPhoenix(a){return bruteForce(parseInt(a))}function getBiosPwdForHPCompaqPhoenix(a){return bruteForce(parseInt(a),17232)}function getBiosPwdForFsiPhoenix(a){return bruteForce(parseInt(a),65,!0,!1,3,7)}function getBiosPwdForFsiLPhoenix(a){return bruteForce(parseInt(a)+1,ord("L"),!0,!1,3,7)}function getBiosPwdForFsiPPhoenix(a){return bruteForce(parseInt(a)+1,ord("P"),!0,!1,3,7)}function getBiosPwdForFsiSPhoenix(a){return bruteForce(parseInt(a)+1,ord("S"),!0,!1,3,7)} function getBiosPwdForFsiXPhoenix(a){return bruteForce(parseInt(a)+1,ord("X"),!0,!1,3,7)}function getBiosPwdForInsyde(a){for(var b="",c=0,d=0,e=0;8>e;e++)d=c=ord("Iou|hj&Z".charAt(e))^ord(a.charAt(e)),d*=1717986919,d=Math.floor(d/Math.pow(2,32)),d=d>>2|d&192,d&2147483648&&d++,d*=10,b+=(c-d).toString();return b} function getBiosPwdForHpmini(a){for(var b={1:"3","0":"1",3:"F",2:"7",5:"Q",4:"V",7:"X",6:"G",9:"O",8:"U",a:"C",c:"E",b:"P",e:"M",d:"T",g:"H",f:"8",i:"Y",h:"Z",k:"S",j:"W",m:"4",l:"K",o:"J",n:"9",q:"5",p:"2",s:"N",r:"B",u:"L",t:"A",w:"D",v:"6",y:"I",x:"4",z:"0"},c={1:"3","0":"1",3:"F",2:"7",5:"Q",4:"V",7:"X",6:"G",9:"O",8:"U",a:"C",c:"E",b:"P",e:"M",d:"T",g:"H",f:"8",i:"Y",h:"Z",k:"S",j:"W",m:"4",l:"K",o:"J",n:"9",q:"5",p:"2",s:"N",r:"B",u:"L",t:"A",w:"D",v:"6",y:"I",x:"R",z:"0"},d="",e="",f=0;f<a.length;f++)d+= b[a.charAt(f).toLowerCase()],e+=c[a.charAt(f).toLowerCase()];return d==e?d.toLowerCase():[d.toLowerCase(),e.toLowerCase()]} function getBiosPwdForFsi20dec_old(a){function b(c,a,b){var f=copy_array(c);f[a[0]]=(c[b[0]]>>4|c[b[3]]<<4)&255;f[a[1]]=c[b[0]]&15|c[b[3]]&240;f[a[2]]=c[b[1]]>>4|c[b[2]]<<4&255;f[a[3]]=c[b[1]]&15|c[b[2]]&240;return f}return function(a){for(var d=0;d<a.length;d++)a[d]^=ord(":3-v@e4i".charAt(d));a.swap(2,6);a.swap(3,7);a=b(a,[0,1,2,3],[0,1,2,3]);a=b(a,[4,5,6,7],[6,7,4,5]);a[0]=a[0]<<3&255|a[0]>>5;a[1]=a[1]<<5&255|a[1]>>3;a[2]=a[2]<<7&255|a[2]>>1;a[3]=a[3]<<4&255|a[3]>>4;a[5]=a[5]<<6&255|a[5]>>2;a[6]= a[6]<<1&255|a[6]>>7;a[7]=a[7]<<2&255|a[7]>>6;for(var d=[],e=0;e<a.length;e++)d[e]=a[e]%36;a=d;d="";for(e=0;e<a.length;e++)d+=9<a[e]?chr(ord("a")+a[e]-10):chr(ord("0")+a[e]);return d}(function(a){for(var a=[parseInt(a.slice(0,5)),parseInt(a.slice(5,10)),parseInt(a.slice(10,15)),parseInt(a.slice(15,20))],b=[],e=0;e<a.length;e++)b.push(a[e]%256),b.push(Math.floor(a[e]/256));return b}(a))} function getBiosPwdForFSI20dec_new(a){for(var b="4798156302,7201593846,5412367098,6587249310,9137605284,3974018625,8052974163".split(","),a=a.charAt(0)+a.charAt(2)+a.charAt(5)+a.charAt(11)+a.charAt(13)+a.charAt(15)+a.charAt(16),c="",d=0,e=0;e<a.length;e++)c+=b[d].charAt(parseInt(a.charAt(e))),d++;return c}function getBiosPwdForFSI20dec(a){return CreateHashTable([FSI_20_DEC_NEW,FSI_20_DEC_OLD],[getBiosPwdForFSI20dec_new(a),getBiosPwdForFsi20dec_old(a)])} function getBiosPwdForFSIhex(a){function b(a){var b=ord("0");return chr(b+(a>>12)%16%10)+chr(b+(a>>8)%16%10)+chr(b+(a>>4)%16%10)+chr(b+(a>>0)%16%10)}function c(a,b){for(var c=0,g=0,h=0;h<a.length;h++)g=b[(ord(a.charAt(h))^c>>8)%256],c=(c<<8^g)&65535;return c}20==a.length&&(a=a.slice(12,20));return function(a){for(var e=[],f=0,g=0;256>g;g++){for(var f=g<<8,h=0;8>h;h++)f<<=1,f&65536&&(f^=4129);e.push(f&65535)}return b(c(a.slice(0,4),e))+b(c(a.slice(4,8),e))}(a)} function has_element(a,b){for(var c=0;c<b.length;c++)if(b[c]==a)return!0;return!1}function numberChecker(a,b,c,d){var c="undefined"==typeof c?!0:c,d="undefined"==typeof c?!1:d,e=0;if(c)c=parseInt(a,10),d=c.toString(10).length;else if(d)c=parseInt(a,16),d=c.toString(16).length;else return!1;for(;"0"==a.charAt(e++);)d++;return NaN!=c&&has_element(d,b)?!0:!1}function autoCheckAndRun(a,b,c,d,e){return numberChecker(a,c,d,e)?b(a):!1} function autoCheckAndRunWithKey(a,b,c,d,e,f){a=autoCheckAndRun(a,b,d,e,f);return!1!=a?(b={},b[c]=a,b):!1}function autoGetBiosPwdForSony(a){return autoCheckAndRunWithKey(a,getBiosPwdForSony,SONY,[7],!0,!1)}function autoGetBiosPwdForSamsung(a){return autoCheckAndRunWithKey(a,getBiosPwdForSamsung,SAMSUNG,[12,16,18],!1,!0)} function autoGetBiosPwdForAllPhoenix(a){return numberChecker(a,[5],!0)?CreateHashTable([PHOENIX,HP_COMPAQ,FSI_PHOENIX,FSI_L_PHOENIX,FSI_P_PHOENIX,FSI_S_PHOENIX,FSI_X_PHOENIX],[getBiosPwdForGenericPhoenix(a),getBiosPwdForHPCompaqPhoenix(a),getBiosPwdForFsiPhoenix(a),getBiosPwdForFsiLPhoenix(a),getBiosPwdForFsiPPhoenix(a),getBiosPwdForFsiSPhoenix(a),getBiosPwdForFsiXPhoenix(a)]):!1}function autoGetBiosPwdForInsyde(a){return autoCheckAndRunWithKey(a,getBiosPwdForInsyde,INSYDE,[8],!0)} function autoGetBiosPwdForHpmini(a){return 10==a.length?CreateHashTable([HP_MINI],[getBiosPwdForHpmini(a)]):!1}function autoGetBiosPwdForFSI20dec(a){return autoCheckAndRun(a,getBiosPwdForFSI20dec,[20],!0)}function autoGetBiosPwdForFSIhex(a){return autoCheckAndRunWithKey(a,getBiosPwdForFSIhex,FSI_HEX,[8,20],!1,!0)}var arr_of_bios_pwgen_fun=[autoGetBiosPwdForSony,autoGetBiosPwdForSamsung,autoGetBiosPwdForAllPhoenix,autoGetBiosPwdForInsyde,autoGetBiosPwdForHpmini,autoGetBiosPwdForFSI20dec,autoGetBiosPwdForFSIhex]; function autoGetBiosPwd(a){for(var b="",c={},a=a.trim().replace(/-/gi,""),d=0;d<arr_of_bios_pwgen_fun.length;d++)if(b=arr_of_bios_pwgen_fun[d](a),!1!=b)for(var e in b)c[e]=b[e];return c};