MichaelXF / js-confuser

JS-Confuser is a JavaScript obfuscation tool to make your programs *impossible* to read.
https://js-confuser.com
MIT License
204 stars 32 forks source link

TypeError: Object.defineProperty called on non-object #107

Closed mini-programmer closed 1 year ago

mini-programmer commented 1 year ago

the error on the title happens when the obfuscated code is executed in an browser.. config: target: "browser", es5: false, compact: true, hexadecimalNumbers: true, minify: true, renameVariables: true, renameGlobals: true, identifierGenerator: "randomized", controlFlowFlattening: false, globalConcealing: true, stringCompression: true, stringConcealing: true, stringEncoding: true, stringSplitting: true, duplicateLiteralsRemoval: true, dispatcher: true, rgf: true, objectExtraction: true, flatten: true, deadCode: true, calculator: true, lock: { antiDebug: false, nativeFunctions: true, selfDefending: true, integrity: true }, movedDeclarations: true, opaquePredicates: true, shuffle: true, stack: true input code: var r = Uint8Array, n = Uint32Array, e = Math.pow, t = new n(8), f = [], o = new n(64); function u(r) { return ((r - (0 | r)) * e(2, 32)) | 0; } for (var a = 2, i = 0; i < 64; ) { for (var c = !0, w = 2; w <= a / 2; w++) a % w == 0 && (c = !1); c && (i < 8 && (t[i] = u(e(a, 0.5))), (f[i] = u(e(a, 1 / 3))), i++), a++; } var v = !!new r(new n([1]).buffer)[0]; function s(r) { return v ? (r >>> 24) | (((r >>> 16) & 255) << 8) | ((65280 & r) << 8) | (r << 24) : r; } function l(r, n) { return (r >>> n) | (r << (32 - n)); } function b(e) { var u, a = t.slice(), i = e.length, c = 8 * i, w = 512 - ((c + 64) % 512) - 1 + c + 65, v = new r(w / 8), b = new n(v.buffer); v.set(e, 0), (v[i] = 128), (b[b.length - 1] = s(c)); for (var d = 0; d < w / 32; d += 16) { var h = a.slice(); for (u = 0; u < 64; u++) { var g; if (u < 16) g = s(b[d + u]); else { var p = o[u - 15], y = o[u - 2]; g = o[u - 7] + o[u - 16] + (l(p, 7) ^ l(p, 18) ^ (p >>> 3)) + (l(y, 17) ^ l(y, 19) ^ (y >>> 10)); } o[u] = g |= 0; for ( var A = (l(h[4], 6) ^ l(h[4], 11) ^ l(h[4], 25)) + ((h[4] & h[5]) ^ (~h[4] & h[6])) + h[7] + g + f[u], U = (l(h[0], 2) ^ l(h[0], 13) ^ l(h[0], 22)) + ((h[0] & h[1]) ^ (h[2] & (h[0] ^ h[1]))), m = 7; m > 0; m-- ) h[m] = h[m - 1]; (h[0] = (A + U) | 0), (h[4] = (h[4] + A) | 0); } for (u = 0; u < 8; u++) a[u] = (a[u] + h[u]) | 0; } return new r( new n( a.map(function (r) { return s(r); }) ).buffer ); } const d = new TextEncoder("utf-8"); window.sha256 = function (r) { return b(d.encode(r)).reduce( (r, n) => r + ("00" + n.toString(16)).substr(-2), "" ); };

MichaelXF commented 1 year ago

Seems to be an issue with RGF and Integrity being used at the same time. Try disabling one of them until next release.

mini-programmer commented 1 year ago

Seems to be an issue with RGF and Integrity being used at the same time. Try disabling one of them until next release.

ok