// CYBERTERMHACK BY GZOD01
//START OF CYBERTERMHACK CODE
var inputcomplete = false
function randint(min, max){
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
function stopmatrix(){
document.getElementById('matrixcanvas').remove()
let nc = document.createElement('canvas')
nc.setAttribute('id','matrixcanvas')
nc.style.width = '100%'
nc.style.height ='0%'
document.body.appendChild(nc)
}
function matrix(color){
let tcolor = ''
if(color==='cyan'){
tcolor ='#0ff'
}
else if(color==='blue'){
tcolor='#00f'
}
else if(color==='magenta'){
tcolor='#f0f'
}
else if(color==='red'){
tcolor='#f00'
}
else if(color==='green'){
tcolor='#0f0'
}
else if(color==='yellow'){
tcolor='#ff0'
}
else if(color==='white'){
tcolor='#fff'
}
else if(color==='purple'){
tcolor='#303'
}
var canvas = document.getElementById('matrixcanvas'),
ctx = canvas.getContext('2d');
canvas.style.height = '100%'
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
var letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890&éèçà@æ€ŧøþ@ßðđŋłĸħłµł»¢µ$£ù%^¨';
letters = letters.split('');
var fontSize = 10,
columns = canvas.width / fontSize;
var drops = [];
for (var i = 0; i < columns; i++) {
drops[i] = 1;
}
function draw() {
ctx.fillStyle = 'rgba(0, 0, 0, .1)';
ctx.fillRect(0, 0, canvas.width, canvas.height);
for (var i = 0; i < drops.length; i++) {
var text = letters[Math.floor(Math.random() * letters.length)];
ctx.fillStyle = tcolor;
ctx.fillText(text, i * fontSize, drops[i] * fontSize);
drops[i]++;
if (drops[i] * fontSize > canvas.height && Math.random() > .95) {
drops[i] = 0;
}
}
}
setInterval(draw, 33);
}
function sleep(s) {
let ms = s*1000
return new Promise(resolve => setTimeout(resolve, ms));
}
function randchoice(list){
console.log(list[randint(0,list.length-1)])
return list[randint(0,list.length-1)]
}
//var historic = []
var lastx = ""
function historic(){
// terminpt.value=historic[historic.lengh-1-index]
document.getElementById('terminpt').value = lastx
}
onkeydown = function(e){
if(e.keyCode==9){
autocomplete()
}
}
onkeyup = function(e){
if(e.keyCode==13){
inputcomplete = true
}
else if(e.keyCode == 38){
historic()
}
}
function termshow(str){
let tc = document.getElementById('termcontent')
let nchild = document.createElement('div')
nchild.innerHTML = str.replace('\n','
')
tc.appendChild(nchild)
document.getElementById('termcontent').scrollTo(0,document.getElementById('termcontent').scrollHeight)
}
function terminput(str){
let tiname = document.getElementById('inptname')
tiname.innerHTML = str
let inpt = document.getElementById('terminpt')
if(inputcomplete){
console.log(inpt.value)
inputcomplete=false
let resultat = inpt.value
inpt.value = ''
return resultat
}
else{
return 'ERR'
}
}
var x = ""
function splitaddr(complete, cmd){
try{
let c = complete.substring(cmd.length)
let u = c.split('@')[0]
let a = c.split('@')[1]
if (a==undefined){
termshow('Please complete the command like this: '+cmd+' user@address')
return 'ERROR'
}
else{
return [u, a]
}
}
catch(e){
console.error(e)
termshow('Please complete the command like this: '+cmd+' user@address')
return 'ERROR'
}
}
function infos(){
termshow('01010101010101010
1.CyberTermGame.1
0.....By GZod01.....0
10101010101010101
Infos on the game : Hello my name is GZod01 and i make this game in javascript (base game in python) "for fun", I know this game is not reflecting the reality of the command on linux or windows machines but... it is a game...
Sorry if the english is not very good i speak french...')
}
stopmatrix()
var passwordlist = ["my_password","helloworld","ultra_secure_password","my_birthday"]
var filelist = ['picture.png','personnal_datas.csv', 'helloworld.py','i_hate_hackers.txt','speech_for_tomorrow.md', '.ha_ha_this_is_super_secret_file.txt','mydirectory/']
var connected = false
var datased = false
var STOP = false
infos()
var user = ""
var ip = ""
var password = ""
var destroyedip = []
var codeline = ["fn destroy(oiaf){executeshellcomand('destroy oiaf')}","hack-server()","destroy()","fn hack-server(files){for(var i = 0, i the available colors are : default , yellow , red , blue , green .
execute the command like this: theme default or theme yellow , etc.')
}
else{
let nx = x.substring('theme '.length)
if(nx==='yellow' || nx ==='blue' || nx==='default' || nx ==='red' || nx === 'green'){
gamedatas.colorscheme = nx
gettheme()
}
else{
termshow('Switch the theme with this command,
the available colors are : default , yellow , red , blue , green .
execute the command like this: theme default or theme yellow , etc.')
}
}
}
else if (lowx.startsWith('matrix')){
if(lowx==='matrix'||lowx==='matrix '){
matrix(gamedatas.colorscheme)
}
else{
let nx = x.substring('matrix '.length)
if(nx==='yellow' || nx ==='blue' || nx==='white' || nx ==='red' || nx === 'green'||nx=='purple'|| nx=='cyan' || nx=='magenta'){
matrix(nx)
}
else if(nx==='stop'){
stopmatrix()
}
else{
termshow('Switch the theme with this command,
the available colors are : default , yellow , red , blue , green .
execute the command like this: theme default or theme yellow , etc.')
}
}
}
else if(lowx==='save'){
localStorage.setItem('hackergamedatas',JSON.stringify(gamedatas))
termshow('Data saved')
termshow(localStorage.getItem('hackergamedatas'))
}
else if(lowx==='import'){
let tmpdatas = localStorage.getItem('hackergamedatas')
if (tmpdatas == undefined){
termshow('you don\'t have any data saved, please execute the save command before to import')
}
else{
gamedatas = JSON.parse(tmpdatas)
}
}
else if (lowx=='ls'){
if (connected){
if (ipdatas[ip]['files'] == undefined){
termshow('This is the file on the distant machine')
let fileiplist = []
for(let i=0; i < parseInt(randint(1,10)); i++){
let currentchoicefile = randchoice(filelist)
termshow('-'+currentchoicefile)
fileiplist.push(currentchoicefile)
}
ipdatas[ip]['files'] = fileiplist
}
else{
termshow('This is the file on the distant machine')
for(let i = 0; i- my_datas.zip
- servers_data.zip')
}
else{
termshow('This is the file on your computer:
- my_datas.zip')
}
}
}
else if (lowx=='attack'){
if( connected){
termshow('the attack start...
copying all the data in this server to your servers_data.zip file in your computer (it include all the file, folder etc.)...
breaking the server...
Disconnected: The server is destroy')
connected = false
datased = true
ipdatas[ip]['destroyed'] = true
}
else{
termshow('error you are not connected, please connect to a distant server before executing this command')
}
}
else if( x==='help'){
termshow('The available commands:
- help : print this message
- ls : list the files and folders
- pbk (only in your computer) : Get the password of an user from an ip address
- ssh (only in your computer) : conect to a distant server with an user and an ip address (you have to use pbk to get the password)
- attack (only in ssh servers) : start an attack that will add all the datas on the server in your servers_data.zip file and will destroy the server (warning this will no destroy only the server from the user it will destroy ALL the server (the address))
- theme : switch the theme of the game\n- save : save the game in your localStorage (alternative to cookies)\n- import : import the game from your localStorage\n- matrix : start or stop a matrix rain animation (just for fun...)\n- exit : if you are connected to distant server (ssh) it deconnect you, if you are not connected it exit this game
- infos : display infos on this game')
}
else if (lowx==='exit'){
if (connected){
termshow('disconnecting...')
connected=false
}
else{
termshow('Exiting the session...')
termshow('Exiting the game, thank to play to this game, don\'t hesitate to help me or to give me your feedback')
STOP = true
location = '/'
}
}
else if (lowx==='hack'){
if (connected){
termshow('--Start-of-the-hacking-program--')
for(let i = 0; i