bla-agents 1.1.0 → 1.6.0
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/.agents/skills/blind-llm-agents/SKILL.md +20 -14
- package/DISCLAIMER.md +15 -7
- package/README.md +153 -198
- package/dist/bundler/index.d.ts +19 -2
- package/dist/bundler/index.d.ts.map +1 -1
- package/dist/bundler/index.js +47 -4
- package/dist/bundler/index.js.map +1 -1
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +123 -18
- package/dist/cli.js.map +1 -1
- package/dist/core/config.d.ts +54 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +160 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/coverage-contract.d.ts +97 -0
- package/dist/core/coverage-contract.d.ts.map +1 -0
- package/dist/core/coverage-contract.js +164 -0
- package/dist/core/coverage-contract.js.map +1 -0
- package/dist/core/debug-posture.d.ts +40 -0
- package/dist/core/debug-posture.d.ts.map +1 -0
- package/dist/core/debug-posture.js +197 -0
- package/dist/core/debug-posture.js.map +1 -0
- package/dist/core/detector.d.ts.map +1 -1
- package/dist/core/detector.js +58 -6
- package/dist/core/detector.js.map +1 -1
- package/dist/core/identifiers.d.ts +32 -0
- package/dist/core/identifiers.d.ts.map +1 -0
- package/dist/core/identifiers.js +263 -0
- package/dist/core/identifiers.js.map +1 -0
- package/dist/core/llm-directives.d.ts +12 -0
- package/dist/core/llm-directives.d.ts.map +1 -0
- package/dist/core/llm-directives.js +23 -0
- package/dist/core/llm-directives.js.map +1 -0
- package/dist/core/prng.d.ts +10 -1
- package/dist/core/prng.d.ts.map +1 -1
- package/dist/core/prng.js +27 -2
- package/dist/core/prng.js.map +1 -1
- package/dist/core/release-exposure.d.ts.map +1 -1
- package/dist/core/release-exposure.js +13 -2
- package/dist/core/release-exposure.js.map +1 -1
- package/dist/core/release-plan.d.ts +68 -0
- package/dist/core/release-plan.d.ts.map +1 -0
- package/dist/core/release-plan.js +244 -0
- package/dist/core/release-plan.js.map +1 -0
- package/dist/core/sarif.d.ts +53 -0
- package/dist/core/sarif.d.ts.map +1 -0
- package/dist/core/sarif.js +95 -0
- package/dist/core/sarif.js.map +1 -0
- package/dist/core/sqlite-runtime.d.ts +13 -0
- package/dist/core/sqlite-runtime.d.ts.map +1 -1
- package/dist/core/sqlite-runtime.js +38 -8
- package/dist/core/sqlite-runtime.js.map +1 -1
- package/dist/core/types.d.ts +7 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/engine/auditor.d.ts.map +1 -1
- package/dist/engine/auditor.js +380 -19
- package/dist/engine/auditor.js.map +1 -1
- package/dist/engine/benchmark.d.ts +1 -1
- package/dist/engine/benchmark.d.ts.map +1 -1
- package/dist/engine/benchmark.js +121 -41
- package/dist/engine/benchmark.js.map +1 -1
- package/dist/engine/defender.d.ts +1 -0
- package/dist/engine/defender.d.ts.map +1 -1
- package/dist/engine/defender.js +7 -1
- package/dist/engine/defender.js.map +1 -1
- package/dist/engine/harden.d.ts +61 -0
- package/dist/engine/harden.d.ts.map +1 -0
- package/dist/engine/harden.js +294 -0
- package/dist/engine/harden.js.map +1 -0
- package/dist/engine/protector.d.ts.map +1 -1
- package/dist/engine/protector.js +242 -26
- package/dist/engine/protector.js.map +1 -1
- package/dist/identity.d.ts +112 -2
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +112 -2
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +26 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -9
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +59 -152
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +466 -50
- package/dist/mcp/server.js.map +1 -1
- package/dist/setup/clients.d.ts +49 -1
- package/dist/setup/clients.d.ts.map +1 -1
- package/dist/setup/clients.js +1193 -20
- package/dist/setup/clients.js.map +1 -1
- package/dist/setup/doctor.d.ts +58 -14
- package/dist/setup/doctor.d.ts.map +1 -1
- package/dist/setup/doctor.js +316 -22
- package/dist/setup/doctor.js.map +1 -1
- package/dist/setup/setup.d.ts +77 -7
- package/dist/setup/setup.d.ts.map +1 -1
- package/dist/setup/setup.js +591 -62
- package/dist/setup/setup.js.map +1 -1
- package/dist/shields/chaff/chaff-generator.d.ts.map +1 -1
- package/dist/shields/chaff/chaff-generator.js +12 -3
- package/dist/shields/chaff/chaff-generator.js.map +1 -1
- package/dist/shields/deception/architecture-mirage.js +1 -1
- package/dist/shields/deception/architecture-mirage.js.map +1 -1
- package/dist/shields/deception/canary-honeypot.d.ts +33 -0
- package/dist/shields/deception/canary-honeypot.d.ts.map +1 -0
- package/dist/shields/deception/canary-honeypot.js +95 -0
- package/dist/shields/deception/canary-honeypot.js.map +1 -0
- package/dist/shields/deception/cognitive-armor-trigger.d.ts +43 -0
- package/dist/shields/deception/cognitive-armor-trigger.d.ts.map +1 -0
- package/dist/shields/deception/cognitive-armor-trigger.js +204 -0
- package/dist/shields/deception/cognitive-armor-trigger.js.map +1 -0
- package/dist/shields/deception/crash-trace-decoy.js +1 -1
- package/dist/shields/deception/crash-trace-decoy.js.map +1 -1
- package/dist/shields/deception/decompiler-illusion.js +1 -1
- package/dist/shields/deception/decompiler-illusion.js.map +1 -1
- package/dist/shields/deception/diff-noise-injector.js +1 -1
- package/dist/shields/deception/diff-noise-injector.js.map +1 -1
- package/dist/shields/deception/evidence-contract-poison.js +5 -5
- package/dist/shields/deception/evidence-contract-poison.js.map +1 -1
- package/dist/shields/deception/format-payloads.d.ts +21 -0
- package/dist/shields/deception/format-payloads.d.ts.map +1 -0
- package/dist/shields/deception/format-payloads.js +24 -0
- package/dist/shields/deception/format-payloads.js.map +1 -0
- package/dist/shields/deception/index.d.ts +10 -2
- package/dist/shields/deception/index.d.ts.map +1 -1
- package/dist/shields/deception/index.js +20 -3
- package/dist/shields/deception/index.js.map +1 -1
- package/dist/shields/deception/prompt-completion-poison.d.ts +3 -2
- package/dist/shields/deception/prompt-completion-poison.d.ts.map +1 -1
- package/dist/shields/deception/prompt-completion-poison.js +6 -3
- package/dist/shields/deception/prompt-completion-poison.js.map +1 -1
- package/dist/shields/deception/shadow-business-logic.js +4 -4
- package/dist/shields/deception/shadow-business-logic.js.map +1 -1
- package/dist/shields/deception/system-diagnostic-decoy.d.ts +36 -0
- package/dist/shields/deception/system-diagnostic-decoy.d.ts.map +1 -0
- package/dist/shields/deception/system-diagnostic-decoy.js +101 -0
- package/dist/shields/deception/system-diagnostic-decoy.js.map +1 -0
- package/dist/shields/exhaustion/asar-header-amplifier.d.ts +12 -3
- package/dist/shields/exhaustion/asar-header-amplifier.d.ts.map +1 -1
- package/dist/shields/exhaustion/asar-header-amplifier.js +30 -8
- package/dist/shields/exhaustion/asar-header-amplifier.js.map +1 -1
- package/dist/shields/exhaustion/bpe-token-amplifier.js +2 -2
- package/dist/shields/exhaustion/bpe-token-amplifier.js.map +1 -1
- package/dist/shields/exhaustion/callgraph-labyrinth.js +2 -2
- package/dist/shields/exhaustion/callgraph-labyrinth.js.map +1 -1
- package/dist/shields/exhaustion/cdp-shape-budget-breaker.js +1 -1
- package/dist/shields/exhaustion/cdp-shape-budget-breaker.js.map +1 -1
- package/dist/shields/exhaustion/frida-capture-saturation.d.ts +10 -5
- package/dist/shields/exhaustion/frida-capture-saturation.d.ts.map +1 -1
- package/dist/shields/exhaustion/frida-capture-saturation.js +21 -8
- package/dist/shields/exhaustion/frida-capture-saturation.js.map +1 -1
- package/dist/shields/exhaustion/index.d.ts +2 -2
- package/dist/shields/exhaustion/index.d.ts.map +1 -1
- package/dist/shields/exhaustion/index.js +2 -2
- package/dist/shields/exhaustion/index.js.map +1 -1
- package/dist/shields/exhaustion/obligation-flooder.d.ts +23 -6
- package/dist/shields/exhaustion/obligation-flooder.d.ts.map +1 -1
- package/dist/shields/exhaustion/obligation-flooder.js +29 -12
- package/dist/shields/exhaustion/obligation-flooder.js.map +1 -1
- package/dist/shields/exhaustion/rea-budget-matrix.d.ts +8 -2
- package/dist/shields/exhaustion/rea-budget-matrix.d.ts.map +1 -1
- package/dist/shields/exhaustion/rea-budget-matrix.js +139 -16
- package/dist/shields/exhaustion/rea-budget-matrix.js.map +1 -1
- package/dist/shields/exhaustion/regex-worker-tarpit.d.ts.map +1 -1
- package/dist/shields/exhaustion/regex-worker-tarpit.js +2 -1
- package/dist/shields/exhaustion/regex-worker-tarpit.js.map +1 -1
- package/dist/shields/exhaustion/wasm-interface-exhaustion.d.ts +7 -4
- package/dist/shields/exhaustion/wasm-interface-exhaustion.d.ts.map +1 -1
- package/dist/shields/exhaustion/wasm-interface-exhaustion.js +16 -7
- package/dist/shields/exhaustion/wasm-interface-exhaustion.js.map +1 -1
- package/dist/shields/formats/android-dex-xref.d.ts +19 -0
- package/dist/shields/formats/android-dex-xref.d.ts.map +1 -0
- package/dist/shields/formats/android-dex-xref.js +427 -0
- package/dist/shields/formats/android-dex-xref.js.map +1 -0
- package/dist/shields/formats/android-manifest.d.ts +44 -0
- package/dist/shields/formats/android-manifest.d.ts.map +1 -0
- package/dist/shields/formats/android-manifest.js +240 -0
- package/dist/shields/formats/android-manifest.js.map +1 -0
- package/dist/shields/formats/android-r8.d.ts +44 -0
- package/dist/shields/formats/android-r8.d.ts.map +1 -0
- package/dist/shields/formats/android-r8.js +246 -0
- package/dist/shields/formats/android-r8.js.map +1 -0
- package/dist/shields/formats/apple-plist.d.ts +15 -0
- package/dist/shields/formats/apple-plist.d.ts.map +1 -1
- package/dist/shields/formats/apple-plist.js +59 -1
- package/dist/shields/formats/apple-plist.js.map +1 -1
- package/dist/shields/formats/archive.d.ts +27 -6
- package/dist/shields/formats/archive.d.ts.map +1 -1
- package/dist/shields/formats/archive.js +247 -45
- package/dist/shields/formats/archive.js.map +1 -1
- package/dist/shields/formats/asar.d.ts +50 -10
- package/dist/shields/formats/asar.d.ts.map +1 -1
- package/dist/shields/formats/asar.js +265 -39
- package/dist/shields/formats/asar.js.map +1 -1
- package/dist/shields/formats/bun-standalone.d.ts +78 -0
- package/dist/shields/formats/bun-standalone.d.ts.map +1 -0
- package/dist/shields/formats/bun-standalone.js +272 -0
- package/dist/shields/formats/bun-standalone.js.map +1 -0
- package/dist/shields/formats/dotnet-managed.d.ts +9 -0
- package/dist/shields/formats/dotnet-managed.d.ts.map +1 -1
- package/dist/shields/formats/dotnet-managed.js +26 -1
- package/dist/shields/formats/dotnet-managed.js.map +1 -1
- package/dist/shields/formats/electron-fuses.d.ts +63 -8
- package/dist/shields/formats/electron-fuses.d.ts.map +1 -1
- package/dist/shields/formats/electron-fuses.js +297 -65
- package/dist/shields/formats/electron-fuses.js.map +1 -1
- package/dist/shields/formats/erlang-beam.d.ts +34 -0
- package/dist/shields/formats/erlang-beam.d.ts.map +1 -0
- package/dist/shields/formats/erlang-beam.js +319 -0
- package/dist/shields/formats/erlang-beam.js.map +1 -0
- package/dist/shields/formats/evm-bytecode.d.ts +28 -0
- package/dist/shields/formats/evm-bytecode.d.ts.map +1 -0
- package/dist/shields/formats/evm-bytecode.js +124 -0
- package/dist/shields/formats/evm-bytecode.js.map +1 -0
- package/dist/shields/formats/go-flutter-exhaustion.d.ts +55 -0
- package/dist/shields/formats/go-flutter-exhaustion.d.ts.map +1 -0
- package/dist/shields/formats/go-flutter-exhaustion.js +346 -0
- package/dist/shields/formats/go-flutter-exhaustion.js.map +1 -0
- package/dist/shields/formats/gpu-ptx.d.ts +40 -0
- package/dist/shields/formats/gpu-ptx.d.ts.map +1 -0
- package/dist/shields/formats/gpu-ptx.js +62 -0
- package/dist/shields/formats/gpu-ptx.js.map +1 -0
- package/dist/shields/formats/headers.d.ts.map +1 -1
- package/dist/shields/formats/headers.js +54 -14
- package/dist/shields/formats/headers.js.map +1 -1
- package/dist/shields/formats/jvm-bytecode.d.ts +20 -0
- package/dist/shields/formats/jvm-bytecode.d.ts.map +1 -0
- package/dist/shields/formats/jvm-bytecode.js +134 -0
- package/dist/shields/formats/jvm-bytecode.js.map +1 -0
- package/dist/shields/formats/mobile-game.d.ts +4 -0
- package/dist/shields/formats/mobile-game.d.ts.map +1 -1
- package/dist/shields/formats/mobile-game.js +16 -0
- package/dist/shields/formats/mobile-game.js.map +1 -1
- package/dist/shields/formats/model.d.ts +22 -8
- package/dist/shields/formats/model.d.ts.map +1 -1
- package/dist/shields/formats/model.js +231 -59
- package/dist/shields/formats/model.js.map +1 -1
- package/dist/shields/formats/native.d.ts +74 -11
- package/dist/shields/formats/native.d.ts.map +1 -1
- package/dist/shields/formats/native.js +557 -109
- package/dist/shields/formats/native.js.map +1 -1
- package/dist/shields/formats/pcap-capture.d.ts +27 -0
- package/dist/shields/formats/pcap-capture.d.ts.map +1 -0
- package/dist/shields/formats/pcap-capture.js +201 -0
- package/dist/shields/formats/pcap-capture.js.map +1 -0
- package/dist/shields/formats/python.d.ts +22 -1
- package/dist/shields/formats/python.d.ts.map +1 -1
- package/dist/shields/formats/python.js +568 -27
- package/dist/shields/formats/python.js.map +1 -1
- package/dist/shields/formats/sourcemap.d.ts.map +1 -1
- package/dist/shields/formats/sourcemap.js +2 -0
- package/dist/shields/formats/sourcemap.js.map +1 -1
- package/dist/shields/formats/sqlite.d.ts +87 -15
- package/dist/shields/formats/sqlite.d.ts.map +1 -1
- package/dist/shields/formats/sqlite.js +377 -42
- package/dist/shields/formats/sqlite.js.map +1 -1
- package/dist/shields/formats/wasm.d.ts +6 -0
- package/dist/shields/formats/wasm.d.ts.map +1 -1
- package/dist/shields/formats/wasm.js +118 -3
- package/dist/shields/formats/wasm.js.map +1 -1
- package/dist/shields/javascript/ast-shield.d.ts +26 -5
- package/dist/shields/javascript/ast-shield.d.ts.map +1 -1
- package/dist/shields/javascript/ast-shield.js +748 -104
- package/dist/shields/javascript/ast-shield.js.map +1 -1
- package/dist/shields/runtime/memory-diff-shield.d.ts +56 -0
- package/dist/shields/runtime/memory-diff-shield.d.ts.map +1 -0
- package/dist/shields/runtime/memory-diff-shield.js +170 -0
- package/dist/shields/runtime/memory-diff-shield.js.map +1 -0
- package/dist/shields/runtime/runtime-shield.d.ts +12 -16
- package/dist/shields/runtime/runtime-shield.d.ts.map +1 -1
- package/dist/shields/runtime/runtime-shield.js +30 -24
- package/dist/shields/runtime/runtime-shield.js.map +1 -1
- package/dist/shields/tarpit/opaque-predicates.d.ts.map +1 -1
- package/dist/shields/tarpit/opaque-predicates.js +3 -3
- package/dist/shields/tarpit/opaque-predicates.js.map +1 -1
- package/dist/shields/tarpit/tarpit-generator.d.ts +9 -4
- package/dist/shields/tarpit/tarpit-generator.d.ts.map +1 -1
- package/dist/shields/tarpit/tarpit-generator.js +30 -23
- package/dist/shields/tarpit/tarpit-generator.js.map +1 -1
- package/package.json +13 -6
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Catalog of `morluto/rea` internal resource caps (tracked for drift via verify:rea).
|
|
3
|
+
*
|
|
4
|
+
* IMPORTANT: the DEFENSE does not rely on hitting `hardLimit + epsilon`. Emitters
|
|
5
|
+
* scale payloads ORDERS OF MAGNITUDE past these defaults across orthogonal dimensions
|
|
6
|
+
* (byte-size, element count, nesting depth, entropy, symbol count, obligation families).
|
|
7
|
+
* If an attacker `sed`s one constant higher, they still overflow elsewhere — or must
|
|
8
|
+
* delete the safety limit entirely (defeating their own tool's guardrails).
|
|
9
|
+
* `verify:rea` tracks drift for awareness; it is NOT proof of protection.
|
|
4
10
|
*/
|
|
5
11
|
export const REA_BUDGET_BREAKER_MATRIX = [
|
|
6
12
|
{
|
|
7
13
|
id: "js-primitive-candidates",
|
|
8
|
-
reaSourceFile: "src/domain/javascript/javascriptSemanticResourceLimits.ts
|
|
14
|
+
reaSourceFile: "src/domain/javascript/javascriptSemanticResourceLimits.ts",
|
|
9
15
|
constantName: "SEMANTIC_PRIMITIVE_CANDIDATE_LIMIT",
|
|
10
16
|
hardLimit: 256,
|
|
11
17
|
unit: "alternatives",
|
|
@@ -14,7 +20,7 @@ export const REA_BUDGET_BREAKER_MATRIX = [
|
|
|
14
20
|
},
|
|
15
21
|
{
|
|
16
22
|
id: "js-expression-depth",
|
|
17
|
-
reaSourceFile: "src/domain/javascript/javascriptSemanticResourceLimits.ts
|
|
23
|
+
reaSourceFile: "src/domain/javascript/javascriptSemanticResourceLimits.ts",
|
|
18
24
|
constantName: "SEMANTIC_EXPRESSION_DEPTH_LIMIT",
|
|
19
25
|
hardLimit: 256,
|
|
20
26
|
unit: "levels",
|
|
@@ -23,7 +29,7 @@ export const REA_BUDGET_BREAKER_MATRIX = [
|
|
|
23
29
|
},
|
|
24
30
|
{
|
|
25
31
|
id: "js-getter-expansion",
|
|
26
|
-
reaSourceFile: "src/domain/javascript/javascriptSemanticResourceLimits.ts
|
|
32
|
+
reaSourceFile: "src/domain/javascript/javascriptSemanticResourceLimits.ts",
|
|
27
33
|
constantName: "SEMANTIC_GETTER_EXPANSION_LIMIT",
|
|
28
34
|
hardLimit: 512,
|
|
29
35
|
unit: "states",
|
|
@@ -32,16 +38,16 @@ export const REA_BUDGET_BREAKER_MATRIX = [
|
|
|
32
38
|
},
|
|
33
39
|
{
|
|
34
40
|
id: "js-alias-selections",
|
|
35
|
-
reaSourceFile: "src/domain/javascript/javascriptSemanticResourceLimits.ts
|
|
41
|
+
reaSourceFile: "src/domain/javascript/javascriptSemanticResourceLimits.ts",
|
|
36
42
|
constantName: "SEMANTIC_ALIAS_SELECTION_LIMIT",
|
|
37
43
|
hardLimit: 512,
|
|
38
44
|
unit: "states",
|
|
39
45
|
failureClassOrStatus: 'status: "unknown" (resourceLimit: "alias-selections")',
|
|
40
|
-
counterStrategy: "Generate >= 520 dynamic property selector states (`
|
|
46
|
+
counterStrategy: "Generate >= 520 dynamic property selector states (`aliasTbl[k]`) to overflow alias tracking.",
|
|
41
47
|
},
|
|
42
48
|
{
|
|
43
49
|
id: "js-primitive-json-bytes",
|
|
44
|
-
reaSourceFile: "src/domain/javascript/javascriptSemanticResourceLimits.ts
|
|
50
|
+
reaSourceFile: "src/domain/javascript/javascriptSemanticResourceLimits.ts",
|
|
45
51
|
constantName: "SEMANTIC_PRIMITIVE_JSON_BYTES_LIMIT",
|
|
46
52
|
hardLimit: 1_048_576,
|
|
47
53
|
unit: "bytes",
|
|
@@ -50,7 +56,7 @@ export const REA_BUDGET_BREAKER_MATRIX = [
|
|
|
50
56
|
},
|
|
51
57
|
{
|
|
52
58
|
id: "wasm-interface-representation",
|
|
53
|
-
reaSourceFile: "src/domain/wasm/wasmInterface.ts
|
|
59
|
+
reaSourceFile: "src/domain/wasm/wasmInterface.ts",
|
|
54
60
|
constantName: "WASM_INTERFACE_REPRESENTATION_BYTES",
|
|
55
61
|
hardLimit: 33_554_432,
|
|
56
62
|
unit: "bytes",
|
|
@@ -59,7 +65,7 @@ export const REA_BUDGET_BREAKER_MATRIX = [
|
|
|
59
65
|
},
|
|
60
66
|
{
|
|
61
67
|
id: "sqlite-column-evaluation",
|
|
62
|
-
reaSourceFile: "src/sqlite/SqliteDatabaseLimits.ts
|
|
68
|
+
reaSourceFile: "src/sqlite/SqliteDatabaseLimits.ts",
|
|
63
69
|
constantName: "SqliteColumnEvaluationFailure",
|
|
64
70
|
hardLimit: 1,
|
|
65
71
|
unit: "states",
|
|
@@ -68,16 +74,16 @@ export const REA_BUDGET_BREAKER_MATRIX = [
|
|
|
68
74
|
},
|
|
69
75
|
{
|
|
70
76
|
id: "safetensors-json-nesting",
|
|
71
|
-
reaSourceFile: "src/model/SafetensorsHeader.ts
|
|
77
|
+
reaSourceFile: "src/model/SafetensorsHeader.ts",
|
|
72
78
|
constantName: "MODEL_JSON_NESTING",
|
|
73
79
|
hardLimit: 32,
|
|
74
80
|
unit: "levels",
|
|
75
81
|
failureClassOrStatus: 'ModelFormatFailure("capacity", ..., "json-nesting")',
|
|
76
|
-
counterStrategy: "Embed 35-level nested JSON array under `
|
|
82
|
+
counterStrategy: "Embed 35-level nested JSON array under `nesting_breaker` in Safetensors header.",
|
|
77
83
|
},
|
|
78
84
|
{
|
|
79
85
|
id: "gguf-metadata-nesting",
|
|
80
|
-
reaSourceFile: "src/model/GgufHeader.ts
|
|
86
|
+
reaSourceFile: "src/model/GgufHeader.ts",
|
|
81
87
|
constantName: "MODEL_METADATA_NESTING",
|
|
82
88
|
hardLimit: 32,
|
|
83
89
|
unit: "levels",
|
|
@@ -86,13 +92,130 @@ export const REA_BUDGET_BREAKER_MATRIX = [
|
|
|
86
92
|
},
|
|
87
93
|
{
|
|
88
94
|
id: "cdp-script-source-budget",
|
|
89
|
-
reaSourceFile: "src/
|
|
95
|
+
reaSourceFile: "src/domain/webRuntime.ts",
|
|
90
96
|
constantName: "WEB_RUNTIME_LIMITS.sourceBytes",
|
|
91
|
-
hardLimit:
|
|
97
|
+
hardLimit: 33_554_432,
|
|
92
98
|
unit: "bytes",
|
|
93
99
|
failureClassOrStatus: "CDP_SCRIPT_SOURCE_BYTES_OMISSION_REASON",
|
|
94
100
|
counterStrategy: "Detect CDP/Inspector runtime attachment and serve high-volume decoy script modules to exhaust passive source collection.",
|
|
95
101
|
},
|
|
102
|
+
{
|
|
103
|
+
id: "lldb-trace-frames",
|
|
104
|
+
reaSourceFile: "bridge/native/rea_lldb_tracer.py",
|
|
105
|
+
constantName: "MAX_TRACE_FRAMES",
|
|
106
|
+
hardLimit: 65_536,
|
|
107
|
+
unit: "states",
|
|
108
|
+
failureClassOrStatus: 'outcome: "resource-limit" (process.Kill())',
|
|
109
|
+
counterStrategy: "Inject high-frequency decoy native call frames and deep backtraces so observe_native_calls hits 65,536 frames or 8 MiB and terminates the traced target.",
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
id: "lldb-other-stops",
|
|
113
|
+
reaSourceFile: "bridge/native/rea_lldb_tracer.py",
|
|
114
|
+
constantName: "MAX_OTHER_STOPS",
|
|
115
|
+
hardLimit: 256,
|
|
116
|
+
unit: "states",
|
|
117
|
+
failureClassOrStatus: 'outcome: "stop-limit" (process.Kill())',
|
|
118
|
+
counterStrategy: "Emit >= 256 benign non-breakpoint stop observations so LLDB batch tracing aborts with stop-limit.",
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
id: "gdb-command-output-records",
|
|
122
|
+
reaSourceFile: "src/gdb/GdbSessionManager.ts",
|
|
123
|
+
constantName: "MAX_COMMAND_OUTPUT_RECORDS",
|
|
124
|
+
hardLimit: 16_384,
|
|
125
|
+
unit: "states",
|
|
126
|
+
failureClassOrStatus: "AnalysisResourceConstraintError (output truncated)",
|
|
127
|
+
counterStrategy: "Churn hundreds of shadow heap slots on every call so GDB watchpoint/memory dump records exceed 16,384 MI lines.",
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
id: "rizin-command-frames",
|
|
131
|
+
reaSourceFile: "src/rizin/RizinDebugSessionManager.ts",
|
|
132
|
+
constantName: "MAX_COMMAND_FRAMES",
|
|
133
|
+
hardLimit: 4_096,
|
|
134
|
+
unit: "states",
|
|
135
|
+
failureClassOrStatus: "AnalysisResourceConstraintError (frame cap reached)",
|
|
136
|
+
counterStrategy: "Flood Rizin runtime memory search/diff commands with synchronized shadow buffer mutations exceeding 4,096 frames.",
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
id: "environment-compare-step-diff",
|
|
140
|
+
reaSourceFile: "src/application/environment/environmentCompareDiff.ts",
|
|
141
|
+
constantName: "STEP_DIFFERENCE_LIMIT",
|
|
142
|
+
hardLimit: 20,
|
|
143
|
+
unit: "states",
|
|
144
|
+
failureClassOrStatus: "Step differences truncated at 20 entries per step",
|
|
145
|
+
counterStrategy: "Mutate > 24 decoy state fields per step so real state diffs are pushed past REA's 20-difference per-step retention window.",
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
id: "go-buildinfo-bytes",
|
|
149
|
+
reaSourceFile: "src/go/GoBinaryImage.ts",
|
|
150
|
+
constantName: "MAX_BUILD_INFO_BYTES",
|
|
151
|
+
hardLimit: 1_048_576,
|
|
152
|
+
unit: "bytes",
|
|
153
|
+
failureClassOrStatus: 'BinaryResourceFailure("build-info", 1 MiB)',
|
|
154
|
+
counterStrategy: "Embed a framed Go buildinfo (magic + inline module) whose version+module strings exceed 1 MiB, plus .gopclntab/moduledata bait.",
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
id: "flutter-pool-uris",
|
|
158
|
+
reaSourceFile: "src/flutter/FlutterBuildProvider.ts",
|
|
159
|
+
constantName: "MAX_POOL_URIS",
|
|
160
|
+
hardLimit: 500,
|
|
161
|
+
unit: "states",
|
|
162
|
+
failureClassOrStatus: "string_pool.collectionCapped (package_uris/dart_uris)",
|
|
163
|
+
counterStrategy: "Inject > 500 distinct package: and dart: printable runs into Dart isolate snapshot / native trailer.",
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
id: "flutter-pool-tokens",
|
|
167
|
+
reaSourceFile: "src/flutter/FlutterBuildProvider.ts",
|
|
168
|
+
constantName: "MAX_POOL_TOKENS",
|
|
169
|
+
hardLimit: 2_000,
|
|
170
|
+
unit: "states",
|
|
171
|
+
failureClassOrStatus: "string_pool.collectionCapped (class_like_tokens)",
|
|
172
|
+
counterStrategy: "Inject > 2000 distinct identifier-shaped class-like tokens into Dart isolate snapshot / native trailer.",
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
id: "erlang-beam-chunks",
|
|
176
|
+
reaSourceFile: "src/domain/erlang/beam.ts",
|
|
177
|
+
constantName: "MAX_INSPECT_ERLANG_BEAM_CHUNKS",
|
|
178
|
+
hardLimit: 256,
|
|
179
|
+
unit: "states",
|
|
180
|
+
failureClassOrStatus: 'BeamCapacityFailure("chunks")',
|
|
181
|
+
counterStrategy: "Emit a valid FOR1/BEAM with > default max_chunks (64) decoy IFF chunks (and up to hard ceiling 256).",
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
id: "erlang-beam-atoms",
|
|
185
|
+
reaSourceFile: "src/domain/erlang/beam.ts",
|
|
186
|
+
constantName: "MAX_INSPECT_ERLANG_BEAM_ATOMS",
|
|
187
|
+
hardLimit: 65_536,
|
|
188
|
+
unit: "states",
|
|
189
|
+
failureClassOrStatus: 'BeamCapacityFailure("atoms")',
|
|
190
|
+
counterStrategy: "Pad AtU8 atom table past the schema default max_atoms (4096) with canary/diagnostic atom names.",
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
id: "evm-input-bytes",
|
|
194
|
+
reaSourceFile: "src/evm/EvmoleRelease.ts",
|
|
195
|
+
constantName: "EVM_INTERFACE_LIMITS.inputBytes",
|
|
196
|
+
hardLimit: 4_194_304,
|
|
197
|
+
unit: "bytes",
|
|
198
|
+
failureClassOrStatus: "EVM carrier input allowance exhausted",
|
|
199
|
+
counterStrategy: "Append adversarial Solidity metadata CBOR + optional padding that approaches the 4 MiB inputBytes ceiling.",
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
id: "pcap-tshark-json",
|
|
203
|
+
reaSourceFile: "src/pcap/PcapOutput.ts",
|
|
204
|
+
constantName: "TSHARK_JSON_MAX_BYTES",
|
|
205
|
+
hardLimit: 8_388_608,
|
|
206
|
+
unit: "bytes",
|
|
207
|
+
failureClassOrStatus: "tshark JSON output exceeds 8 MiB",
|
|
208
|
+
counterStrategy: "Inject high-volume decoy packets whose decoded JSON projection exceeds TSHARK_JSON_MAX_BYTES.",
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
id: "gpu-report-bytes",
|
|
212
|
+
reaSourceFile: "src/gpu/GpuSource.ts",
|
|
213
|
+
constantName: "GPU_REPORT_BYTES",
|
|
214
|
+
hardLimit: 16_777_216,
|
|
215
|
+
unit: "bytes",
|
|
216
|
+
failureClassOrStatus: "GPU facts exceed the 16 MiB retained report budget",
|
|
217
|
+
counterStrategy: "Pad PTX modules with decoy .entry/.param declarations and canary comments toward GPU_REPORT_BYTES.",
|
|
218
|
+
},
|
|
96
219
|
];
|
|
97
220
|
/**
|
|
98
221
|
* Mirrors REA's exact `exceedsSemanticPrimitiveAdditionByteBudget` formula
|
|
@@ -169,7 +292,7 @@ export function getExhaustionProfileForIntensity(intensity) {
|
|
|
169
292
|
aliasSelectorCount: 640,
|
|
170
293
|
cartesianBranchCount: 36,
|
|
171
294
|
cartesianStringLength: 260,
|
|
172
|
-
obligationDecoyFamilies:
|
|
295
|
+
obligationDecoyFamilies: 26,
|
|
173
296
|
sccClusterCount: 8,
|
|
174
297
|
};
|
|
175
298
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rea-budget-matrix.js","sourceRoot":"","sources":["../../../src/shields/exhaustion/rea-budget-matrix.ts"],"names":[],"mappings":"AAYA
|
|
1
|
+
{"version":3,"file":"rea-budget-matrix.js","sourceRoot":"","sources":["../../../src/shields/exhaustion/rea-budget-matrix.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regex-worker-tarpit.d.ts","sourceRoot":"","sources":["../../../src/shields/exhaustion/regex-worker-tarpit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,EAChB,SAAS,GAAE,mBAAgC,GAC1C,uBAAuB,
|
|
1
|
+
{"version":3,"file":"regex-worker-tarpit.d.ts","sourceRoot":"","sources":["../../../src/shields/exhaustion/regex-worker-tarpit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,EAChB,SAAS,GAAE,mBAAgC,GAC1C,uBAAuB,CA4BzB"}
|
|
@@ -33,7 +33,8 @@ export function generateRegexWorkerTarpit(prng, intensity = "balanced") {
|
|
|
33
33
|
const p = prefixes[i % prefixes.length];
|
|
34
34
|
entries.push(`${p}_${tag}_${i}_0x${prng.hex(8)}`);
|
|
35
35
|
}
|
|
36
|
-
const
|
|
36
|
+
const magnetName = `regexSearchMagnet_${tag}`;
|
|
37
|
+
const code = `const ${magnetName} = Object.freeze(${JSON.stringify(entries)});`;
|
|
37
38
|
return {
|
|
38
39
|
code,
|
|
39
40
|
nearMissCandidatesGenerated: entries.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regex-worker-tarpit.js","sourceRoot":"","sources":["../../../src/shields/exhaustion/regex-worker-tarpit.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,kCAAkC,EAAE,KAAK;IACzC,qCAAqC,EAAE,GAAG;IAC1C,qCAAqC,EAAE,CAAC;CAChC,CAAC;AAOX;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAgB,EAChB,YAAiC,UAAU;IAE3C,MAAM,KAAK,GACT,SAAS,KAAK,SAAS;QACrB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,SAAS,KAAK,UAAU;YACxB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,SAAS,KAAK,SAAS;gBACvB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,QAAQ,GAAG;QACf,2BAA2B;QAC3B,0BAA0B;QAC1B,yBAAyB;QACzB,sBAAsB;KACvB,CAAC;IACF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"regex-worker-tarpit.js","sourceRoot":"","sources":["../../../src/shields/exhaustion/regex-worker-tarpit.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,kCAAkC,EAAE,KAAK;IACzC,qCAAqC,EAAE,GAAG;IAC1C,qCAAqC,EAAE,CAAC;CAChC,CAAC;AAOX;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAgB,EAChB,YAAiC,UAAU;IAE3C,MAAM,KAAK,GACT,SAAS,KAAK,SAAS;QACrB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,SAAS,KAAK,UAAU;YACxB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,SAAS,KAAK,SAAS;gBACvB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,CAAC;IACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,QAAQ,GAAG;QACf,2BAA2B;QAC3B,0BAA0B;QAC1B,yBAAyB;QACzB,sBAAsB;KACvB,CAAC;IACF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,UAAU,GAAG,qBAAqB,GAAG,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,SAAS,UAAU,oBAAoB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IAChF,OAAO;QACL,IAAI;QACJ,2BAA2B,EAAE,OAAO,CAAC,MAAM;KAC5C,CAAC;AACJ,CAAC"}
|
|
@@ -12,12 +12,15 @@ export interface WasmInterfaceExhaustionPlan {
|
|
|
12
12
|
readonly totalBinaryOverheadBytes: number;
|
|
13
13
|
readonly totalReaChargedBytes: number;
|
|
14
14
|
readonly byteAmplificationFactor: number;
|
|
15
|
+
readonly exceedsRepresentationBudget: boolean;
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
|
-
* Targets REA's `WasmInterfaceBudget` (`
|
|
18
|
-
* where every WebAssembly import/export entry is charged:
|
|
19
|
-
* `1024 + (module.length + name.length + wat_form.length) * 6 + (params
|
|
20
|
-
*
|
|
18
|
+
* Targets REA's `WasmInterfaceBudget` (`WASM_INTERFACE_REPRESENTATION_BYTES` =
|
|
19
|
+
* 32 MiB), where every WebAssembly import/export entry is charged:
|
|
20
|
+
* `1024 + (module.length + name.length + wat_form.length) * 6 + (params+results) * 16`.
|
|
21
|
+
*
|
|
22
|
+
* At bankrupt intensity, descriptors are sized so the charged representation
|
|
23
|
+
* exceeds the 32 MiB ceiling (Wabt path or in-process budget probe).
|
|
21
24
|
*/
|
|
22
25
|
export declare function planWasmInterfaceBudgetExhaustion(prng: SeededPrng, intensity?: ProtectionIntensity): WasmInterfaceExhaustionPlan;
|
|
23
26
|
//# sourceMappingURL=wasm-interface-exhaustion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-interface-exhaustion.d.ts","sourceRoot":"","sources":["../../../src/shields/exhaustion/wasm-interface-exhaustion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"wasm-interface-exhaustion.d.ts","sourceRoot":"","sources":["../../../src/shields/exhaustion/wasm-interface-exhaustion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI/D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;CAChD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,WAAW,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC1D,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,2BAA2B,EAAE,OAAO,CAAC;CAC/C;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,UAAU,EAChB,SAAS,GAAE,mBAAgC,GAC1C,2BAA2B,CAwD7B"}
|
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
import { computeReaWasmInterfaceCharge } from "./rea-budget-matrix.js";
|
|
2
|
+
import { REA_INTERNAL_LIMITS } from "../../identity.js";
|
|
2
3
|
/**
|
|
3
|
-
* Targets REA's `WasmInterfaceBudget` (`
|
|
4
|
-
* where every WebAssembly import/export entry is charged:
|
|
5
|
-
* `1024 + (module.length + name.length + wat_form.length) * 6 + (params
|
|
6
|
-
*
|
|
4
|
+
* Targets REA's `WasmInterfaceBudget` (`WASM_INTERFACE_REPRESENTATION_BYTES` =
|
|
5
|
+
* 32 MiB), where every WebAssembly import/export entry is charged:
|
|
6
|
+
* `1024 + (module.length + name.length + wat_form.length) * 6 + (params+results) * 16`.
|
|
7
|
+
*
|
|
8
|
+
* At bankrupt intensity, descriptors are sized so the charged representation
|
|
9
|
+
* exceeds the 32 MiB ceiling (Wabt path or in-process budget probe).
|
|
7
10
|
*/
|
|
8
11
|
export function planWasmInterfaceBudgetExhaustion(prng, intensity = "balanced") {
|
|
12
|
+
const budget = REA_INTERNAL_LIMITS.WASM_INTERFACE_REPRESENTATION_BYTES;
|
|
9
13
|
const count = intensity === "stealth"
|
|
10
14
|
? 12
|
|
11
15
|
: intensity === "balanced"
|
|
12
16
|
? 24
|
|
13
17
|
: intensity === "maximum"
|
|
14
18
|
? 48
|
|
15
|
-
:
|
|
19
|
+
: 128;
|
|
20
|
+
// bankrupt: long module/export/wat names so ~128 entries clear 32 MiB.
|
|
21
|
+
// bankrupt: ~15 KiB names × 128 entries → charged representation ≫ 32 MiB.
|
|
22
|
+
const namePad = intensity === "bankrupt" ? 15_000 : intensity === "maximum" ? 64 : 0;
|
|
16
23
|
const descriptors = [];
|
|
17
24
|
let totalBinaryOverheadBytes = 0;
|
|
18
25
|
let totalReaChargedBytes = 0;
|
|
19
26
|
for (let i = 0; i < count; i++) {
|
|
20
|
-
const
|
|
21
|
-
const
|
|
27
|
+
const pad = namePad > 0 ? prng.hex(Math.min(8, namePad)).padEnd(namePad, "b") : "";
|
|
28
|
+
const moduleName = `enclave_tee_ring0_attestation_domain_${prng.hex(6)}${pad ? `_${pad}` : ""}`;
|
|
29
|
+
const exportName = `bla_enclave_verify_zero_trust_merkle_slot_${i}_${prng.hex(8)}${pad ? `_${pad}` : ""}`;
|
|
22
30
|
const paramCount = 16;
|
|
23
31
|
const resultCount = 4;
|
|
24
32
|
const watForm = `(func $${exportName} (param ${Array(paramCount).fill("i64").join(" ")}) (result ${Array(resultCount).fill("i64").join(" ")}))`;
|
|
@@ -45,6 +53,7 @@ export function planWasmInterfaceBudgetExhaustion(prng, intensity = "balanced")
|
|
|
45
53
|
totalBinaryOverheadBytes,
|
|
46
54
|
totalReaChargedBytes,
|
|
47
55
|
byteAmplificationFactor: Number((totalReaChargedBytes / Math.max(1, totalBinaryOverheadBytes)).toFixed(2)),
|
|
56
|
+
exceedsRepresentationBudget: totalReaChargedBytes > budget,
|
|
48
57
|
};
|
|
49
58
|
}
|
|
50
59
|
//# sourceMappingURL=wasm-interface-exhaustion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-interface-exhaustion.js","sourceRoot":"","sources":["../../../src/shields/exhaustion/wasm-interface-exhaustion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"wasm-interface-exhaustion.js","sourceRoot":"","sources":["../../../src/shields/exhaustion/wasm-interface-exhaustion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SeededPrng } from "../../core/prng.js";
|
|
2
|
+
import type { ProtectionIntensity } from "../../core/types.js";
|
|
3
|
+
export interface AndroidDexXrefCounterResult {
|
|
4
|
+
readonly dexBuffer: Buffer;
|
|
5
|
+
/** Number of decoy caller classes that invoke the external Log.d target. */
|
|
6
|
+
readonly callerClassesEmitted: number;
|
|
7
|
+
/** External method refs planted (currently always 1 — Log.d). */
|
|
8
|
+
readonly externalMethodRefs: number;
|
|
9
|
+
/** Marker string embedded for inspect/detect. */
|
|
10
|
+
readonly marker: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Generate a decoy DEX that saturates REA #8154's external-invoke caller
|
|
14
|
+
* inventory (`MAX_EXTERNAL_XREF_BYTES`).
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateAndroidDexXrefCounter(prng: SeededPrng, intensity?: ProtectionIntensity): AndroidDexXrefCounterResult;
|
|
17
|
+
/** Next free `classesN.dex` name given existing ZIP entry names. */
|
|
18
|
+
export declare function nextMultidexName(existingNames: readonly string[]): string;
|
|
19
|
+
//# sourceMappingURL=android-dex-xref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"android-dex-xref.d.ts","sourceRoot":"","sources":["../../../src/shields/formats/android-dex-xref.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI/D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,iDAAiD;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAmbD;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,UAAU,EAChB,SAAS,GAAE,mBAAgC,GAC1C,2BAA2B,CAkB7B;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAYzE"}
|