root-access 1.3.38 → 1.3.41
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 +1 -6
- package/dist/bin/cli.js +3 -0
- package/dist/lib/crypto.js +1 -0
- package/dist/lib/index.js +1 -0
- package/dist/lib/keyforge.js +1 -0
- package/dist/lib/network.js +1 -0
- package/dist/lib/vault.js +1 -0
- package/package.json +14 -5
- package/bin/cli.js +0 -469
- package/lib/crypto.js +0 -127
- package/lib/index.js +0 -60
- package/lib/keyforge.js +0 -142
- package/lib/network.js +0 -57
- package/lib/vault.js +0 -78
package/lib/keyforge.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* KeyForge Module - Master Key Generation System
|
|
3
|
-
* The master key must be computed, not guessed!
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
const crypto = require('crypto');
|
|
7
|
-
|
|
8
|
-
// Key components scattered across the system
|
|
9
|
-
const KEY_COMPONENTS = {
|
|
10
|
-
// Component 1: From version number (1.3.37 -> 1337)
|
|
11
|
-
version: () => {
|
|
12
|
-
const v = '1.3.37'.replace(/\./g, '');
|
|
13
|
-
return v; // "1337"
|
|
14
|
-
},
|
|
15
|
-
|
|
16
|
-
// Component 2: From codename hash (first 4 chars)
|
|
17
|
-
codename: () => {
|
|
18
|
-
const hash = crypto.createHash('md5').update('SHADOWGATE').digest('hex');
|
|
19
|
-
return hash.substring(0, 4).toUpperCase(); // First 4 of MD5
|
|
20
|
-
},
|
|
21
|
-
|
|
22
|
-
// Component 3: Hidden in timestamps (Unix epoch hint)
|
|
23
|
-
timestamp: () => {
|
|
24
|
-
// Jan 1, 2024 00:00:00 UTC = 1704067200
|
|
25
|
-
// Sum of digits
|
|
26
|
-
const ts = '1704067200';
|
|
27
|
-
const sum = ts.split('').reduce((a, b) => a + parseInt(b), 0);
|
|
28
|
-
return sum.toString(16).toUpperCase(); // Hex of sum
|
|
29
|
-
},
|
|
30
|
-
|
|
31
|
-
// Component 4: XOR of "ROOT" and "FLAG"
|
|
32
|
-
xorPair: () => {
|
|
33
|
-
const a = 'ROOT';
|
|
34
|
-
const b = 'FLAG';
|
|
35
|
-
let result = '';
|
|
36
|
-
for (let i = 0; i < 4; i++) {
|
|
37
|
-
result += String.fromCharCode(a.charCodeAt(i) ^ b.charCodeAt(i));
|
|
38
|
-
}
|
|
39
|
-
return Buffer.from(result).toString('hex').toUpperCase().substring(0, 4);
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
// Component 5: Prime number sequence (2,3,5,7,11 -> sum = 28 -> hex)
|
|
43
|
-
primes: () => {
|
|
44
|
-
const primes = [2, 3, 5, 7, 11, 13];
|
|
45
|
-
const product = primes.reduce((a, b) => a + b, 0);
|
|
46
|
-
return product.toString(16).toUpperCase(); // "29" in hex
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
// The actual key formula (hidden)
|
|
51
|
-
// KEY = "SHADOW_" + version + "_" + codename + xorPair + "_" + timestamp + primes + "_GATE"
|
|
52
|
-
|
|
53
|
-
class KeyForge {
|
|
54
|
-
constructor() {
|
|
55
|
-
this.components = {};
|
|
56
|
-
this.unlocked = false;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Layer 7: Hint system with riddles
|
|
60
|
-
static getHint(level) {
|
|
61
|
-
const hints = {
|
|
62
|
-
1: "The version speaks in leet... 1.3.37 becomes?",
|
|
63
|
-
2: "MD5 of the codename, first 4 characters",
|
|
64
|
-
3: "2024 began at Unix epoch 1704067200. Sum all digits, convert to hex.",
|
|
65
|
-
4: "XOR 'ROOT' with 'FLAG', take first 4 hex chars",
|
|
66
|
-
5: "First 6 primes sum together, then hex",
|
|
67
|
-
6: "Pattern: SHADOW_{v}_{codename}{xor}_{time}{primes}_GATE",
|
|
68
|
-
master: "Combine all components in the sacred pattern..."
|
|
69
|
-
};
|
|
70
|
-
return hints[level] || "Unknown hint level";
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Compute a single component
|
|
74
|
-
static computeComponent(name) {
|
|
75
|
-
if (KEY_COMPONENTS[name]) {
|
|
76
|
-
return KEY_COMPONENTS[name]();
|
|
77
|
-
}
|
|
78
|
-
return null;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Verify if a key is correct
|
|
82
|
-
static verifyKey(inputKey) {
|
|
83
|
-
const correctKey = KeyForge.generateMasterKey();
|
|
84
|
-
return inputKey === correctKey;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Generate the master key (called internally)
|
|
88
|
-
static generateMasterKey() {
|
|
89
|
-
const v = KEY_COMPONENTS.version();
|
|
90
|
-
const c = KEY_COMPONENTS.codename();
|
|
91
|
-
const x = KEY_COMPONENTS.xorPair();
|
|
92
|
-
const t = KEY_COMPONENTS.timestamp();
|
|
93
|
-
const p = KEY_COMPONENTS.primes();
|
|
94
|
-
|
|
95
|
-
// SHADOW_1337_F080161C_1B29_GATE
|
|
96
|
-
return `SHADOW_${v}_${c}${x}_${t}${p}_GATE`;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// Interactive key builder (for CLI)
|
|
100
|
-
static showKeyBuilder() {
|
|
101
|
-
console.log('\n\x1b[36m╔════════════════════════════════════════╗\x1b[0m');
|
|
102
|
-
console.log('\x1b[36m║ KEY FORGE - Component Lab ║\x1b[0m');
|
|
103
|
-
console.log('\x1b[36m╚════════════════════════════════════════╝\x1b[0m\n');
|
|
104
|
-
|
|
105
|
-
console.log('The Master Key is forged from 5 components:\n');
|
|
106
|
-
console.log(' [1] VERSION - Derived from version number');
|
|
107
|
-
console.log(' [2] CODENAME - Hash of the codename');
|
|
108
|
-
console.log(' [3] TIMESTAMP - Epoch calculation');
|
|
109
|
-
console.log(' [4] XOR_PAIR - Binary operation result');
|
|
110
|
-
console.log(' [5] PRIMES - Mathematical sequence\n');
|
|
111
|
-
|
|
112
|
-
console.log('\x1b[33mUse: rootaccess forge --component=<name>\x1b[0m');
|
|
113
|
-
console.log('\x1b[33mOr: rootaccess forge --hint=<1-6>\x1b[0m\n');
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// Riddle-based component revelation
|
|
117
|
-
static solveRiddle(answer) {
|
|
118
|
-
const riddles = {
|
|
119
|
-
'leet': { component: 'version', answer: '1337' },
|
|
120
|
-
'1337': { component: 'version', answer: '1337' },
|
|
121
|
-
'md5': { component: 'codename', answer: KEY_COMPONENTS.codename() },
|
|
122
|
-
'epoch': { component: 'timestamp', answer: KEY_COMPONENTS.timestamp() },
|
|
123
|
-
'xor': { component: 'xorPair', answer: KEY_COMPONENTS.xorPair() },
|
|
124
|
-
'prime': { component: 'primes', answer: KEY_COMPONENTS.primes() },
|
|
125
|
-
'primes': { component: 'primes', answer: KEY_COMPONENTS.primes() },
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
const lower = answer.toLowerCase();
|
|
129
|
-
if (riddles[lower]) {
|
|
130
|
-
return riddles[lower];
|
|
131
|
-
}
|
|
132
|
-
return null;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// Export with some hidden data for reverse engineering
|
|
137
|
-
module.exports = {
|
|
138
|
-
KeyForge,
|
|
139
|
-
// Hidden hints in exports
|
|
140
|
-
_pattern: 'SHADOW_{?}_{??}_{{??}}_GATE',
|
|
141
|
-
_components: Object.keys(KEY_COMPONENTS)
|
|
142
|
-
};
|
package/lib/network.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Network Simulation Module
|
|
3
|
-
* Contains hints for Layer 4
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
// Server list with hidden data
|
|
7
|
-
const SERVERS = {
|
|
8
|
-
'alpha': { status: 'deprecated', port: 8080 },
|
|
9
|
-
'beta': { status: 'offline', port: 8081 },
|
|
10
|
-
'gamma': { status: 'maintenance', port: 8082 },
|
|
11
|
-
// Hidden server
|
|
12
|
-
'omega-7': {
|
|
13
|
-
status: 'classified',
|
|
14
|
-
port: 1337,
|
|
15
|
-
access: 'restricted',
|
|
16
|
-
_data: 'Fragment 4 unlocked via this server'
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
// Encoded connection strings
|
|
21
|
-
const CONNECTION_HINTS = {
|
|
22
|
-
primary: 'b21lZ2EtNw==', // omega-7
|
|
23
|
-
secondary: 'U0hBRE9XR0FURV9VTkxPQ0tfMjAyNA==' // SHADOWGATE_UNLOCK_2024
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
class NetworkSim {
|
|
27
|
-
constructor() {
|
|
28
|
-
this.connected = false;
|
|
29
|
-
this.currentServer = null;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
listServers() {
|
|
33
|
-
return Object.keys(SERVERS).filter(s => !s.startsWith('omega'));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
connect(serverName) {
|
|
37
|
-
const server = SERVERS[serverName];
|
|
38
|
-
if (server) {
|
|
39
|
-
this.connected = true;
|
|
40
|
-
this.currentServer = serverName;
|
|
41
|
-
return { success: true, server };
|
|
42
|
-
}
|
|
43
|
-
return { success: false, error: 'Server not found' };
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Hidden method for reverse engineering
|
|
47
|
-
static getHints() {
|
|
48
|
-
return CONNECTION_HINTS;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Exported with hidden data accessible via inspection
|
|
53
|
-
module.exports = {
|
|
54
|
-
NetworkSim,
|
|
55
|
-
SERVERS,
|
|
56
|
-
_hints: CONNECTION_HINTS
|
|
57
|
-
};
|
package/lib/vault.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Data Vault - Secure storage simulation
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
const { CryptoEngine } = require('./crypto.js');
|
|
6
|
-
|
|
7
|
-
// Hidden data in vault
|
|
8
|
-
const REGISTRY_DATA = {
|
|
9
|
-
system: { type: 'config', value: 'default' },
|
|
10
|
-
user: { type: 'config', value: 'guest' },
|
|
11
|
-
// Hidden entry
|
|
12
|
-
_shadow: {
|
|
13
|
-
type: 'encrypted',
|
|
14
|
-
value: 'Vm05aGIyeDBZV3hsTFRjPQ==', // Double base64
|
|
15
|
-
hint: 'base64 x2'
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
// Anomaly data for deep scan
|
|
20
|
-
const ANOMALY_DATA = 'RnJhZ21lbnQgMzogcm9vdGFjY2VzcyBzY2FuIC0tdWx0cmE=';
|
|
21
|
-
|
|
22
|
-
class DataVault {
|
|
23
|
-
constructor() {
|
|
24
|
-
this.locked = true;
|
|
25
|
-
this.accessLevel = 0;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
analyzeRegistry() {
|
|
29
|
-
// Returns hint for Layer 3
|
|
30
|
-
return Buffer.from(ANOMALY_DATA, 'base64').toString();
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
unlock(key) {
|
|
34
|
-
if (key === 'SHADOWGATE_VAULT_KEY') {
|
|
35
|
-
this.locked = false;
|
|
36
|
-
this.accessLevel = 10;
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
assembleFlag() {
|
|
43
|
-
console.log('\x1b[36m[*] Assembling fragments...\x1b[0m\n');
|
|
44
|
-
|
|
45
|
-
const fragments = [];
|
|
46
|
-
const totalFragments = CryptoEngine.getTotalFragments();
|
|
47
|
-
|
|
48
|
-
for (let i = 1; i <= totalFragments; i++) {
|
|
49
|
-
const frag = CryptoEngine.getFragment(i);
|
|
50
|
-
fragments.push(frag);
|
|
51
|
-
console.log(` Fragment ${i.toString().padStart(2, '0')}: ${frag}`);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const flag = fragments.join('');
|
|
55
|
-
console.log('\n' + '═'.repeat(60));
|
|
56
|
-
console.log(`\x1b[32m[✓] FLAG: ${flag}\x1b[0m`);
|
|
57
|
-
console.log('═'.repeat(60));
|
|
58
|
-
|
|
59
|
-
// Verify using hash
|
|
60
|
-
const crypto = require('crypto');
|
|
61
|
-
const hash = crypto.createHash('sha256').update(flag).digest('hex');
|
|
62
|
-
|
|
63
|
-
if (flag.startsWith('root{') && flag.endsWith('}')) {
|
|
64
|
-
console.log('\n\x1b[32m[✓] Flag verified successfully!\x1b[0m');
|
|
65
|
-
console.log(`\x1b[90m[*] SHA256: ${hash}\x1b[0m`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Hidden method
|
|
70
|
-
getSecretEntry() {
|
|
71
|
-
const double = REGISTRY_DATA._shadow.value;
|
|
72
|
-
const first = Buffer.from(double, 'base64').toString();
|
|
73
|
-
const second = Buffer.from(first, 'base64').toString();
|
|
74
|
-
return second; // "omega-7"
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
module.exports = { DataVault, REGISTRY_DATA };
|