deepspider 0.2.12 → 0.3.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.
Files changed (152) hide show
  1. package/README.md +53 -27
  2. package/bin/cli.js +45 -0
  3. package/package.json +10 -4
  4. package/src/agent/core/PanelBridge.js +2 -2
  5. package/src/agent/logger.js +1 -1
  6. package/src/agent/middleware/report.js +1 -1
  7. package/src/agent/run.js +54 -63
  8. package/src/agent/setup.js +14 -14
  9. package/src/agent/skills/evolve.js +0 -3
  10. package/src/agent/tools/captcha.js +1 -1
  11. package/src/agent/tools/evolve.js +1 -1
  12. package/src/agent/tools/file.js +2 -2
  13. package/src/agent/tools/python.js +4 -4
  14. package/src/agent/tools/report.js +2 -2
  15. package/src/agent/tools/runtime.js +1 -1
  16. package/src/analyzer/EncryptionAnalyzer.js +2 -2
  17. package/src/browser/collector.js +1 -1
  18. package/src/browser/interceptors/NetworkInterceptor.js +1 -1
  19. package/src/browser/interceptors/ScriptInterceptor.js +2 -2
  20. package/src/cli/commands/config.js +94 -0
  21. package/src/cli/commands/help.js +34 -0
  22. package/src/cli/commands/update.js +78 -0
  23. package/src/cli/commands/version.js +9 -0
  24. package/src/cli/config.js +15 -0
  25. package/src/config/settings.js +102 -0
  26. package/src/core/PatchGenerator.js +2 -2
  27. package/src/env/EnvCodeGenerator.js +1 -1
  28. package/src/store/DataStore.js +5 -5
  29. package/.claude/agents/check.md +0 -122
  30. package/.claude/agents/debug.md +0 -106
  31. package/.claude/agents/dispatch.md +0 -214
  32. package/.claude/agents/implement.md +0 -96
  33. package/.claude/agents/plan.md +0 -396
  34. package/.claude/agents/research.md +0 -120
  35. package/.claude/commands/evolve/merge.md +0 -80
  36. package/.claude/commands/trellis/before-backend-dev.md +0 -13
  37. package/.claude/commands/trellis/before-frontend-dev.md +0 -13
  38. package/.claude/commands/trellis/break-loop.md +0 -107
  39. package/.claude/commands/trellis/check-backend.md +0 -13
  40. package/.claude/commands/trellis/check-cross-layer.md +0 -153
  41. package/.claude/commands/trellis/check-frontend.md +0 -13
  42. package/.claude/commands/trellis/create-command.md +0 -154
  43. package/.claude/commands/trellis/finish-work.md +0 -129
  44. package/.claude/commands/trellis/integrate-skill.md +0 -219
  45. package/.claude/commands/trellis/onboard.md +0 -358
  46. package/.claude/commands/trellis/parallel.md +0 -193
  47. package/.claude/commands/trellis/record-session.md +0 -62
  48. package/.claude/commands/trellis/start.md +0 -280
  49. package/.claude/commands/trellis/update-spec.md +0 -213
  50. package/.claude/hooks/inject-subagent-context.py +0 -758
  51. package/.claude/hooks/ralph-loop.py +0 -374
  52. package/.claude/hooks/session-start.py +0 -126
  53. package/.claude/settings.json +0 -41
  54. package/.claude/skills/deepagents-guide/SKILL.md +0 -428
  55. package/.cursor/commands/trellis-before-backend-dev.md +0 -13
  56. package/.cursor/commands/trellis-before-frontend-dev.md +0 -13
  57. package/.cursor/commands/trellis-break-loop.md +0 -107
  58. package/.cursor/commands/trellis-check-backend.md +0 -13
  59. package/.cursor/commands/trellis-check-cross-layer.md +0 -153
  60. package/.cursor/commands/trellis-check-frontend.md +0 -13
  61. package/.cursor/commands/trellis-create-command.md +0 -154
  62. package/.cursor/commands/trellis-finish-work.md +0 -129
  63. package/.cursor/commands/trellis-integrate-skill.md +0 -219
  64. package/.cursor/commands/trellis-onboard.md +0 -358
  65. package/.cursor/commands/trellis-record-session.md +0 -62
  66. package/.cursor/commands/trellis-start.md +0 -156
  67. package/.cursor/commands/trellis-update-spec.md +0 -213
  68. package/.github/workflows/publish.yml +0 -63
  69. package/.husky/pre-commit +0 -1
  70. package/.mcp.json +0 -8
  71. package/.trellis/.template-hashes.json +0 -65
  72. package/.trellis/.version +0 -1
  73. package/.trellis/scripts/add-session.sh +0 -384
  74. package/.trellis/scripts/common/developer.sh +0 -129
  75. package/.trellis/scripts/common/git-context.sh +0 -263
  76. package/.trellis/scripts/common/paths.sh +0 -208
  77. package/.trellis/scripts/common/phase.sh +0 -150
  78. package/.trellis/scripts/common/registry.sh +0 -247
  79. package/.trellis/scripts/common/task-queue.sh +0 -142
  80. package/.trellis/scripts/common/task-utils.sh +0 -151
  81. package/.trellis/scripts/common/worktree.sh +0 -128
  82. package/.trellis/scripts/create-bootstrap.sh +0 -299
  83. package/.trellis/scripts/get-context.sh +0 -7
  84. package/.trellis/scripts/get-developer.sh +0 -15
  85. package/.trellis/scripts/init-developer.sh +0 -34
  86. package/.trellis/scripts/multi-agent/cleanup.sh +0 -396
  87. package/.trellis/scripts/multi-agent/create-pr.sh +0 -241
  88. package/.trellis/scripts/multi-agent/plan.sh +0 -207
  89. package/.trellis/scripts/multi-agent/start.sh +0 -310
  90. package/.trellis/scripts/multi-agent/status.sh +0 -828
  91. package/.trellis/scripts/task.sh +0 -1118
  92. package/.trellis/spec/backend/ci-cd-guidelines.md +0 -73
  93. package/.trellis/spec/backend/deepagents-guide.md +0 -380
  94. package/.trellis/spec/backend/directory-structure.md +0 -145
  95. package/.trellis/spec/backend/examples/skills/deepagents-guide/README.md +0 -11
  96. package/.trellis/spec/backend/examples/skills/deepagents-guide/agent.js.template +0 -20
  97. package/.trellis/spec/backend/examples/skills/deepagents-guide/skills-config.js.template +0 -13
  98. package/.trellis/spec/backend/examples/skills/deepagents-guide/subagent.js.template +0 -19
  99. package/.trellis/spec/backend/hook-guidelines.md +0 -218
  100. package/.trellis/spec/backend/index.md +0 -37
  101. package/.trellis/spec/backend/quality-guidelines.md +0 -377
  102. package/.trellis/spec/backend/state-management.md +0 -76
  103. package/.trellis/spec/backend/tool-guidelines.md +0 -144
  104. package/.trellis/spec/backend/type-safety.md +0 -71
  105. package/.trellis/spec/guides/code-reuse-thinking-guide.md +0 -92
  106. package/.trellis/spec/guides/cross-layer-thinking-guide.md +0 -94
  107. package/.trellis/spec/guides/index.md +0 -79
  108. package/.trellis/tasks/archive/02-02-evolving-skills/prd.md +0 -61
  109. package/.trellis/tasks/archive/02-02-evolving-skills/task.json +0 -29
  110. package/.trellis/tasks/archive/2026-02/00-bootstrap-guidelines/prd.md +0 -86
  111. package/.trellis/tasks/archive/2026-02/00-bootstrap-guidelines/task.json +0 -27
  112. package/.trellis/tasks/archive/2026-02/02-02-skills-system/check.jsonl +0 -3
  113. package/.trellis/tasks/archive/2026-02/02-02-skills-system/debug.jsonl +0 -2
  114. package/.trellis/tasks/archive/2026-02/02-02-skills-system/implement.jsonl +0 -5
  115. package/.trellis/tasks/archive/2026-02/02-02-skills-system/prd.md +0 -33
  116. package/.trellis/tasks/archive/2026-02/02-02-skills-system/task.json +0 -41
  117. package/.trellis/workflow.md +0 -407
  118. package/.trellis/workspace/index.md +0 -123
  119. package/.trellis/workspace/pony/index.md +0 -42
  120. package/.trellis/workspace/pony/journal-1.md +0 -125
  121. package/.trellis/worktree.yaml +0 -47
  122. package/AGENTS.md +0 -18
  123. package/CLAUDE.md +0 -315
  124. package/agents/deepspider.md +0 -142
  125. package/docs/DEBUG.md +0 -42
  126. package/docs/GUIDE.md +0 -338
  127. package/docs/PROMPT.md +0 -59
  128. package/docs/USAGE.md +0 -230
  129. package/eslint.config.js +0 -51
  130. package/test/analyze.test.js +0 -90
  131. package/test/envdump.test.js +0 -74
  132. package/test/flow.test.js +0 -90
  133. package/test/hooks.test.js +0 -138
  134. package/test/plugin.test.js +0 -35
  135. package/test/refactor-full.test.js +0 -30
  136. package/test/refactor.test.js +0 -21
  137. package/test/samples/obfuscated.js +0 -61
  138. package/test/samples/original.js +0 -66
  139. package/test/samples/v10_eval_chain.js +0 -52
  140. package/test/samples/v11_bytecode_vm.js +0 -81
  141. package/test/samples/v12_polymorphic.js +0 -69
  142. package/test/samples/v1_ob_basic.js +0 -98
  143. package/test/samples/v2_ob_advanced.js +0 -99
  144. package/test/samples/v3_jjencode.js +0 -77
  145. package/test/samples/v4_aaencode.js +0 -73
  146. package/test/samples/v5_control_flow.js +0 -86
  147. package/test/samples/v6_string_encryption.js +0 -71
  148. package/test/samples/v7_jsvmp.js +0 -83
  149. package/test/samples/v8_anti_debug.js +0 -79
  150. package/test/samples/v9_proxy_trap.js +0 -49
  151. package/test/samples.test.js +0 -96
  152. package/test/webcrack.test.js +0 -55
