pwgen-for-bios/decrypt_bios.min.js

2 lines
8.3 KiB
JavaScript
Raw Normal View History

2012-01-19 18:32:55 -05:00
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} funct