-
Notifications
You must be signed in to change notification settings - Fork 7
/
lsbtools.min.js
1 lines (1 loc) · 6.94 KB
/
lsbtools.min.js
1
var lsbTools=function(){"use strict";function r(r){function t(r){var t,n,i;for(t=0;t<256;++t)o[t]=t;for(t=0;t<256;++t)n=n+o[t]+r[t%r.length]&255,i=o[t],o[t]=o[n],o[n]=i}function n(){var r;return e=e+1&255,f=f+o[e]&255,r=o[e],o[e]=o[f],o[f]=r,o[r+o[e]&255]}function i(){return(n()+(n()<<8)+(n()<<16)+(n()<<24)>>>0)/4294967295}var o=[],e=0,f=0;return t(r),{rekey:t,byte:n,float:i}}function t(r,t,i){function o(){for(var r=[],t=0;t<128;t++)r.push((v[2*t]+v[2*t+1])/2);return r}function e(){for(var r=[],t=0;t<128;t++)r.push(v[2*t+1]);return r}var f,a,u,h,l,c,m=4*t,s=Math.floor(r.length/t/4),v=[],g=0;for(f=0;f<256;f++)v[f]=1;for(f=0;f<s;f++){for(a=0;a<t;a++)u=m*f+4*a,v[r[u]]++,v[r[u+1]]++,v[r[u+2]]++,i&&(r[u]&=1,r[u]*=255,r[u+1]&=1,r[u+1]*=255,r[u+2]&=1,r[u+2]*=255);for(h=n(o(),e()),l=h>.5?191:Math.floor(191*h*2),c=h<.5?191:Math.floor(191*(1-h)*2),h>.95&&(g+=3*t),a=0;a<t;a++)u=m*f+4*a,r[u]=Math.floor(.25*r[u])+l,r[u+1]=Math.floor(.25*r[u+1])+c,r[u+2]=Math.floor(.25*r[u+2]),r[u+3]=255}return g}var n=function(){function r(r){var t,n,i;if(isNaN(r)||r<=0)return NaN;for(i=h[0],t=1;t<h.length;t++)i+=h[t]/(r+t);return n=r+.5+607/128,(r+.5)*Math.log(n)-n+l+Math.log(i/r)}function t(r,t){return n(r,t,c,Math.pow(2,32)-1)}function n(t,n,o,e){if(isNaN(t)||isNaN(n)||t<=0||n<0)return NaN;if(0===n)return 0;if(n>=t+1)return 1-i(t,n,o,e);for(var f=0,a=1/t,u=a;Math.abs(a/u)>o&&f<e&&u<1/0;)f+=1,a*=n/(t+f),u+=a;return isFinite(u)?Math.exp(-n+t*Math.log(n)-r(t))*u:1}function i(t,i,e,f){var a;return isNaN(t)||isNaN(i)||t<=0||i<0?NaN:0===i?1:i<t+1?1-n(t,i,e,f):(a=1/o(i,e,f,function(r,n){return 2*r+1-t+n},function(r){return r*(t-r)}),Math.exp(-i+t*Math.log(i)-r(t))*a)}function o(r,t,n,i,o){for(var e=1,f=i(0,r),a=0,u=1,h=f/u,l=0,c=Number.MAX_VALUE;l<n&&c>t;){++l;var m=i(l,r),s=o(l,r),v=m*f+s*e,g=m*u+s*a,M=!1;if(!isFinite(v)||!isFinite(g)){var N=1,S=1,w=5,R=Math.max(m,s);if(R<=0)throw"Can't scale";M=!0;for(var U=0;U<w&&(S=N,N*=R,0!==m&&m>s?(v=f/S+s/N*e,g=u/S+s/N*a):0!==s&&(v=m/N*f+e/S,g=m/N*u+a/S),M=!isFinite(v)||!isFinite(g),M);U++);}if(M)throw"Can't scale";var p=v/g;if(isNaN(p))throw"NaN divergence";c=Math.abs(p/h-1),h=v/g,e=f,f=v,a=u,u=g}if(l>=n)throw"Non convergent";return h}function e(r,n){return r<=0?0:t(n/2,r/2)}function f(r){for(var t=0;t<r.length;t++)if(r[t]<=0)throw"NOT_POSITIVE_ELEMENT_AT_INDEX "+t}function a(r){for(var t=0;t<r.length;t++)if(r[t]<0)throw"NEGATIVE_ELEMENT_AT_INDEX "+t}function u(r,t){if(r.length<2)throw"Dimension mismatch";if(r.length!=t.length)throw"Dimension not equal";f(r),a(t);var n,i=0,o=0;for(n=0;n<t.length;n++)i+=r[n],o+=t[n];var e=1,u=!1;Math.abs(i-o)>1e-5&&(e=o/i,u=!0);var h,l=0;for(n=0;n<t.length;n++)u?(h=t[n]-e*r[n],l+=h*h/(e*r[n])):(h=t[n]-r[n],l+=h*h/r[n]);return l}var h=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-2102644417241049e-20,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22],l=.5*Math.log(2*Math.PI),c=1e-14;return function(r,t){return 1-e(u(r,t),r.length-1)}}(),i=function(){function r(r,t){for(var e=[],f=0;f<t.length;f++)1==t[f]?e[f]=i(r[f]):t[f]==-1?e[f]=o(r[f]):e[f]=r[f];var a=n(r),u=n(e);return a==u?"U":a<u?"R":"S"}function t(r){for(var t=[],n=0;n<r.length;n++)t[n]=1^r[n];return t}function n(r){for(var t=0,n=0;n<r.length-1;n++)t+=Math.abs(r[n+1]-r[n]);return t}function i(r){return 1&r?r-1:r+1}function o(r){return 1&r?r+1:r-1}function e(r){var t=r.R-r.S,n=r.mR-r.mS,i=r.iR-r.iS,o=r.imR-r.imS,e=2*(i+t),f=n-o-i-3*t,a=t-n,u=f*f-4*e*a;if(u<0)return null;if(f*=-1,0===u)return f/2/e/(f/2/e-.5);u=Math.sqrt(u);var h=(f+u)/2/e,l=(f-u)/2/e;return Math.abs(h)<Math.abs(l)?h/(h-.5):l/(l-.5)}return function(n,i,o,f,a){o=o||[1,0,0,1],f=f||2,a=a||2;var u,h,l,c,m,s,v,g,M=o.map(function(r){return r?-1*r:0}),N=n.length/4/i,S=Math.floor(i/f),w=Math.floor(N/a),R=[{R:0,S:0,U:0,mR:0,mS:0,mU:0,iR:0,iS:0,iU:0,imR:0,imS:0,imU:0},{R:0,S:0,U:0,mR:0,mS:0,mU:0,iR:0,iS:0,iU:0,imR:0,imS:0,imU:0},{R:0,S:0,U:0,mR:0,mS:0,mU:0,iR:0,iS:0,iU:0,imR:0,imS:0,imU:0}];for(h=0;h<w;h++)for(u=0;u<S;u++){for(s=[],v=[],g=[],c=0;c<a;c++)for(l=0;l<f;l++)m=4*(i*(h*a+c)+u*f+l),s.push(n[m]),v.push(n[m+1]),g.push(n[m+2]);R[0][r(s,o)]++,R[1][r(v,o)]++,R[2][r(g,o)]++,R[0]["m"+r(s,M)]++,R[1]["m"+r(v,M)]++,R[2]["m"+r(g,M)]++,s=t(s),v=t(v),g=t(g),R[0]["i"+r(s,o)]++,R[1]["i"+r(v,o)]++,R[2]["i"+r(g,o)]++,R[0]["im"+r(s,M)]++,R[1]["im"+r(v,M)]++,R[2]["im"+r(g,M)]++}return(e(R[0])+e(R[1])+e(R[2]))/3}}(),o=function(){function t(r,t){var n,i,o=[];for(n=0;n<r;n++)i=Math.round(n*t.float()),i!=n&&(o[n]=o[i]),o[i]=n;return o}function n(r){return r=M[r],4*Math.floor(r/3)+r%3}function i(r){return 4*Math.floor(r/3)+r%3}function o(r,t,n){var i=N(t);(1&r[i])!=n&&(b++,!r[i]||r[i]<255&&Math.random()<.5?r[i]++:r[i]--)}function e(r,t,n){var i=N(t);(1&r[i])!=n&&(b++,r[i]^=1)}function f(r,t){return 1&r[N(t)]}function a(r,t){for(var n,i,o,e=(1<<r)-1;E<8;){for(o=0,n=1;n<=e;n++)o^=f(t,U++)*n;k+=o<<E,E+=r}return i=255&k,k>>>=8,E-=8,i}function u(r,t,n){var i,o,e,a=(1<<r)-1;for(k+=n<<E,E+=8;E>=r;){for(o=0,e=k&(1<<r)-1,k>>>=r,E-=r,i=1;i<=a;i++)o^=f(t,U++)*i;o^e&&S(t,U-a+(o^e)-1),p+=r}}function h(r,t,n){return a(r,t)^n.byte()}function l(r,t,n,i){u(r,t,n^i.byte())}function c(r,t,n){for(var i=Math.ceil((r-E)/8),o=0;o<i;o++)w(r,t,0,n)}function m(f,m,s){var v,g,d,y,x,T={shuffle:!0,matrix:!0,mask:!0,key:[1,2,3,4,5,6,7,8,9,0],pm1code:!0},_=f.length/4*3;s=s||{},U=0,p=0,b=0,k=0,E=0;for(v in T)s.hasOwnProperty(v)||(s[v]=T[v]);if((s.shuffle||s.matrix||s.mask)&&(x=r(s.key)),S=s.pm1code?o:e,s.mask?(w=l,R=h):(w=u,R=a),s.shuffle?(N=n,M=t(_,x)):N=i,d=16,s.matrix)for(;d>0&&(g=(1<<d)-1,y=Math.floor((_-4)/g)*d,!(y>=8*(m.length+4)));)d--;else y=_,d=1;if(0===d||y<4*(m.length+4))throw"Data will not fit into image.";for(s.matrix&&(d--,S(f,0,1&d),S(f,1,d>>1&1),S(f,2,d>>2&1),S(f,3,d>>3&1),d++,p+=4),w(d,f,255&m.length,x),w(d,f,m.length>>>8&255,x),w(d,f,m.length>>>16&255,x),w(d,f,m.length>>>25&255,x),v=0;v<m.length;v++)w(d,f,m[v],x);return c(d,f,x),{bitsWrited:p,bitsChanged:b,n:d,k:(1<<d)-1}}function s(c,m){var s,v,g,d,y={shuffle:!0,matrix:!0,mask:!0,key:[1,2,3,4,5,6,7,8,9,0]},x=c.length/4*3;m=m||{},U=0,p=0,b=0,k=0,E=0;for(s in y)m.hasOwnProperty(s)||(m[s]=y[s]);(m.shuffle||m.matrix||m.mask)&&(d=r(m.key)),S=m.pm1code?o:e,m.mask?(w=l,R=h):(w=u,R=a),m.shuffle?(N=n,M=t(x,d)):N=i,g=1,m.matrix&&(g=1,g+=f(c,0),g+=f(c,1)<<1,g+=f(c,2)<<2,g+=f(c,3)<<3),v=(1<<g)-1;var T=Math.floor(Math.floor((x-4)/v)*g/8),_=R(g,c,d)+256*R(g,c,d)+65536*R(g,c,d)+16777216*R(g,c,d);_+4>T&&(_=T-4);var A=new Uint8Array(_);for(s=0;s<_;s++)A[s]=R(g,c,d);return A}function v(r){for(var t=0;t<r.length;t+=4)r[t]&=1,r[t]*=255,r[t+1]&=1,r[t+1]*=255,r[t+2]&=1,r[t+2]*=255,r[t+3]=255}function g(r,t){var n;if(t)for(n=0;n<r.length/4;n++)r[4*n]|=1,r[4*n+1]|=1,r[4*n+2]|=1;else for(n=0;n<r.length/4;n++)r[4*n]&=254,r[4*n+1]&=254,r[4*n+2]&=254}var M,N,S,w,R,U=0,p=0,b=0,k=0,E=0;return N=i,S=e,R=a,w=u,{read:s,write:m,enhance:v,fill:g}}();return{rc4:r,read:o.read,write:o.write,enhance:o.enhance,fill:o.fill,chiAttack:t,rsDetect:i}}();