obscura-js 1.2.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -10
- package/dist/bin/obscura_cli.js +2 -1
- package/dist/bin/obscura_cli.js.map +1 -1
- package/dist/package.json +80 -0
- package/dist/src/antiDebug/index.d.ts +2 -2
- package/dist/src/antiDebug/index.d.ts.map +1 -1
- package/dist/src/antiDebug/index.js.map +1 -1
- package/dist/src/antiDebug/integrityTag.d.ts +2 -19
- package/dist/src/antiDebug/integrityTag.d.ts.map +1 -1
- package/dist/src/antiDebug/integrityTag.js +168 -84
- package/dist/src/antiDebug/integrityTag.js.map +1 -1
- package/dist/src/antiDebug/nativeBinding.d.ts +2 -2
- package/dist/src/antiDebug/nativeBinding.d.ts.map +1 -1
- package/dist/src/antiDebug/nativeBinding.js +50 -45
- package/dist/src/antiDebug/nativeBinding.js.map +1 -1
- package/dist/src/genId.d.ts +15 -5
- package/dist/src/genId.d.ts.map +1 -1
- package/dist/src/genId.js +50 -12
- package/dist/src/genId.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +10 -12
- package/dist/src/index.js.map +1 -1
- package/dist/src/obfuscation/cff.d.ts +7 -7
- package/dist/src/obfuscation/cff.d.ts.map +1 -1
- package/dist/src/obfuscation/cff.js +38 -67
- package/dist/src/obfuscation/cff.js.map +1 -1
- package/dist/src/obfuscation/deadCode.d.ts +2 -2
- package/dist/src/obfuscation/deadCode.d.ts.map +1 -1
- package/dist/src/obfuscation/deadCode.js +61 -96
- package/dist/src/obfuscation/deadCode.js.map +1 -1
- package/dist/src/obfuscation/functionTable.d.ts +2 -2
- package/dist/src/obfuscation/functionTable.d.ts.map +1 -1
- package/dist/src/obfuscation/functionTable.js +73 -77
- package/dist/src/obfuscation/functionTable.js.map +1 -1
- package/dist/src/obfuscation/index.d.ts +2 -2
- package/dist/src/obfuscation/index.d.ts.map +1 -1
- package/dist/src/obfuscation/index.js.map +1 -1
- package/dist/src/obfuscation/mba.d.ts +2 -2
- package/dist/src/obfuscation/mba.d.ts.map +1 -1
- package/dist/src/obfuscation/mba.js +16 -54
- package/dist/src/obfuscation/mba.js.map +1 -1
- package/dist/src/obfuscation/sequenceExpression.d.ts +3 -3
- package/dist/src/obfuscation/sequenceExpression.d.ts.map +1 -1
- package/dist/src/obfuscation/sequenceExpression.js +20 -47
- package/dist/src/obfuscation/sequenceExpression.js.map +1 -1
- package/dist/src/obfuscation/stringPool.d.ts +3 -3
- package/dist/src/obfuscation/stringPool.d.ts.map +1 -1
- package/dist/src/obfuscation/stringPool.js +152 -79
- package/dist/src/obfuscation/stringPool.js.map +1 -1
- package/dist/src/swc-utils.d.ts +171 -0
- package/dist/src/swc-utils.d.ts.map +1 -0
- package/dist/src/swc-utils.js +567 -0
- package/dist/src/swc-utils.js.map +1 -0
- package/dist/src/types.d.ts +5 -3
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +3 -10
package/README.md
CHANGED
|
@@ -13,16 +13,88 @@ A JavaScript code protection library inspired by the obfuscation and anti-debugg
|
|
|
13
13
|
|
|
14
14
|
## Features
|
|
15
15
|
|
|
16
|
-
| Category | Pass | Description
|
|
17
|
-
| ----------- | ----------------------- |
|
|
18
|
-
| Obfuscation | `sequenceExpression` | Flatten `if` blocks into comma-sequence expressions
|
|
19
|
-
| Obfuscation | `mba` | Expand arithmetic into Mixed Boolean Arithmetic (MBA) expressions
|
|
20
|
-
| Obfuscation | `functionTable` | Move function declarations into an indirect table, call by index
|
|
21
|
-
| Obfuscation | `stringPool` | Encrypt
|
|
22
|
-
| Obfuscation | `controlFlowFlattening` | Transform function bodies into flat state machines
|
|
23
|
-
| Obfuscation | `deadCode` | Inject unreachable code blocks
|
|
24
|
-
| Anti-debug | `nativeBinding` | Pre-bind native methods to defend against prototype pollution
|
|
25
|
-
| Anti-debug | `integrityTag` | Attach Symbol-based integrity tags to detect object cloning/replace
|
|
16
|
+
| Category | Pass | Description |
|
|
17
|
+
| ----------- | ----------------------- | ------------------------------------------------------------------------ |
|
|
18
|
+
| Obfuscation | `sequenceExpression` | Flatten `if` blocks into comma-sequence expressions |
|
|
19
|
+
| Obfuscation | `mba` | Expand arithmetic into Mixed Boolean Arithmetic (MBA) expressions |
|
|
20
|
+
| Obfuscation | `functionTable` | Move function declarations into an indirect table, call by index |
|
|
21
|
+
| Obfuscation | `stringPool` | Encrypt string literals and template literal quasis into an LCG-XOR pool |
|
|
22
|
+
| Obfuscation | `controlFlowFlattening` | Transform function bodies into flat state machines |
|
|
23
|
+
| Obfuscation | `deadCode` | Inject unreachable code blocks |
|
|
24
|
+
| Anti-debug | `nativeBinding` | Pre-bind native methods to defend against prototype pollution |
|
|
25
|
+
| Anti-debug | `integrityTag` | Attach Symbol-based integrity tags to detect object cloning/replace |
|
|
26
|
+
|
|
27
|
+
## Input Format Support
|
|
28
|
+
|
|
29
|
+
Obscura.js auto-detects the module format of the input file (`sourceType: "unambiguous"`) and handles all three variants:
|
|
30
|
+
|
|
31
|
+
| Format | Example | Notes |
|
|
32
|
+
| ---------------- | ------------------------------ | ----------------------------------------------------------------- |
|
|
33
|
+
| CommonJS (CJS) | `require()` / `module.exports` | `require()` paths are never encrypted to preserve static analysis |
|
|
34
|
+
| ES Modules (ESM) | `import` / `export` | Module specifier strings are never encrypted |
|
|
35
|
+
| JSX | `<Component prop="value" />` | Attribute strings are wrapped in `{}` after encryption |
|
|
36
|
+
|
|
37
|
+
### Per-pass ESM / CJS behaviour
|
|
38
|
+
|
|
39
|
+
Passes fall into two categories: **format-aware** (contain explicit logic for module syntax) and **format-agnostic** (operate purely on expressions/statements, no module knowledge required).
|
|
40
|
+
|
|
41
|
+
#### Format-aware passes
|
|
42
|
+
|
|
43
|
+
**`functionTable`** — avoids removing functions that are reachable from outside the module.
|
|
44
|
+
|
|
45
|
+
| Pattern | Example | Behaviour |
|
|
46
|
+
| ------------------------------- | ------------------------------- | ------------------------------------------------------------------ |
|
|
47
|
+
| ESM named export | `export { foo }` | `foo` is kept as a top-level declaration; not moved into the table |
|
|
48
|
+
| ESM default export (identifier) | `export default foo` | same |
|
|
49
|
+
| CJS `module.exports` | `module.exports = foo` | same |
|
|
50
|
+
| CJS `module.exports.x` | `module.exports.add = add` | same |
|
|
51
|
+
| CJS `exports.x` | `exports.add = add` | same |
|
|
52
|
+
| CJS object shorthand | `module.exports = { add, mul }` | all referenced names are preserved |
|
|
53
|
+
|
|
54
|
+
**`stringPool`** — selectively skips strings whose values must be preserved for the module system or runtime.
|
|
55
|
+
|
|
56
|
+
| Pattern | Example | Behaviour |
|
|
57
|
+
| -------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------- |
|
|
58
|
+
| ESM import path | `import x from "./mod"` | skipped — bundlers need the literal path |
|
|
59
|
+
| ESM re-export path | `export { x } from "./mod"` / `export * from "./mod"` | skipped |
|
|
60
|
+
| Dynamic import path | `import('./mod')` | skipped — runtime module loader needs the literal |
|
|
61
|
+
| CJS require path | `require("./mod")` | skipped |
|
|
62
|
+
| CJS require.resolve path | `require.resolve("./util")` | skipped |
|
|
63
|
+
| ES2022 string binding name | `import { "foo" as bar }` / `export { x as "name" }` | skipped — spec-mandated string syntax |
|
|
64
|
+
| Tagged template | `` html`<b>${x}</b>` `` | skipped — tag receives a `TemplateStringsArray`, not a plain string |
|
|
65
|
+
| All other strings | `"hello"`, `` `hi ${name}` ``, `{ 'key': v }` | **encrypted** |
|
|
66
|
+
|
|
67
|
+
#### Format-agnostic passes
|
|
68
|
+
|
|
69
|
+
These passes operate on expressions and statements only. They produce valid output for both CJS and ESM input without any module-specific logic.
|
|
70
|
+
|
|
71
|
+
| Pass | What it touches |
|
|
72
|
+
| ----------------------- | --------------------------------------------------- |
|
|
73
|
+
| `sequenceExpression` | `if` statement bodies |
|
|
74
|
+
| `mba` | Binary arithmetic expressions (`+`, `-`, `\|`, `^`) |
|
|
75
|
+
| `controlFlowFlattening` | Function bodies |
|
|
76
|
+
| `deadCode` | Top-level statement boundaries |
|
|
77
|
+
| `nativeBinding` | Prepends `const` bindings for native methods |
|
|
78
|
+
| `integrityTag` | Array and object literals |
|
|
79
|
+
|
|
80
|
+
### What `stringPool` encrypts
|
|
81
|
+
|
|
82
|
+
| Syntax | Example | Behaviour |
|
|
83
|
+
| ------------------------- | ----------------------- | ----------------------------------------------------------------------------- |
|
|
84
|
+
| String literal | `"hello"` | Replaced with a pool decryption call |
|
|
85
|
+
| Template literal | `` `hello ${x}` `` | Static quasis encrypted; expressions kept as-is; emitted as `+` concatenation |
|
|
86
|
+
| Object / class string key | `{ 'key': v }` | Key flipped to computed syntax `{ [pool()]: v }` |
|
|
87
|
+
| JSX attribute value | `<div className="foo">` | Wrapped in `{pool()}` expression container |
|
|
88
|
+
| `export default "…"` | `export default 'msg'` | Encrypted normally |
|
|
89
|
+
|
|
90
|
+
The following strings are **never** encrypted to avoid breaking the module system:
|
|
91
|
+
|
|
92
|
+
- `import … from "path"`
|
|
93
|
+
- `require("path")` / `require.resolve("path")`
|
|
94
|
+
- `export { x } from "path"`
|
|
95
|
+
- `export * from "path"`
|
|
96
|
+
- ES2022 string binding names — `import { "name" as x }`, `export { x as "name" }`
|
|
97
|
+
- Tagged template literals — `` html`…` `` (the tag function receives a `TemplateStringsArray`)
|
|
26
98
|
|
|
27
99
|
## Installation
|
|
28
100
|
|
package/dist/bin/obscura_cli.js
CHANGED
|
@@ -5,6 +5,7 @@ const fs_1 = require("fs");
|
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const commander_1 = require("commander");
|
|
7
7
|
const index_1 = require("../src/index");
|
|
8
|
+
const package_json_1 = require("../package.json");
|
|
8
9
|
// ── ANSI helpers ─────────────────────────────────────────────────────────────
|
|
9
10
|
// Respect NO_COLOR (https://no-color.org) and FORCE_COLOR env vars.
|
|
10
11
|
const hasColor = (() => {
|
|
@@ -128,7 +129,7 @@ const program = new commander_1.Command();
|
|
|
128
129
|
program
|
|
129
130
|
.name("obscura-js")
|
|
130
131
|
.description("JavaScript code protection tool — obfuscation & anti-debugging")
|
|
131
|
-
.version(
|
|
132
|
+
.version(package_json_1.version);
|
|
132
133
|
program
|
|
133
134
|
.command("protect <input>")
|
|
134
135
|
.description("Protect a JavaScript file")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"obscura_cli.js","sourceRoot":"","sources":["../../bin/obscura_cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"obscura_cli.js","sourceRoot":"","sources":["../../bin/obscura_cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "obscura-js",
|
|
3
|
+
"version": "2.0.1",
|
|
4
|
+
"description": "JavaScript code protection tool — obfuscation & anti-debugging inspired by Google reCAPTCHA",
|
|
5
|
+
"type": "commonjs",
|
|
6
|
+
"main": "dist/src/index.js",
|
|
7
|
+
"types": "dist/src/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"require": {
|
|
11
|
+
"types": "./dist/src/index.d.ts",
|
|
12
|
+
"default": "./dist/src/index.js"
|
|
13
|
+
},
|
|
14
|
+
"import": {
|
|
15
|
+
"types": "./dist/src/index.d.ts",
|
|
16
|
+
"default": "./dist/src/index.js"
|
|
17
|
+
},
|
|
18
|
+
"default": "./dist/src/index.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist/",
|
|
23
|
+
"README.md"
|
|
24
|
+
],
|
|
25
|
+
"sideEffects": false,
|
|
26
|
+
"bin": {
|
|
27
|
+
"obscura-js": "dist/bin/obscura_cli.js"
|
|
28
|
+
},
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "tsc && node -e \"require('fs').chmodSync('dist/bin/obscura_cli.js', 0o755)\"",
|
|
31
|
+
"build:watch": "tsc --watch",
|
|
32
|
+
"prepublishOnly": "npm run build && npm test",
|
|
33
|
+
"test": "jest --coverage",
|
|
34
|
+
"lint": "eslint src/ bin/",
|
|
35
|
+
"lint:fix": "eslint src/ bin/ --fix",
|
|
36
|
+
"format": "prettier --write \"src/**/*.ts\" \"bin/**/*.ts\" \"tests/**/*.ts\"",
|
|
37
|
+
"format:check": "prettier --check \"src/**/*.ts\" \"bin/**/*.ts\" \"tests/**/*.ts\"",
|
|
38
|
+
"dev": "ts-node bin/obscura_cli.ts"
|
|
39
|
+
},
|
|
40
|
+
"keywords": [
|
|
41
|
+
"obfuscation",
|
|
42
|
+
"javascript",
|
|
43
|
+
"security",
|
|
44
|
+
"anti-debug",
|
|
45
|
+
"anti-tamper",
|
|
46
|
+
"code-protection",
|
|
47
|
+
"ast",
|
|
48
|
+
"swc"
|
|
49
|
+
],
|
|
50
|
+
"repository": {
|
|
51
|
+
"type": "git",
|
|
52
|
+
"url": "https://github.com/vientorepublic/obscura-js.git"
|
|
53
|
+
},
|
|
54
|
+
"homepage": "https://github.com/vientorepublic/obscura-js#readme",
|
|
55
|
+
"bugs": {
|
|
56
|
+
"url": "https://github.com/vientorepublic/obscura-js/issues"
|
|
57
|
+
},
|
|
58
|
+
"author": "vientorepublic",
|
|
59
|
+
"license": "MIT",
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=18.0.0"
|
|
62
|
+
},
|
|
63
|
+
"dependencies": {
|
|
64
|
+
"@swc/core": "^1.15.40",
|
|
65
|
+
"commander": "^12.0.0"
|
|
66
|
+
},
|
|
67
|
+
"devDependencies": {
|
|
68
|
+
"@types/jest": "^29.5.12",
|
|
69
|
+
"@types/node": "^20.12.0",
|
|
70
|
+
"@typescript-eslint/eslint-plugin": "^8.59.4",
|
|
71
|
+
"@typescript-eslint/parser": "^8.59.4",
|
|
72
|
+
"eslint": "^8.57.0",
|
|
73
|
+
"eslint-config-prettier": "^10.1.8",
|
|
74
|
+
"jest": "^29.7.0",
|
|
75
|
+
"prettier": "^3.8.3",
|
|
76
|
+
"ts-jest": "^29.1.2",
|
|
77
|
+
"ts-node": "^10.9.2",
|
|
78
|
+
"typescript": "^5.4.5"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { SwcProgram } from "../swc-utils";
|
|
2
2
|
import type { AntiDebugOptions } from "../types";
|
|
3
3
|
import { applyIntegrityTag } from "./integrityTag";
|
|
4
4
|
import { applyNativeBinding } from "./nativeBinding";
|
|
@@ -7,5 +7,5 @@ export { applyIntegrityTag, applyNativeBinding };
|
|
|
7
7
|
* Run all enabled anti-debugging/tampering passes in order.
|
|
8
8
|
* Each pass is opt-in: pass `false` to skip it.
|
|
9
9
|
*/
|
|
10
|
-
export declare function applyAntiDebug(ast:
|
|
10
|
+
export declare function applyAntiDebug(ast: SwcProgram, options: AntiDebugOptions | undefined, appliedPasses: string[]): void;
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/antiDebug/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/antiDebug/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,gBAAgB,YAAK,EAC9B,aAAa,EAAE,MAAM,EAAE,GACtB,IAAI,CASN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/antiDebug/index.ts"],"names":[],"mappings":";;;AAWA,wCAaC;AAtBD,iDAAmD;AAG1C,kGAHA,gCAAiB,OAGA;AAF1B,mDAAqD;AAEzB,mGAFnB,kCAAkB,OAEmB;AAE9C;;;GAGG;AACH,SAAgB,cAAc,CAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/antiDebug/index.ts"],"names":[],"mappings":";;;AAWA,wCAaC;AAtBD,iDAAmD;AAG1C,kGAHA,gCAAiB,OAGA;AAF1B,mDAAqD;AAEzB,mGAFnB,kCAAkB,OAEmB;AAE9C;;;GAGG;AACH,SAAgB,cAAc,CAC5B,GAAe,EACf,UAA4B,EAAE,EAC9B,aAAuB;IAEvB,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;QACpC,IAAA,kCAAkB,EAAC,GAAG,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QACrD,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACnC,IAAA,gCAAiB,EAAC,GAAG,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACnD,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -1,21 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { SwcProgram } from "../swc-utils";
|
|
2
2
|
import type { IntegrityTagOptions } from "../types";
|
|
3
|
-
|
|
4
|
-
* Pass: Symbol-based Integrity Tag
|
|
5
|
-
*
|
|
6
|
-
* Attaches a `Symbol(<description>)` integrity check value to every
|
|
7
|
-
* array/object literal in the AST. At runtime, code can verify the
|
|
8
|
-
* symbol is present to detect tampering (cloning, serialisation, etc.).
|
|
9
|
-
*
|
|
10
|
-
* The runtime helper `__obscura_tag` is prepended to the output:
|
|
11
|
-
*
|
|
12
|
-
* const __obscura_sym = Symbol('jas');
|
|
13
|
-
* function __obscura_tag(v, checksum) {
|
|
14
|
-
* Object.defineProperty(v, __obscura_sym, { value: checksum, enumerable: false });
|
|
15
|
-
* return v;
|
|
16
|
-
* }
|
|
17
|
-
*
|
|
18
|
-
* Arrays are replaced by: __obscura_tag([...], <checksum>)
|
|
19
|
-
*/
|
|
20
|
-
export declare function applyIntegrityTag(ast: t.File, options?: IntegrityTagOptions): void;
|
|
3
|
+
export declare function applyIntegrityTag(ast: SwcProgram, options?: IntegrityTagOptions): void;
|
|
21
4
|
//# sourceMappingURL=integrityTag.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrityTag.d.ts","sourceRoot":"","sources":["../../../src/antiDebug/integrityTag.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"integrityTag.d.ts","sourceRoot":"","sources":["../../../src/antiDebug/integrityTag.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAqEpD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,mBAAwB,GAAG,IAAI,CAsI1F"}
|
|
@@ -1,110 +1,194 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
exports.applyIntegrityTag = applyIntegrityTag;
|
|
40
|
-
const
|
|
41
|
-
const
|
|
4
|
+
const swc_utils_1 = require("../swc-utils");
|
|
5
|
+
const core_1 = require("@swc/core");
|
|
42
6
|
const genId_1 = require("../genId");
|
|
43
7
|
/**
|
|
44
8
|
* Pass: Symbol-based Integrity Tag
|
|
45
9
|
*
|
|
46
|
-
*
|
|
47
|
-
* array/object literal in the AST. At runtime, code can verify the
|
|
48
|
-
* symbol is present to detect tampering (cloning, serialisation, etc.).
|
|
10
|
+
* Wraps every array (and optionally object) literal with a verify+tag pair:
|
|
49
11
|
*
|
|
50
|
-
*
|
|
12
|
+
* _0xVerify(_0xTag([...], checksum, kind))
|
|
51
13
|
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* }
|
|
14
|
+
* Three checksum kinds:
|
|
15
|
+
* 0 — length-based array (mixed/non-literal elements)
|
|
16
|
+
* 1 — content-based array (all elements are scalar literals)
|
|
17
|
+
* 2 — property-count-based object
|
|
57
18
|
*
|
|
58
|
-
*
|
|
19
|
+
* At creation time _0xVerify checks that Object.defineProperty successfully
|
|
20
|
+
* attached the Symbol, catching Symbol/defineProperty override attacks.
|
|
21
|
+
* The emitted _0xVerify function is also available for explicit post-creation
|
|
22
|
+
* verification elsewhere in the obfuscated output.
|
|
23
|
+
*/
|
|
24
|
+
/** Returns true when all array elements are scalar literals (no spreads). */
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
|
+
function isPureLiteralArray(elements) {
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
+
return elements.every((el) => {
|
|
29
|
+
if (el === null)
|
|
30
|
+
return true; // sparse hole
|
|
31
|
+
if (el.spread)
|
|
32
|
+
return false; // spread element
|
|
33
|
+
const expr = el.expression ?? el;
|
|
34
|
+
return (expr.type === "NumericLiteral" ||
|
|
35
|
+
expr.type === "BooleanLiteral" ||
|
|
36
|
+
expr.type === "StringLiteral" ||
|
|
37
|
+
expr.type === "NullLiteral");
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Content checksum for pure-literal arrays.
|
|
42
|
+
* Must stay in sync with the runtime formula emitted inside _0xVerify.
|
|
59
43
|
*/
|
|
44
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
45
|
+
function contentChecksum(elements, K1, K2) {
|
|
46
|
+
let acc = K1;
|
|
47
|
+
for (const el of elements) {
|
|
48
|
+
const expr = el?.expression ?? el ?? null;
|
|
49
|
+
let val;
|
|
50
|
+
if (!expr || expr.type === "NullLiteral") {
|
|
51
|
+
val = 0;
|
|
52
|
+
}
|
|
53
|
+
else if (expr.type === "NumericLiteral") {
|
|
54
|
+
val = (expr.value & 0xffff) >>> 0;
|
|
55
|
+
}
|
|
56
|
+
else if (expr.type === "BooleanLiteral") {
|
|
57
|
+
val = expr.value ? 1 : 0;
|
|
58
|
+
}
|
|
59
|
+
else if (expr.type === "StringLiteral") {
|
|
60
|
+
val = expr.value.charCodeAt(0) & 0xffff;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
val = 0;
|
|
64
|
+
}
|
|
65
|
+
acc = (((acc ^ val) * K2) ^ (acc >>> 3)) >>> 0;
|
|
66
|
+
}
|
|
67
|
+
return (((acc ^ K1) * K2) ^ (K1 >>> 3)) >>> 0;
|
|
68
|
+
}
|
|
69
|
+
/** Length / property-count checksum for arrays and objects. */
|
|
70
|
+
function lengthChecksum(len, K1, K2) {
|
|
71
|
+
return (((len ^ K1) * K2) ^ (K1 >>> 3)) >>> 0;
|
|
72
|
+
}
|
|
60
73
|
function applyIntegrityTag(ast, options = {}) {
|
|
61
|
-
// Randomize Symbol description when not explicitly provided — avoids a fixed "jas" fingerprint
|
|
62
74
|
const defaultDesc = Math.floor(Math.random() * 0xffffffff)
|
|
63
75
|
.toString(36)
|
|
64
76
|
.slice(0, 6);
|
|
65
77
|
const description = options.tagDescription ?? defaultDesc;
|
|
78
|
+
const tagObjects = options.tagObjects !== false; // default: true
|
|
66
79
|
const symVar = (0, genId_1.genId)();
|
|
67
80
|
const tagFn = (0, genId_1.genId)();
|
|
68
|
-
|
|
69
|
-
const K1 = (Math.floor(Math.random() * 0xffff) | 1) >>> 0;
|
|
81
|
+
const verifyFn = (0, genId_1.genId)();
|
|
82
|
+
const K1 = (Math.floor(Math.random() * 0xffff) | 1) >>> 0;
|
|
70
83
|
const K2 = (Math.floor(Math.random() * 0xffff) | 1) >>> 0;
|
|
71
|
-
let
|
|
72
|
-
|
|
84
|
+
let hasTaggable = false;
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
86
|
+
function isInsideTagFn(parent) {
|
|
87
|
+
return (swc_utils_1.t.isCallExpression(parent) &&
|
|
88
|
+
swc_utils_1.t.isIdentifier(parent.callee) && // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
89
|
+
parent.callee.value === tagFn // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
/** Emit _0xVerify(_0xTag(cloned, checksum, kind)) in place of path.node. */
|
|
93
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
94
|
+
function emitTagged(path, checksum, kind) {
|
|
95
|
+
path.replaceWith(swc_utils_1.t.callExpression(swc_utils_1.t.identifier(verifyFn), [
|
|
96
|
+
swc_utils_1.t.callExpression(swc_utils_1.t.identifier(tagFn), [
|
|
97
|
+
swc_utils_1.t.cloneNode(path.node, true),
|
|
98
|
+
swc_utils_1.t.numericLiteral(checksum),
|
|
99
|
+
swc_utils_1.t.numericLiteral(kind),
|
|
100
|
+
]),
|
|
101
|
+
]));
|
|
102
|
+
hasTaggable = true;
|
|
103
|
+
}
|
|
104
|
+
(0, swc_utils_1.traverse)(ast, {
|
|
73
105
|
ArrayExpression(path) {
|
|
74
|
-
|
|
75
|
-
if (t.isCallExpression(path.parent))
|
|
106
|
+
if (isInsideTagFn(path.parent))
|
|
76
107
|
return;
|
|
77
|
-
//
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
108
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
109
|
+
const elements = path.node.elements;
|
|
110
|
+
const pure = isPureLiteralArray(elements);
|
|
111
|
+
const checksum = pure
|
|
112
|
+
? contentChecksum(elements, K1, K2)
|
|
113
|
+
: lengthChecksum(elements.length, K1, K2);
|
|
114
|
+
emitTagged(path, checksum, pure ? 1 : 0);
|
|
115
|
+
},
|
|
116
|
+
ObjectExpression(path) {
|
|
117
|
+
if (!tagObjects)
|
|
118
|
+
return;
|
|
119
|
+
if (isInsideTagFn(path.parent))
|
|
120
|
+
return;
|
|
121
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
122
|
+
const properties = path.node.properties;
|
|
123
|
+
// Skip objects with spread elements — runtime key count would differ
|
|
124
|
+
if (properties.some((p) => p.type === "SpreadElement"))
|
|
125
|
+
return; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
126
|
+
const checksum = lengthChecksum(properties.length, K1, K2);
|
|
127
|
+
emitTagged(path, checksum, 2);
|
|
85
128
|
},
|
|
86
129
|
});
|
|
87
|
-
if (!
|
|
130
|
+
if (!hasTaggable)
|
|
88
131
|
return;
|
|
89
|
-
//
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
132
|
+
// ── Emit helpers via source parse ─────────────────────────────────────────
|
|
133
|
+
// Simpler and less error-prone than manual SWC AST construction.
|
|
134
|
+
// K1, K2 are embedded as numeric literals; symVar/tagFn/verifyFn as identifiers.
|
|
135
|
+
const symSrc = `const ${symVar} = Symbol(${JSON.stringify(description)});`;
|
|
136
|
+
const tagSrc = `function ${tagFn}(v, checksum, kind) {
|
|
137
|
+
Object.defineProperty(v, ${symVar}, {
|
|
138
|
+
value: [checksum, kind],
|
|
139
|
+
enumerable: false,
|
|
140
|
+
configurable: false,
|
|
141
|
+
writable: false
|
|
142
|
+
});
|
|
143
|
+
return v;
|
|
144
|
+
}`;
|
|
145
|
+
// _0xVerify recomputes the stored checksum from live state and corrupts the
|
|
146
|
+
// structure if the tag is absent or the checksum mismatches.
|
|
147
|
+
// kind 0 = length array, 1 = content array, 2 = property-count object.
|
|
148
|
+
const verifySrc = `function ${verifyFn}(v) {
|
|
149
|
+
var _tag = v[${symVar}];
|
|
150
|
+
if (_tag === undefined || _tag === null) {
|
|
151
|
+
if (Array.isArray(v)) {
|
|
152
|
+
for (var _ci = 0; _ci < v.length; _ci++) v[_ci] = 0;
|
|
153
|
+
} else {
|
|
154
|
+
var _ck = Object.keys(v);
|
|
155
|
+
for (var _cj = 0; _cj < _ck.length; _cj++) delete v[_ck[_cj]];
|
|
156
|
+
}
|
|
157
|
+
return v;
|
|
158
|
+
}
|
|
159
|
+
var _cs = _tag[0]; var _kind = _tag[1]; var _expected;
|
|
160
|
+
if (_kind === 1) {
|
|
161
|
+
var _acc = ${K1};
|
|
162
|
+
for (var _vi = 0; _vi < v.length; _vi++) {
|
|
163
|
+
var _el = v[_vi];
|
|
164
|
+
var _val = typeof _el === 'number' ? (_el & 0xffff) >>> 0
|
|
165
|
+
: typeof _el === 'boolean' ? (_el ? 1 : 0)
|
|
166
|
+
: typeof _el === 'string' ? _el.charCodeAt(0) & 0xffff : 0;
|
|
167
|
+
_acc = (((_acc ^ _val) * ${K2}) ^ (_acc >>> 3)) >>> 0;
|
|
168
|
+
}
|
|
169
|
+
_expected = (((_acc ^ ${K1}) * ${K2}) ^ (${K1} >>> 3)) >>> 0;
|
|
170
|
+
} else if (_kind === 2) {
|
|
171
|
+
var _len = Object.keys(v).length;
|
|
172
|
+
_expected = (((_len ^ ${K1}) * ${K2}) ^ (${K1} >>> 3)) >>> 0;
|
|
173
|
+
} else {
|
|
174
|
+
_expected = (((v.length ^ ${K1}) * ${K2}) ^ (${K1} >>> 3)) >>> 0;
|
|
175
|
+
}
|
|
176
|
+
if (_cs !== _expected) {
|
|
177
|
+
if (Array.isArray(v)) {
|
|
178
|
+
for (var _di = 0; _di < v.length; _di++) v[_di] = 0;
|
|
179
|
+
} else {
|
|
180
|
+
var _dk = Object.keys(v);
|
|
181
|
+
for (var _dj = 0; _dj < _dk.length; _dj++) delete v[_dk[_dj]];
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return v;
|
|
185
|
+
}`;
|
|
186
|
+
const symDecl = (0, core_1.parseSync)(symSrc, { syntax: "ecmascript" }).body[0];
|
|
187
|
+
const tagDecl = (0, core_1.parseSync)(tagSrc, { syntax: "ecmascript" }).body[0];
|
|
188
|
+
const verifyDecl = (0, core_1.parseSync)(verifySrc, { syntax: "ecmascript" })
|
|
189
|
+
.body[0];
|
|
190
|
+
// tagFn and verifyFn are function declarations (hoisted). symVar (const) is
|
|
191
|
+
// placed at body[2] so it is initialized before any tagged value is created.
|
|
192
|
+
ast.body.unshift(tagDecl, verifyDecl, symDecl); // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
109
193
|
}
|
|
110
194
|
//# sourceMappingURL=integrityTag.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrityTag.js","sourceRoot":"","sources":["../../../src/antiDebug/integrityTag.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"integrityTag.js","sourceRoot":"","sources":["../../../src/antiDebug/integrityTag.ts"],"names":[],"mappings":";;AAwEA,8CAsIC;AA9MD,4CAA2C;AAC3C,oCAAsC;AAGtC,oCAAiC;AAEjC;;;;;;;;;;;;;;;;GAgBG;AAEH,6EAA6E;AAC7E,8DAA8D;AAC9D,SAAS,kBAAkB,CAAC,QAAe;IACzC,8DAA8D;IAC9D,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAO,EAAE,EAAE;QAChC,IAAI,EAAE,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,cAAc;QAC5C,IAAI,EAAE,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,CAAC,iBAAiB;QAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;QACjC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,gBAAgB;YAC9B,IAAI,CAAC,IAAI,KAAK,gBAAgB;YAC9B,IAAI,CAAC,IAAI,KAAK,eAAe;YAC7B,IAAI,CAAC,IAAI,KAAK,aAAa,CAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,8DAA8D;AAC9D,SAAS,eAAe,CAAC,QAAe,EAAE,EAAU,EAAE,EAAU;IAC9D,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,EAAE,EAAE,UAAU,IAAI,EAAE,IAAI,IAAI,CAAC;QAC1C,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACzC,GAAG,GAAG,CAAC,CAAC;QACV,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC1C,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC1C,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACzC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,CAAC,CAAC;QACV,CAAC;QACD,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,+DAA+D;AAC/D,SAAS,cAAc,CAAC,GAAW,EAAE,EAAU,EAAE,EAAU;IACzD,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAe,EAAE,UAA+B,EAAE;IAClF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC;SACvD,QAAQ,CAAC,EAAE,CAAC;SACZ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACf,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,IAAI,WAAW,CAAC;IAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,gBAAgB;IACjE,MAAM,MAAM,GAAG,IAAA,aAAK,GAAE,CAAC;IACvB,MAAM,KAAK,GAAG,IAAA,aAAK,GAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,IAAA,aAAK,GAAE,CAAC;IAEzB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAE1D,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,8DAA8D;IAC9D,SAAS,aAAa,CAAC,MAAW;QAChC,OAAO,CACL,aAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAC1B,aAAC,CAAC,YAAY,CAAE,MAAc,CAAC,MAAM,CAAC,IAAI,yDAAyD;YAClG,MAAc,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,yDAAyD;SACjG,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,8DAA8D;IAC9D,SAAS,UAAU,CAAC,IAAS,EAAE,QAAgB,EAAE,IAAY;QAC3D,IAAI,CAAC,WAAW,CACd,aAAC,CAAC,cAAc,CAAC,aAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YACvC,aAAC,CAAC,cAAc,CAAC,aAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACpC,aAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;gBAC5B,aAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAC1B,aAAC,CAAC,cAAc,CAAC,IAAI,CAAC;aACvB,CAAC;SACH,CAAC,CACH,CAAC;QACF,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAA,oBAAQ,EAAC,GAAG,EAAE;QACZ,eAAe,CAAC,IAAI;YAClB,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEvC,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAiB,CAAC;YAC7C,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI;gBACnB,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;gBACnC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,gBAAgB,CAAC,IAAI;YACnB,IAAI,CAAC,UAAU;gBAAE,OAAO;YACxB,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEvC,8DAA8D;YAC9D,MAAM,UAAU,GAAI,IAAI,CAAC,IAAY,CAAC,UAAmB,CAAC;YAC1D,qEAAqE;YACrE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC;gBAAE,OAAO,CAAC,yDAAyD;YAE9H,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3D,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW;QAAE,OAAO;IAEzB,6EAA6E;IAC7E,iEAAiE;IACjE,iFAAiF;IAEjF,MAAM,MAAM,GAAG,SAAS,MAAM,aAAa,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;IAE3E,MAAM,MAAM,GAAG,YAAY,KAAK;+BACH,MAAM;;;;;;;IAOjC,CAAC;IAEH,4EAA4E;IAC5E,6DAA6D;IAC7D,uEAAuE;IACvE,MAAM,SAAS,GAAG,YAAY,QAAQ;mBACrB,MAAM;;;;;;;;;;;;mBAYN,EAAE;;;;;;mCAMc,EAAE;;8BAEP,EAAE,OAAO,EAAE,QAAQ,EAAE;;;8BAGrB,EAAE,OAAO,EAAE,QAAQ,EAAE;;kCAEjB,EAAE,OAAO,EAAE,QAAQ,EAAE;;;;;;;;;;;IAWnD,CAAC;IAEH,MAAM,OAAO,GAAI,IAAA,gBAAS,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,OAAO,GAAI,IAAA,gBAAS,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,UAAU,GAAI,IAAA,gBAAS,EAAC,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAA2B;SACzF,IAAI,CAAC,CAAC,CAAC,CAAC;IAEX,4EAA4E;IAC5E,6EAA6E;IAC5E,GAAG,CAAC,IAAc,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,yDAAyD;AACtH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { SwcProgram } from "../swc-utils";
|
|
2
2
|
import type { NativeBindingOptions } from "../types";
|
|
3
3
|
/**
|
|
4
4
|
* Pass: Native Method Binding
|
|
@@ -11,5 +11,5 @@ import type { NativeBindingOptions } from "../types";
|
|
|
11
11
|
* const __obscura_Math_floor = Math.floor.bind(Math);
|
|
12
12
|
* const __obscura_Math_random = Math.random.bind(Math);
|
|
13
13
|
*/
|
|
14
|
-
export declare function applyNativeBinding(ast:
|
|
14
|
+
export declare function applyNativeBinding(ast: SwcProgram, options?: NativeBindingOptions): void;
|
|
15
15
|
//# sourceMappingURL=nativeBinding.d.ts.map
|