feat(ctf): enc

This commit is contained in:
Saahil 2024-11-09 21:48:50 -05:00
parent a3e9d7d880
commit 5c9fc12d73
No known key found for this signature in database
GPG key ID: 8A8B64515254CFC6
5 changed files with 911 additions and 8 deletions

1
.gitignore vendored
View file

@ -131,3 +131,4 @@ dist
.direnv
data.json
t.ts
ctf/unenc

1
ctf/notes/0.json Normal file
View file

@ -0,0 +1 @@
g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgw== ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZg== CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQ== dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dg==

34
ctf/update_files.js Normal file
View file

@ -0,0 +1,34 @@
require('dotenv').config()
const StegCloak = require('stegcloak');
const fs = require('fs');
const path = require('path');
function getCloak(s = 2, e = 4) {
return Buffer.alloc(256).fill(eval(`0x${Math.random().toString().split('.')[1].slice(s,e)}`)).toString('base64')
}
const cloak = [
getCloak(),
getCloak(3,5),
getCloak(1,2),
getCloak(),
].join(' ')
const stegcloak = new StegCloak(true, false);
function encrypt(str) {
return stegcloak.hide(str, process.env.CTF_PASSWORD, cloak)
}
function decrypt(str) {
return stegcloak.reveal(str, process.env.CTF_PASSWORD)
}
require('child_process').execSync('rm -rf notes && mkdir notes', { pwd: __dirname });
const files = fs.readdirSync(path.join(__dirname, 'unenc'));
files.forEach((file,i) => {
console.log(`Encrypting ${file}`);
const data = fs.readFileSync(path.join(__dirname, 'unenc', file)).toString();
fs.writeFileSync(path.join(__dirname, 'notes', file), encrypt(data));
if(i == files.length - 1) {
console.log('Done!');
setTimeout(() => {
process.exit(0);
}, 150)
}
});

View file

@ -17,6 +17,7 @@
"node-ical": "^0.20.1",
"simple-json-db": "^2.0.0",
"smee-client": "^2.0.3",
"stegcloak": "^1.1.1",
"ws": "^8.18.0"
},
"devDependencies": {

882
yarn.lock

File diff suppressed because it is too large Load diff