From f96d04b55b70168274bfb70e34252af224fe48c7 Mon Sep 17 00:00:00 2001 From: Sean <83432253+MegaTheLEGEND@users.noreply.github.com> Date: Fri, 2 Feb 2024 16:58:19 -0800 Subject: [PATCH] asasddasdasdasdasdd --- .../gfiles/html5/bible-Typer/.gitignore | 1 + .../gfiles/html5/bible-Typer/LICENSE | 21 + .../gfiles/html5/bible-Typer/README.md | 5 + .../gfiles/html5/bible-Typer/index.html | 28 + .../gfiles/html5/bible-Typer/kernel.txt | 531 ++++++++++++ .../gfiles/html5/bible-Typer/script.js | 113 +++ .../gfiles/html5/bible-Typer/style.css | 63 ++ .../gfiles/html5/my-mc-server/index.html | 820 ------------------ FZ2.3-dev/File-Z-master/list.html | 3 +- 9 files changed, 764 insertions(+), 821 deletions(-) create mode 100644 FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/.gitignore create mode 100644 FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/LICENSE create mode 100644 FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/README.md create mode 100644 FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/index.html create mode 100644 FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/kernel.txt create mode 100644 FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/script.js create mode 100644 FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/style.css delete mode 100644 FZ2.3-dev/File-Z-master/gfiles/html5/my-mc-server/index.html diff --git a/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/.gitignore b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/.gitignore new file mode 100644 index 0000000..62c8935 --- /dev/null +++ b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/.gitignore @@ -0,0 +1 @@ +.idea/ \ No newline at end of file diff --git a/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/LICENSE b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/LICENSE new file mode 100644 index 0000000..a3f6bd9 --- /dev/null +++ b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Simone Masiero + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/README.md b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/README.md new file mode 100644 index 0000000..6c92f04 --- /dev/null +++ b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/README.md @@ -0,0 +1,5 @@ +## HackerTyper + +[hackertyper.net](https://hackertyper.net) is the original HackerTyper that was created back in 2011 as a fun little project. + +Contributions are welcome but I am looking more at maintaining the project as a token more than improving on it(even if a lot of improvements could be made) diff --git a/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/index.html b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/index.html new file mode 100644 index 0000000..aa02920 --- /dev/null +++ b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/index.html @@ -0,0 +1,28 @@ + + + + + + + + Hacker Typer + + + + +
+ + + + + diff --git a/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/kernel.txt b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/kernel.txt new file mode 100644 index 0000000..b92fcdf --- /dev/null +++ b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/kernel.txt @@ -0,0 +1,531 @@ +struct group_info init_groups = { .usage = ATOMIC_INIT(2) }; + +struct group_info *groups_alloc(int gidsetsize){ + + struct group_info *group_info; + + int nblocks; + + int i; + + + + nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK; + + /* Make sure we always allocate at least one indirect block pointer */ + + nblocks = nblocks ? : 1; + + group_info = kmalloc(sizeof(*group_info) + nblocks*sizeof(gid_t *), GFP_USER); + + if (!group_info) + + return NULL; + + group_info->ngroups = gidsetsize; + + group_info->nblocks = nblocks; + + atomic_set(&group_info->usage, 1); + + + + if (gidsetsize <= NGROUPS_SMALL) + + group_info->blocks[0] = group_info->small_block; + + else { + + for (i = 0; i < nblocks; i++) { + + gid_t *b; + + b = (void *)__get_free_page(GFP_USER); + + if (!b) + + goto out_undo_partial_alloc; + + group_info->blocks[i] = b; + + } + + } + + return group_info; + + + +out_undo_partial_alloc: + + while (--i >= 0) { + + free_page((unsigned long)group_info->blocks[i]); + + } + + kfree(group_info); + + return NULL; + +} + + + +EXPORT_SYMBOL(groups_alloc); + + + +void groups_free(struct group_info *group_info) + +{ + + if (group_info->blocks[0] != group_info->small_block) { + + int i; + + for (i = 0; i < group_info->nblocks; i++) + + free_page((unsigned long)group_info->blocks[i]); + + } + + kfree(group_info); + +} + + + +EXPORT_SYMBOL(groups_free); + + + +/* export the group_info to a user-space array */ + +static int groups_to_user(gid_t __user *grouplist, + + const struct group_info *group_info) + +{ + + int i; + + unsigned int count = group_info->ngroups; + + + + for (i = 0; i < group_info->nblocks; i++) { + + unsigned int cp_count = min(NGROUPS_PER_BLOCK, count); + + unsigned int len = cp_count * sizeof(*grouplist); + + + + if (copy_to_user(grouplist, group_info->blocks[i], len)) + + return -EFAULT; + + + + grouplist += NGROUPS_PER_BLOCK; + + count -= cp_count; + + } + + return 0; + +} + + + +/* fill a group_info from a user-space array - it must be allocated already */ + +static int groups_from_user(struct group_info *group_info, + + gid_t __user *grouplist) + +{ + + int i; + + unsigned int count = group_info->ngroups; + + + + for (i = 0; i < group_info->nblocks; i++) { + + unsigned int cp_count = min(NGROUPS_PER_BLOCK, count); + + unsigned int len = cp_count * sizeof(*grouplist); + + + + if (copy_from_user(group_info->blocks[i], grouplist, len)) + + return -EFAULT; + + + + grouplist += NGROUPS_PER_BLOCK; + + count -= cp_count; + + } + + return 0; + +} + + + +/* a simple Shell sort */ + +static void groups_sort(struct group_info *group_info) + +{ + + int base, max, stride; + + int gidsetsize = group_info->ngroups; + + + + for (stride = 1; stride < gidsetsize; stride = 3 * stride + 1) + + ; /* nothing */ + + stride /= 3; + + + + while (stride) { + + max = gidsetsize - stride; + + for (base = 0; base < max; base++) { + + int left = base; + + int right = left + stride; + + gid_t tmp = GROUP_AT(group_info, right); + + + + while (left >= 0 && GROUP_AT(group_info, left) > tmp) { + + GROUP_AT(group_info, right) = + + GROUP_AT(group_info, left); + + right = left; + + left -= stride; + + } + + GROUP_AT(group_info, right) = tmp; + + } + + stride /= 3; + + } + +} + + + +/* a simple bsearch */ + +int groups_search(const struct group_info *group_info, gid_t grp) + +{ + + unsigned int left, right; + + + + if (!group_info) + + return 0; + + + + left = 0; + + right = group_info->ngroups; + + while (left < right) { + + unsigned int mid = left + (right - left)/2; + + if (grp > GROUP_AT(group_info, mid)) + + left = mid + 1; + + else if (grp < GROUP_AT(group_info, mid)) + + right = mid; + + else + + return 1; + + } + + return 0; + +} + + + +/** + + * set_groups - Change a group subscription in a set of credentials + + * @new: The newly prepared set of credentials to alter + + * @group_info: The group list to install + + * + + * Validate a group subscription and, if valid, insert it into a set + + * of credentials. + + */ + +int set_groups(struct cred *new, struct group_info *group_info) + +{ + + put_group_info(new->group_info); + + groups_sort(group_info); + + get_group_info(group_info); + + new->group_info = group_info; + + return 0; + +} + + + +EXPORT_SYMBOL(set_groups); + + + +/** + + * set_current_groups - Change current's group subscription + + * @group_info: The group list to impose + + * + + * Validate a group subscription and, if valid, impose it upon current's task + + * security record. + + */ + +int set_current_groups(struct group_info *group_info) + +{ + + struct cred *new; + + int ret; + + + + new = prepare_creds(); + + if (!new) + + return -ENOMEM; + + + + ret = set_groups(new, group_info); + + if (ret < 0) { + + abort_creds(new); + + return ret; + + } + + + + return commit_creds(new); + +} + + + +EXPORT_SYMBOL(set_current_groups); + + + +SYSCALL_DEFINE2(getgroups, int, gidsetsize, gid_t __user *, grouplist) + +{ + + const struct cred *cred = current_cred(); + + int i; + + + + if (gidsetsize < 0) + + return -EINVAL; + + + + /* no need to grab task_lock here; it cannot change */ + + i = cred->group_info->ngroups; + + if (gidsetsize) { + + if (i > gidsetsize) { + + i = -EINVAL; + + goto out; + + } + + if (groups_to_user(grouplist, cred->group_info)) { + + i = -EFAULT; + + goto out; + + } + + } + +out: + + return i; + +} + + + +/* + + * SMP: Our groups are copy-on-write. We can set them safely + + * without another task interfering. + + */ + + + +SYSCALL_DEFINE2(setgroups, int, gidsetsize, gid_t __user *, grouplist) + +{ + + struct group_info *group_info; + + int retval; + + + + if (!nsown_capable(CAP_SETGID)) + + return -EPERM; + + if ((unsigned)gidsetsize > NGROUPS_MAX) + + return -EINVAL; + + + + group_info = groups_alloc(gidsetsize); + + if (!group_info) + + return -ENOMEM; + + retval = groups_from_user(group_info, grouplist); + + if (retval) { + + put_group_info(group_info); + + return retval; + + } + + + + retval = set_current_groups(group_info); + + put_group_info(group_info); + + + + return retval; + +} + + + +/* + + * Check whether we're fsgid/egid or in the supplemental group.. + + */ + +int in_group_p(gid_t grp) + +{ + + const struct cred *cred = current_cred(); + + int retval = 1; + + + + if (grp != cred->fsgid) + + retval = groups_search(cred->group_info, grp); + + return retval; + +} + + + +EXPORT_SYMBOL(in_group_p); + + + +int in_egroup_p(gid_t grp) + +{ + + const struct cred *cred = current_cred(); + + int retval = 1; + + + + if (grp != cred->egid) + + retval = groups_search(cred->group_info, grp); + + return retval; + +} diff --git a/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/script.js b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/script.js new file mode 100644 index 0000000..3ac1747 --- /dev/null +++ b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/script.js @@ -0,0 +1,113 @@ +/* +*(c) Copyright 2011 Simone Masiero. Some Rights Reserved. +*This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License +*/ + +$( + function(){ + $( document ).keydown( + function ( event ) { + Typer.addText( event ); //Capture the keydown event and call the addText, this is executed on page load + } + ); + } +); + +var Typer={ + text: null, + accessCountimer:null, + index:0, // current cursor position + speed:2, // speed of the Typer + file:"", //file, must be set + accessCount:0, //times alt is pressed for Access Granted + deniedCount:0, //times caps is pressed for Access Denied + init: function(){// initialize Hacker Typer + this.accessCountimer=setInterval(function(){Typer.updLstChr();},500); // initialize timer for blinking cursor + $.get(Typer.file,function(data){// get the text file + Typer.text=data;// save the textfile in Typer.text + }); + }, + + content:function(){ + return $("#console").html();// get console content + }, + + write:function(str){// append to console content + $("#console").append(str); + return false; + }, + + makeAccess:function(){//create Access Granted popUp + Typer.hidepop(); // hide all popups + Typer.accessCount=0; //reset count + var ddiv=$("
").html(""); // create new blank div and id "gran" + ddiv.addClass("accessGranted"); // add class to the div + ddiv.html("

ACCESS GRANTED

"); // set content of div + $(document.body).prepend(ddiv); // prepend div to body + return false; + }, + makeDenied:function(){//create Access Denied popUp + Typer.hidepop(); // hide all popups + Typer.deniedCount=0; //reset count + var ddiv=$("
").html(""); // create new blank div and id "deni" + ddiv.addClass("accessDenied");// add class to the div + ddiv.html("

ACCESS DENIED

");// set content of div + $(document.body).prepend(ddiv);// prepend div to body + return false; + }, + + hidepop:function(){// remove all existing popups + $("#deni").remove(); + $("#gran").remove(); + Typer.accessCount=0; //reset access granted count + Typer.deniedCount=0; //reset access denied count + }, + + addText:function(key){//Main function to add the code + var console=$("#console") + if(key.key==='Alt'){// key 18 = alt key + Typer.accessCount++; //increase counter + if(Typer.accessCount>=3){// if it's pressed 3 times + Typer.makeAccess(); // make access popup + } + }else if(key.key==='CapsLock'){// key 20 = caps lock + Typer.deniedCount++; // increase counter + if(Typer.deniedCount>=3){ // if it's pressed 3 times + Typer.makeDenied(); // make denied popup + } + }else if(key.key==='Esc' || key.key==='Escape'){ // key 27 = esc key + Typer.hidepop(); // hide all popups + }else if(Typer.text){ // otherwise if text is loaded + var cont=Typer.content(); // get the console content + if(cont.substring(cont.length-1,cont.length)==="|") // if the last char is the blinking cursor + console.html(console.html().substring(0,cont.length-1)); // remove it before adding the text + if(key.key!=='Backspace'){ // if key is not backspace + Typer.index+=Typer.speed; // add to the index the speed + }else{ + if(Typer.index>0) // else if index is not less than 0 + Typer.index-=Typer.speed;// remove speed for deleting text + } + var text=$("
").text(Typer.text.substring(0,Typer.index)).html();// parse the text for stripping html entities + var rtn= new RegExp("\n", "g"); // newline regex + var rts= new RegExp("\\s", "g"); // whitespace regex + var rtt= new RegExp("\\t", "g"); // tab regex + console.html(text.replace(rtn,"
").replace(rtt,"    ").replace(rts," "));// replace newline chars with br, tabs with 4 space and blanks with an html blank + window.scrollBy(0,50); // scroll to make sure bottom is always visible + } + if ( key.preventDefault && key.key !== 'F11' ) { // prevent F11(fullscreen) from being blocked + key.preventDefault() + } + if(key.key !== 'F11'){ // otherwise prevent keys default behavior + key.returnValue = false; + } + }, + + updLstChr:function(){ // blinking cursor + var console=$("#console") + var cont=this.content(); // get console + if(cont.substring(cont.length-1,cont.length)==="|") // if last char is the cursor + console.html(console.html().substring(0,cont.length-1)); // remove it + else + this.write("|"); // else write it + } +} diff --git a/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/style.css b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/style.css new file mode 100644 index 0000000..4871fd0 --- /dev/null +++ b/FZ2.3-dev/File-Z-master/gfiles/html5/bible-Typer/style.css @@ -0,0 +1,63 @@ +@import url('https://fonts.googleapis.com/css2?family=EB+Garamond&display=swap'); + +body { + background: #fff0dd; + color: black; + font-family: 'EB Garamond', serif; + line-height: 1.6; + margin: 20px; + text-align: center; + font-size: 35px; /* Adjust the font size as needed */ +} + +/* Add additional styles to mimic a Bible-like feel */ +div { + text-indent: 20px; + display: inline-block; +} + +/* +.accessGranted { + position: fixed; + top: 200px; + background: #333; + padding: 20px; + border: 1px solid #999; + width: 300px; + left: 50%; + margin-left: -150px; + text-align: center; +} + +.accessDenied { + position: fixed; + top: 200px; + color: #f00; + background: #511; + padding: 20px; + border: 1px solid #f00; + width: 300px; + left: 50%; + margin-left: -150px; + text-align: center; +} +*/ + +::-webkit-scrollbar { + width: 10px; +} + +/* Track */ +::-webkit-scrollbar-track { + background: #000000; +} + +/* Handle */ +::-webkit-scrollbar-thumb { + background: #000000; +} + +/* Handle on hover */ +::-webkit-scrollbar-thumb:hover { + background: #000000; +} \ No newline at end of file diff --git a/FZ2.3-dev/File-Z-master/gfiles/html5/my-mc-server/index.html b/FZ2.3-dev/File-Z-master/gfiles/html5/my-mc-server/index.html deleted file mode 100644 index 9ab3f5b..0000000 --- a/FZ2.3-dev/File-Z-master/gfiles/html5/my-mc-server/index.html +++ /dev/null @@ -1,820 +0,0 @@ - - - - - Protected Page - - - - - - - - - - - - - -
-
-
- - - - - - diff --git a/FZ2.3-dev/File-Z-master/list.html b/FZ2.3-dev/File-Z-master/list.html index 32e7b61..579ebf9 100644 --- a/FZ2.3-dev/File-Z-master/list.html +++ b/FZ2.3-dev/File-Z-master/list.html @@ -33,6 +33,7 @@

HTML5 Games

Bounce Back Breaklock Breakout +Bible Typer Captain Callisto Chess Chroma Incident @@ -63,6 +64,7 @@

HTML5 Games

Pac-Man Particle Clicker Push Back +Pong thing Q1k3 Racer Radius Raid @@ -344,7 +346,6 @@

Experimental

Off Topic

ퟨퟡퟡퟘퟖퟘퟦퟦퟔퟥퟬ ퟿ퟧퟢퟢퟟ Rube-goldberg mess -Pong thing chat IP Lookup Waver: data over sound