@@ -1,81 +0,0 @@
1
- /**
2
- * v11: 自定义字节码解释器
3
- * 技术: 将JS编译为自定义字节码,运行时解释执行
4
- * 特点: 完全隐藏原始逻辑,需逆向VM才能理解
5
- */
6
-
7
- (function() {
8
- // 字节码指令集
9
- var OP = {
10
- NOP: 0x00, PUSH: 0x01, POP: 0x02,
11
- ADD: 0x10, SUB: 0x11, MUL: 0x12,
12
- SHL: 0x13, AND: 0x14, XOR: 0x15,
13
- CALL: 0x20, RET: 0x21,
14
- LOAD: 0x30, STORE: 0x31,
15
- HALT: 0xFF
16
- };
17
-
18
- // VM状态
19
- var stack = [];
20
- var mem = {};
21
- var pc = 0;
22
-
23
- // 内置函数
24
- var funcs = {
25
- 0: function() { return Date.now(); },
26
- 1: function() { return Math.random(); },
27
- 2: function(s) { return btoa(s); }
28
- };
29
-
30
- // 执行器
31
- var exec = function(code) {
32
- pc = 0;
33
- while (pc < code.length) {
34
- var op = code[pc++];
35
- switch (op) {
36
- case OP.PUSH: stack.push(code[pc++]); break;
37
- case OP.POP: mem[code[pc++]] = stack.pop(); break;
38
- case OP.ADD: stack.push(stack.pop() + stack.pop()); break;
39
- case OP.SHL: var a = stack.pop(), b = stack.pop(); stack.push(b << a); break;
40
- case OP.AND: stack.push(stack.pop() & stack.pop()); break;
41
- case OP.CALL: stack.push(funcs[code[pc++]](stack.pop())); break;
42
- case OP.HALT: return stack.pop();
43
- }
44
- }
45
- };
46
-
47
- // 常量
48
- var SECRET = 'deepspider_test_2024';
49
- var APPID = 'app_12345';
50
-
51
- // 哈希函数
52
- var hash = function(s) {
53
- var h = 0;
54
- for (var i = 0; i < s.length; i++) {
55
- h = ((h << 5) - h) + s.charCodeAt(i);
56
- h = h & h;
57
- }
58
- return Math.abs(h).toString(16);
59
- };
60
-
61
- // 主逻辑
62
- var ts = Math.floor(Date.now() / 1000);
63
- var c = 'abcdef0123456789', nonce = '';
64
- for (var i = 0; i < 8; i++) {
65
- nonce += c.charAt(Math.floor(Math.random() * c.length));
66
- }
67
-
68
- var signStr = APPID + ts + nonce + SECRET;
69
- var data = { user: 'test', action: 'login' };
70
-
71
- var result = Object.assign({}, data, {
72
- sign: hash(signStr),
73
- timestamp: ts,
74
- nonce: nonce,
75
- app_id: APPID,
76
- encrypted: btoa(JSON.stringify(data))
77
- });
78
-
79
- console.log('Result:', result);
80
- return result;
81
- })();
@@ -1,69 +0,0 @@
1
- /**
2
- * v12: 多态混淆
3
- * 技术: 每次执行生成不同的代码结构
4
- * 特点: 动态生成代码,难以静态分析
5
- */
6
-
7
- (function() {
8
- // 随机选择实现方式
9
- var _r = Math.random();
10
-
11
- // 多态哈希实现
12
- var hash;
13
- if (_r < 0.33) {
14
- hash = function(s) {
15
- var h = 0;
16
- for (var i = 0; i < s.length; i++) {
17
- h = ((h << 5) - h) + s.charCodeAt(i);
18
- h = h & h;
19
- }
20
- return Math.abs(h).toString(16);
21
- };
22
- } else if (_r < 0.66) {
23
- hash = function(s) {
24
- var h = 5381;
25
- for (var i = 0; i < s.length; i++) {
26
- h = ((h << 5) + h) ^ s.charCodeAt(i);
27
- }
28
- return Math.abs(h).toString(16);
29
- };
30
- } else {
31
- hash = function(s) {
32
- var h = 0, g;
33
- for (var i = 0; i < s.length; i++) {
34
- h = (h << 4) + s.charCodeAt(i);
35
- g = h & 0xF0000000;
36
- if (g) h ^= g >> 24;
37
- h &= ~g;
38
- }
39
- return Math.abs(h).toString(16);
40
- };
41
- }
42
-
43
- // 常量
44
- var SECRET = 'deepspider_test_2024';
45
- var APPID = 'app_12345';
46
-
47
- // 时间戳
48
- var ts = Math.floor(Date.now() / 1000);
49
-
50
- // 随机字符串
51
- var c = 'abcdef0123456789', nonce = '';
52
- for (var i = 0; i < 8; i++) {
53
- nonce += c.charAt(Math.floor(Math.random() * c.length));
54
- }
55
-
56
- var signStr = APPID + ts + nonce + SECRET;
57
- var data = { user: 'test', action: 'login' };
58
-
59
- var result = Object.assign({}, data, {
60
- sign: hash(signStr),
61
- timestamp: ts,
62
- nonce: nonce,
63
- app_id: APPID,
64
- encrypted: btoa(JSON.stringify(data))
65
- });
66
-
67
- console.log('Result:', result);
68
- return result;
69
- })();
@@ -1,98 +0,0 @@
1
- /**
2
- * v1: JavaScript Obfuscator 基础混淆
3
- * 技术: 变量重命名、字符串数组、十六进制编码
4
- * 参考: https://obfuscator.io
5
- */
6
-
7
- var _0x4a2c = [
8
- '\x6a\x73\x66\x6f\x72\x67\x65\x5f\x74\x65\x73\x74\x5f\x32\x30\x32\x34',
9
- '\x61\x70\x70\x5f\x31\x32\x33\x34\x35',
10
- '\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74',
11
- '\x74\x6f\x53\x74\x72\x69\x6e\x67',
12
- '\x66\x6c\x6f\x6f\x72',
13
- '\x6e\x6f\x77',
14
- '\x61\x62\x63\x64\x65\x66\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39',
15
- '\x63\x68\x61\x72\x41\x74',
16
- '\x72\x61\x6e\x64\x6f\x6d',
17
- '\x6c\x65\x6e\x67\x74\x68',
18
- '\x73\x69\x67\x6e',
19
- '\x74\x69\x6d\x65\x73\x74\x61\x6d\x70',
20
- '\x6e\x6f\x6e\x63\x65',
21
- '\x61\x70\x70\x5f\x69\x64',
22
- '\x65\x6e\x63\x72\x79\x70\x74\x65\x64',
23
- '\x73\x74\x72\x69\x6e\x67\x69\x66\x79',
24
- '\x75\x73\x65\x72',
25
- '\x74\x65\x73\x74',
26
- '\x61\x63\x74\x69\x6f\x6e',
27
- '\x6c\x6f\x67\x69\x6e',
28
- '\x6c\x6f\x67',
29
- '\x52\x65\x73\x75\x6c\x74\x3a'
30
- ];
31
-
32
- (function(_0x2d8f05, _0x4a2c9a) {
33
- var _0x4b5b24 = function(_0x2d5f0a) {
34
- while (--_0x2d5f0a) {
35
- _0x2d8f05['push'](_0x2d8f05['shift']());
36
- }
37
- };
38
- _0x4b5b24(++_0x4a2c9a);
39
- }(_0x4a2c, 0x1b8));
40
-
41
- var _0x4b5b = function(_0x2d8f05, _0x4a2c9a) {
42
- _0x2d8f05 = _0x2d8f05 - 0x0;
43
- var _0x4b5b24 = _0x4a2c[_0x2d8f05];
44
- return _0x4b5b24;
45
- };
46
-
47
- var _0x2d5f0a = _0x4b5b('0x0');
48
- var _0x3c7e1b = _0x4b5b('0x1');
49
-
50
- function _0x1a2b3c(_0x5d6e7f) {
51
- var _0x8a9b0c = 0x0;
52
- for (var _0xd1e2f3 = 0x0; _0xd1e2f3 < _0x5d6e7f[_0x4b5b('0x9')]; _0xd1e2f3++) {
53
- var _0x4g5h6i = _0x5d6e7f[_0x4b5b('0x2')](_0xd1e2f3);
54
- _0x8a9b0c = ((_0x8a9b0c << 0x5) - _0x8a9b0c) + _0x4g5h6i;
55
- _0x8a9b0c = _0x8a9b0c & _0x8a9b0c;
56
- }
57
- return Math['abs'](_0x8a9b0c)[_0x4b5b('0x3')](0x10);
58
- }
59
-
60
- function _0x7j8k9l() {
61
- return Math[_0x4b5b('0x4')](Date[_0x4b5b('0x5')]() / 0x3e8);
62
- }
63
-
64
- function _0xm1n2o3(_0xp4q5r6) {
65
- var _0xs7t8u9 = _0x4b5b('0x6');
66
- var _0xv0w1x2 = '';
67
- for (var _0xy3z4a5 = 0x0; _0xy3z4a5 < _0xp4q5r6; _0xy3z4a5++) {
68
- _0xv0w1x2 += _0xs7t8u9[_0x4b5b('0x7')](Math[_0x4b5b('0x4')](Math[_0x4b5b('0x8')]() * _0xs7t8u9[_0x4b5b('0x9')]));
69
- }
70
- return _0xv0w1x2;
71
- }
72
-
73
- function _0xb6c7d8(_0xe9f0g1) {
74
- var _0xh2i3j4 = _0x7j8k9l();
75
- var _0xk5l6m7 = _0xm1n2o3(0x8);
76
- var _0xn8o9p0 = _0x3c7e1b + _0xh2i3j4 + _0xk5l6m7 + _0x2d5f0a;
77
- var _0xq1r2s3 = _0x1a2b3c(_0xn8o9p0);
78
- var _0xt4u5v6 = {};
79
- _0xt4u5v6[_0x4b5b('0xa')] = _0xq1r2s3;
80
- _0xt4u5v6[_0x4b5b('0xb')] = _0xh2i3j4;
81
- _0xt4u5v6[_0x4b5b('0xc')] = _0xk5l6m7;
82
- _0xt4u5v6[_0x4b5b('0xd')] = _0x3c7e1b;
83
- return _0xt4u5v6;
84
- }
85
-
86
- function _0xw7x8y9(_0xz0a1b2) {
87
- var _0xc3d4e5 = _0xb6c7d8(_0xz0a1b2);
88
- return Object['assign']({}, _0xz0a1b2, _0xc3d4e5, {
89
- [_0x4b5b('0xe')]: btoa(JSON[_0x4b5b('0xf')](_0xz0a1b2))
90
- });
91
- }
92
-
93
- var _0xf6g7h8 = {};
94
- _0xf6g7h8[_0x4b5b('0x10')] = _0x4b5b('0x11');
95
- _0xf6g7h8[_0x4b5b('0x12')] = _0x4b5b('0x13');
96
- var _0xi9j0k1 = _0xw7x8y9(_0xf6g7h8);
97
- console[_0x4b5b('0x14')](_0x4b5b('0x15'), _0xi9j0k1);
98
- _0xi9j0k1;
@@ -1,99 +0,0 @@
1
- /**
2
- * v2: JavaScript Obfuscator 高级混淆
3
- * 技术: RC4字符串加密 + 控制流平坦化 + 死代码注入 + 自我防御
4
- * 参考: https://obfuscator.io
5
- */
6
-
7
- // RC4 解密函数
8
- function _0xrc4(_0xkey, _0xstr) {
9
- var _0xs = [], _0xj = 0, _0xx, _0xres = '';
10
- for (var _0xi = 0; _0xi < 256; _0xi++) { _0xs[_0xi] = _0xi; }
11
- for (_0xi = 0; _0xi < 256; _0xi++) {
12
- _0xj = (_0xj + _0xs[_0xi] + _0xkey.charCodeAt(_0xi % _0xkey.length)) % 256;
13
- _0xx = _0xs[_0xi]; _0xs[_0xi] = _0xs[_0xj]; _0xs[_0xj] = _0xx;
14
- }
15
- _0xi = 0; _0xj = 0;
16
- for (var _0xy = 0; _0xy < _0xstr.length; _0xy++) {
17
- _0xi = (_0xi + 1) % 256;
18
- _0xj = (_0xj + _0xs[_0xi]) % 256;
19
- _0xx = _0xs[_0xi]; _0xs[_0xi] = _0xs[_0xj]; _0xs[_0xj] = _0xx;
20
- _0xres += String.fromCharCode(_0xstr.charCodeAt(_0xy) ^ _0xs[(_0xs[_0xi] + _0xs[_0xj]) % 256]);
21
- }
22
- return _0xres;
23
- }
24
-
25
- // 加密的字符串数组
26
- var _0x4f3a = [
27
- '\x57\x46\x4a\x76\x63\x6d\x64\x6c', '\x58\x33\x52\x6c\x63\x33\x52\x66',
28
- '\x4d\x6a\x41\x79\x4e\x41\x3d\x3d', '\x59\x58\x42\x77\x58\x7a\x45\x79'
29
- ];
30
-
31
- // 控制流平坦化的主函数
32
- (function() {
33
- var _0xstate = '0';
34
- var _0xSECRET = '', _0xAPPID = '';
35
- var _0xresult = null;
36
-
37
- while (true) {
38
- switch (_0xstate) {
39
- case '0':
40
- _0xSECRET = atob('anNmb3JnZV90ZXN0XzIwMjQ=');
41
- _0xstate = '1';
42
- break;
43
- case '1':
44
- _0xAPPID = atob('YXBwXzEyMzQ1');
45
- _0xstate = '2';
46
- break;
47
- case '2':
48
- var _0xhash = function(_0xstr) {
49
- var _0xh = 0;
50
- for (var _0xi = 0; _0xi < _0xstr.length; _0xi++) {
51
- _0xh = ((_0xh << 5) - _0xh) + _0xstr.charCodeAt(_0xi);
52
- _0xh = _0xh & _0xh;
53
- }
54
- return Math.abs(_0xh).toString(16);
55
- };
56
- _0xstate = '3';
57
- break;
58
- case '3':
59
- var _0xts = function() { return Math.floor(Date.now() / 1000); };
60
- _0xstate = '4';
61
- break;
62
- case '4':
63
- var _0xrand = function(_0xlen) {
64
- var _0xc = 'abcdef0123456789', _0xr = '';
65
- for (var _0xi = 0; _0xi < _0xlen; _0xi++) {
66
- _0xr += _0xc.charAt(Math.floor(Math.random() * _0xc.length));
67
- }
68
- return _0xr;
69
- };
70
- _0xstate = '5';
71
- break;
72
- case '5':
73
- var _0xgenSign = function(_0xp) {
74
- var _0xt = _0xts(), _0xn = _0xrand(8);
75
- var _0xsStr = _0xAPPID + _0xt + _0xn + _0xSECRET;
76
- return { sign: _0xhash(_0xsStr), timestamp: _0xt, nonce: _0xn, app_id: _0xAPPID };
77
- };
78
- _0xstate = '6';
79
- break;
80
- case '6':
81
- var _0xencrypt = function(_0xd) {
82
- var _0xs = _0xgenSign(_0xd);
83
- return Object.assign({}, _0xd, _0xs, { encrypted: btoa(JSON.stringify(_0xd)) });
84
- };
85
- _0xstate = '7';
86
- break;
87
- case '7':
88
- _0xresult = _0xencrypt({ user: 'test', action: 'login' });
89
- _0xstate = '8';
90
- break;
91
- case '8':
92
- console.log('Result:', _0xresult);
93
- _0xstate = '9';
94
- break;
95
- case '9':
96
- return _0xresult;
97
- }
98
- }
99
- })();
@@ -1,77 +0,0 @@
1
- /**
2
- * v3: JJEncode 颜文字混淆
3
- * 技术: 使用日式颜文字字符进行编码,利用JS类型转换特性
4
- * 特点: 代码看起来像颜文字表情,但实际可执行
5
- */
6
-
7
- // JJEncode 核心解码器
8
- var $ = ~[];
9
- $ = {
10
- ___: ++$,
11
- $$$$: (![]+"")[$],
12
- __$: ++$,
13
- $_$_: (![]+"")[$],
14
- _$_: ++$,
15
- $_$$: ({}+"")[$],
16
- $$_$: ($[$]+"")[$],
17
- _$$: ++$,
18
- $$$_: (!""+"" )[$],
19
- $__: ++$,
20
- $_$: ++$,
21
- $$__: ({}+"")[$],
22
- $$_: ++$,
23
- $$$: ++$,
24
- $___: ++$,
25
- $__$: ++$
26
- };
27
-
28
- $.$_ = ($.$_ = $ + "")[$.$_$] +
29
- ($._$ = $.$_[$.__$]) +
30
- ($.$$ = ($.$ + "")[$.__$]) +
31
- ((!$) + "")[$._$$] +
32
- ($.__ = $.$_[$.$$_]) +
33
- ($.$ = (!"" + "")[$.__$]) +
34
- ($._ = (!"" + "")[$._$_]) +
35
- $.$_[$.$_$] + $.__ + $._$ + $.$;
36
-
37
- $.$$ = $.$ + (!"" + "")[$._$$] + $.__ + $._ + $.$ + $.$$;
38
- $.$ = ($.___)[$.$_][$.$_];
39
-
40
- // 编码后的核心逻辑 - 通过字符拼接构建代码
41
- var _$$ = "constructor";
42
- var __$ = ([][[]] + "")[5] + ([][[]] + "")[1]; // "un" + "d"
43
- var ___ = Function;
44
-
45
- // 构建执行字符串
46
- var encoded = [];
47
- encoded[0] = 118; encoded[1] = 97; encoded[2] = 114; // "var"
48
- encoded[3] = 32; // space
49
- encoded[4] = 83; encoded[5] = 69; encoded[6] = 67; // "SEC"
50
-
51
- // 解码执行
52
- var decode = function(arr) {
53
- return arr.map(function(c) { return String.fromCharCode(c); }).join('');
54
- };
55
-
56
- // 核心代码(编码形式)
57
- var coreCode = [
58
- 99,111,110,115,116,32,83,69,67,82,69,84,95,75,69,89,32,61,32,
59
- 39,106,115,102,111,114,103,101,95,116,101,115,116,95,50,48,50,52,39,59
60
- ];
61
-
62
- var coreCode2 = [
63
- 99,111,110,115,116,32,65,80,80,95,73,68,32,61,32,39,97,112,112,
64
- 95,49,50,51,52,53,39,59
65
- ];
66
-
67
- // 函数体编码
68
- var funcBody = [
69
- 102,117,110,99,116,105,111,110,32,115,105,109,112,108,101,72,97,115,104,40,115,116,114,41,123,
70
- 108,101,116,32,104,61,48,59,102,111,114,40,108,101,116,32,105,61,48,59,105,60,115,116,114,46,
71
- 108,101,110,103,116,104,59,105,43,43,41,123,104,61,40,40,104,60,60,53,41,45,104,41,43,115,116,
72
- 114,46,99,104,97,114,67,111,100,101,65,116,40,105,41,59,104,61,104,38,104,125,114,101,116,117,
73
- 114,110,32,77,97,116,104,46,97,98,115,40,104,41,46,116,111,83,116,114,105,110,103,40,49,54,41,125
74
- ];
75
-
76
- // 执行解码后的代码
77
- ___(decode(coreCode) + decode(coreCode2) + decode(funcBody))();
@@ -1,73 +0,0 @@
1
- /**
2
- * v4: AAEncode 颜文字混淆
3
- * 技术: 使用日式颜文字(゚ω゚)ノ进行编码
4
- * 特点: 全部由颜文字组成,极具迷惑性
5
- */
6
-
7
- ゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_'];
8
- o=(゚ー゚) =_=3;
9
- c=(゚Θ゚) =(゚ー゚)-(゚ー゚);
10
- (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);
11
- (゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] };
12
- (゚Д゚) .゚ー゚ノ=((゚Д゚)+'_') [o^_^o -(゚Θ゚)];
13
- (゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];
14
- (゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];
15
- (o゚ー゚o)=(゚Д゚) ['c']+(゚Д゚) ['o'];
16
- (゚Д゚) ['゚Θ゚']= (゚Д゚) ['c']+(゚Д゚) ['o']+(゚Д゚) ['c'];
17
- (゚Д゚) ['゚ω゚ノ']= (゚Д゚) ['c']+(゚Д゚) ['o']+(゚Д゚) ['c'];
18
- (゚Д゚) [゚Θ゚]= (゚ω゚ノ) [゚Θ゚];
19
- (゚Д゚) ['c']=((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)+(゚Θ゚)];
20
- (゚Д゚) ['o']=((゚Д゚)+'_') [(゚ー゚)];
21
- (゚ー゚)=(゚ー゚)+(゚Θ゚);
22
- (゚Д゚)[゚ー゚]='\\';
23
-
24
- // 简化版AAEncode - 实际可执行的混淆代码
25
- (function() {
26
- var ω = 'constructor';
27
- var Д = []['filter'][ω](ω);
28
- var ゚ = {
29
- ー: 'a]b[c'.split(']')[0],
30
- Θ: (![]+[])[+!![]]
31
- };
32
-
33
- // 核心逻辑的编码表示
34
- var _ωω_ = function(゚ω゚) {
35
- var ゚Д゚ = 0;
36
- for (var ゚Θ゚ = 0; ゚Θ゚ < ゚ω゚.length; ゚Θ゚++) {
37
- var o゚ー゚o = ゚ω゚.charCodeAt(゚Θ゚);
38
- ゚Д゚ = ((゚Д゚ << 5) - ゚Д゚) + o゚ー゚o;
39
- ゚Д゚ = ゚Д゚ & ゚Д゚;
40
- }
41
- return Math.abs(゚Д゚).toString(16);
42
- };
43
-
44
- var _゚ω゚_ = function() {
45
- return Math.floor(Date.now() / 1000);
46
- };
47
-
48
- var _゚Д゚_ = function(゚ー゚) {
49
- var c = 'abcdef0123456789', r = '';
50
- for (var i = 0; i < ゚ー゚; i++) {
51
- r += c.charAt(Math.floor(Math.random() * c.length));
52
- }
53
- return r;
54
- };
55
-
56
- var ゚Θ゚ノ = 'deepspider_test_2024';
57
- var ゚ω゚ノノ = 'app_12345';
58
-
59
- var _genSign_ = function(p) {
60
- var t = _゚ω゚_(), n = _゚Д゚_(8);
61
- var s = ゚ω゚ノノ + t + n + ゚Θ゚ノ;
62
- return { sign: _ωω_(s), timestamp: t, nonce: n, app_id: ゚ω゚ノノ };
63
- };
64
-
65
- var _encrypt_ = function(d) {
66
- var s = _genSign_(d);
67
- return Object.assign({}, d, s, { encrypted: btoa(JSON.stringify(d)) });
68
- };
69
-
70
- var result = _encrypt_({ user: 'test', action: 'login' });
71
- console.log('Result:', result);
72
- return result;
73
- })();
@@ -1,86 +0,0 @@
1
- /**
2
- * v5: 手写控制流平坦化
3
- * 技术: 将线性代码转换为状态机,打乱执行顺序
4
- * 特点: 增加静态分析难度,隐藏真实执行流程
5
- */
6
-
7
- (function() {
8
- var _0x = { s: 'deepspider_test_2024', a: 'app_12345' };
9
- var _state = 0x7a3f;
10
- var _vars = {};
11
- var _result = null;
12
-
13
- while (true) {
14
- switch (_state) {
15
- case 0x7a3f:
16
- _vars.hashFn = function(str) {
17
- var h = 0;
18
- for (var i = 0; i < str.length; i++) {
19
- h = ((h << 5) - h) + str.charCodeAt(i);
20
- h = h & h;
21
- }
22
- return Math.abs(h).toString(16);
23
- };
24
- _state = 0x2b1c;
25
- break;
26
-
27
- case 0x2b1c:
28
- _vars.tsFn = function() {
29
- return Math.floor(Date.now() / 1000);
30
- };
31
- _state = 0x9d4e;
32
- break;
33
-
34
- case 0x9d4e:
35
- _vars.randFn = function(len) {
36
- var c = 'abcdef0123456789', r = '';
37
- for (var i = 0; i < len; i++) {
38
- r += c.charAt(Math.floor(Math.random() * c.length));
39
- }
40
- return r;
41
- };
42
- _state = 0x1f8a;
43
- break;
44
-
45
- case 0x1f8a:
46
- _vars.ts = _vars.tsFn();
47
- _state = 0x5c2d;
48
- break;
49
-
50
- case 0x5c2d:
51
- _vars.nonce = _vars.randFn(8);
52
- _state = 0x8e6b;
53
- break;
54
-
55
- case 0x8e6b:
56
- _vars.signStr = _0x.a + _vars.ts + _vars.nonce + _0x.s;
57
- _state = 0x3a9f;
58
- break;
59
-
60
- case 0x3a9f:
61
- _vars.sign = _vars.hashFn(_vars.signStr);
62
- _state = 0x6d1c;
63
- break;
64
-
65
- case 0x6d1c:
66
- _vars.data = { user: 'test', action: 'login' };
67
- _state = 0x4b8e;
68
- break;
69
-
70
- case 0x4b8e:
71
- _result = Object.assign({}, _vars.data, {
72
- sign: _vars.sign,
73
- timestamp: _vars.ts,
74
- nonce: _vars.nonce,
75
- app_id: _0x.a,
76
- encrypted: btoa(JSON.stringify(_vars.data))
77
- });
78
- _state = 0xf2a3;
79
- break;
80
-
81
- case 0xf2a3:
82
- console.log('Result:', _result);
83
- return _result;
84
- }
85
- }
86
- })();
@@ -1,71 +0,0 @@
1
- /**
2
- * v6: 自定义字符串加密 + 数组混淆
3
- * 技术: XOR加密 + 字符串分割 + 动态解密
4
- * 特点: 字符串在运行时才解密,静态分析无法获取
5
- */
6
-
7
- (function() {
8
- // XOR密钥
9
- var _k = [0x5a, 0x3f, 0x7c, 0x1d, 0x9e, 0x2b, 0x8f, 0x4a];
10
-
11
- // 加密的字符串数组
12
- var _s = [
13
- [0x30,0x56,0x1c,0x76,0xf3,0x4e,0xfc,0x2f,0x74,0x50,0x1a,0x71,0xab,0x55,0xbe,0x68,0x6a],
14
- [0x3b,0x57,0x1f,0x51,0xdb,0x5f,0xe0,0x24,0x75],
15
- [0x3b,0x41,0x1f,0x77,0xf2,0x4f,0xf9,0x68,0x6e,0x50,0x1c,0x71,0xf0],
16
- ];
17
-
18
- // 解密函数
19
- var _d = function(arr) {
20
- var r = '';
21
- for (var i = 0; i < arr.length; i++) {
22
- r += String.fromCharCode(arr[i] ^ _k[i % _k.length]);
23
- }
24
- return r;
25
- };
26
-
27
- // 实际密钥(运行时解密)
28
- var SECRET_KEY = 'deepspider_test_2024';
29
- var APP_ID = 'app_12345';
30
-
31
- // 哈希函数
32
- var _h = function(str) {
33
- var h = 0;
34
- for (var i = 0; i < str.length; i++) {
35
- h = ((h << 5) - h) + str.charCodeAt(i);
36
- h = h & h;
37
- }
38
- return Math.abs(h).toString(16);
39
- };
40
-
41
- // 时间戳
42
- var _t = function() {
43
- return Math.floor(Date.now() / 1000);
44
- };
45
-
46
- // 随机字符串
47
- var _r = function(len) {
48
- var c = 'abcdef0123456789', r = '';
49
- for (var i = 0; i < len; i++) {
50
- r += c.charAt(Math.floor(Math.random() * c.length));
51
- }
52
- return r;
53
- };
54
-
55
- // 签名生成
56
- var _g = function(p) {
57
- var t = _t(), n = _r(8);
58
- var s = APP_ID + t + n + SECRET_KEY;
59
- return { sign: _h(s), timestamp: t, nonce: n, app_id: APP_ID };
60
- };
61
-
62
- // 加密参数
63
- var _e = function(d) {
64
- var s = _g(d);
65
- return Object.assign({}, d, s, { encrypted: btoa(JSON.stringify(d)) });
66
- };
67
-
68
- var result = _e({ user: 'test', action: 'login' });
69
- console.log('Result:', result);
70
- return result;
71
- })();