Repository files navigation

Abstract. The EPOCH protocol is based on the XS_ACE ‘Arbitrary Code Execution’ subsystem of TF Protocol, in fact, is a subset of XS_ACE (see TF Protocol documentation for further reading). The idea behind EPOCH is to provide an abstraction layer for communication and encryption allowing the construction of functionalities or commands ‘Called endpoints in EPOCH’ on top of it. Those endpoints are programs that can be written in any interpreted or JIT language, such Python or Java; or any AOT language like C, C++, Pascal, and so on. As far as concern to the ‘endpoint’, this is, the program running on top of EPOCH, only matters reading from standard input and writing to the standard output.

Just wanna use it! C example. (May be you need to install openssl libs)

git clone https://github.com/lmdelbahia/epoch.git
cd epoch
make clean; make
sudo make install
cd client_side/c (done)/api/
make clean; make
sudo make install
Run the server
epoch /etc/epoch 55001 x
Create a test program
nano main.c
Paste this into main.c
/* This program is an example of how to use the EPOCH client api. */

#include <stdio.h> #include <stdlib.h> #include <epoch.h> #include <string.h> #include <signal.h>

char bf[1000]; int pos = 0;

/* Receive callback. */ void rcv_callback(void *buf, int64_t len) {
if (len) { memcpy(bf + pos, buf, len); pos += len; } }

/* Send callback. */ void snd_callback(void *buf, int64_t *len) { static int i = 0; if (i < 10) { sprintf(buf, "%s%d\n", "Send something ", i); *len = strlen((char *) buf) + 1; i++; } else *len = 0; }

int main(void) { /* For EPOCH client usage, see EPOCH API documentation. / int rc; char ip[16]; / Resolv ip from host. / rc = resolvhn("google.com", ip, 0, 4); printf("%d %s\n", rc, ip); / Initialize the EPOCH structure./ struct epoch_s e = { "127.0.0.1", "", 55001, "sessionkey", 10, "", 0, 3}; / Server public key. PEM Format. / char pubkey[] = "-----BEGIN PUBLIC KEY-----\n" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq2K/X7ZSKlrMBIrSY9G/\n" "LLB+0injPCX17U7vb8XedQbjBT2AJ+qxmT4VLR1EWnvdUdvxaX9kRahI4hlSnfWl\n" "IddPfJRPH97Rk0OlMEQBclhD4WL88T8o4lVu0nuo8UAjqY0As6g6ZCG1s/Wfr64N\n" "aSvFr8NAYIaTQ6PbKxiypTythsSAkp5eAMkaje/ZAhkY1h0zMz09eg17veED8dIb\n" "R5sc7j05ndDOGucqY4+u9F/CZQNyOysKcFYjtYz/pStBPYY8CcU82SwW0Y2tbzy2\n" "j30ADzroySlQw+VjcffrGJao9qea1GWGwGMv4d4baMxrZeid2uB7NMUdljW8owWa\n" "VwIDAQAB\n" "-----END PUBLIC KEY-----\n"; e.pubkey = pubkey; / Run an endpoint. /
int es = 0; rc = epoch_endpoint(&e, "/bin/ls -la", "hash_authority", MULTI_THREAD, 3000, snd_callback, rcv_callback, NULL, &es); /
Print the endpoint output. / printf("%s\n", bf); / Print the epoch_endpoint return value. / printf("%d\n", rc); / Print the endpoint -Program executed at the server- exit status. */ printf("%d\n", WEXITSTATUS(es)); return 0; }

Save main.c and close it.
gcc -o epoch_test main.c -lepoch
Run the program and see the result.
./epoch_test

What does this program do?

-Connect to the server through EPOCH Protocol.
-Execute remotely the ls command.
-Receive the ls output.
-Print that output

For further complex programs, please read the docs. It doen't bite you!

You can find in the folders the server written in C and many clientes written in different languages.

To run server in debug mode execute it like this debug/epoch ./conf 55001

The first parameter indicates the folder of the server private key and the authority file. -The private server key is in PEM format. This is a file called "key" without the double quotes in the folder indicated by the first parameter. -The authority file is a list of programs and paramters that can be run from EPOCH Protocol. The exact authority file among all of them is specified by the client side.

The second parameter indicate the port in which the server will listen for incomming connections.

To run server in production mode execute it like this release/epoch ./conf/ 55001 x

The first two parameters are the same as in the debug mode. The third parameter could be any number or letter or string. The fact that there is a third parameter is what tells the server that it has to be run in production mode.

To stop the server it can be used the kill or pkill command sending the SIGINT signal.

Is not recomended to run the server as root user due it can execute programs 'endpoints' that potentially may harm the system. If is needed to run it as other user, it can be executed from a shell that sets the desired effective user id or by any other means.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Abstract. The EPOCH protocol is based on the XS_ACE ‘Arbitrary Code Execution’ subsystem of TF Protocol, in fact, is a subset of XS_ACE (see TF Protocol documentation for further reading). The idea behind EPOCH is to provide an abstraction layer for communication and encryption allowing the construction of functionalities or commands ‘Called endpoints in EPOCH’ on top of it. Those endpoints are programs that can be written in any interpreted or JIT language, such Python or Java; or any AOT language like C, C++, Pascal, and so on. As far as concern to the ‘endpoint’, this is, the program running on top of EPOCH, only matters reading from standard input and writing to the standard output.

Just wanna use it! C example. (May be you need to install openssl libs)

git clone https://github.com/lmdelbahia/epoch.git
cd epoch
make clean; make
sudo make install
cd client_side/c (done)/api/
make clean; make
sudo make install
Run the server
epoch /etc/epoch 55001 x
Create a test program
nano main.c
Paste this into main.c
/* This program is an example of how to use the EPOCH client api. */

#include <stdio.h> #include <stdlib.h> #include <epoch.h> #include <string.h> #include <signal.h>

char bf[1000]; int pos = 0;

/* Receive callback. */ void rcv_callback(void *buf, int64_t len) {
if (len) { memcpy(bf + pos, buf, len); pos += len; } }

/* Send callback. */ void snd_callback(void *buf, int64_t *len) { static int i = 0; if (i < 10) { sprintf(buf, "%s%d\n", "Send something ", i); *len = strlen((char *) buf) + 1; i++; } else *len = 0; }

int main(void) { /* For EPOCH client usage, see EPOCH API documentation. / int rc; char ip[16]; / Resolv ip from host. / rc = resolvhn("google.com", ip, 0, 4); printf("%d %s\n", rc, ip); / Initialize the EPOCH structure./ struct epoch_s e = { "127.0.0.1", "", 55001, "sessionkey", 10, "", 0, 3}; / Server public key. PEM Format. / char pubkey[] = "-----BEGIN PUBLIC KEY-----\n" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq2K/X7ZSKlrMBIrSY9G/\n" "LLB+0injPCX17U7vb8XedQbjBT2AJ+qxmT4VLR1EWnvdUdvxaX9kRahI4hlSnfWl\n" "IddPfJRPH97Rk0OlMEQBclhD4WL88T8o4lVu0nuo8UAjqY0As6g6ZCG1s/Wfr64N\n" "aSvFr8NAYIaTQ6PbKxiypTythsSAkp5eAMkaje/ZAhkY1h0zMz09eg17veED8dIb\n" "R5sc7j05ndDOGucqY4+u9F/CZQNyOysKcFYjtYz/pStBPYY8CcU82SwW0Y2tbzy2\n" "j30ADzroySlQw+VjcffrGJao9qea1GWGwGMv4d4baMxrZeid2uB7NMUdljW8owWa\n" "VwIDAQAB\n" "-----END PUBLIC KEY-----\n"; e.pubkey = pubkey; / Run an endpoint. /
int es = 0; rc = epoch_endpoint(&e, "/bin/ls -la", "hash_authority", MULTI_THREAD, 3000, snd_callback, rcv_callback, NULL, &es); /
Print the endpoint output. / printf("%s\n", bf); / Print the epoch_endpoint return value. / printf("%d\n", rc); / Print the endpoint -Program executed at the server- exit status. */ printf("%d\n", WEXITSTATUS(es)); return 0; }

Save main.c and close it.
gcc -o epoch_test main.c -lepoch
Run the program and see the result.
./epoch_test

What does this program do?

-Connect to the server through EPOCH Protocol.
-Execute remotely the ls command.
-Receive the ls output.
-Print that output

For further complex programs, please read the docs. It doen't bite you!

You can find in the folders the server written in C and many clientes written in different languages.

To run server in debug mode execute it like this debug/epoch ./conf 55001

The first parameter indicates the folder of the server private key and the authority file. -The private server key is in PEM format. This is a file called "key" without the double quotes in the folder indicated by the first parameter. -The authority file is a list of programs and paramters that can be run from EPOCH Protocol. The exact authority file among all of them is specified by the client side.

The second parameter indicate the port in which the server will listen for incomming connections.

To run server in production mode execute it like this release/epoch ./conf/ 55001 x

The first two parameters are the same as in the debug mode. The third parameter could be any number or letter or string. The fact that there is a third parameter is what tells the server that it has to be run in production mode.

To stop the server it can be used the kill or pkill command sending the SIGINT signal.

Is not recomended to run the server as root user due it can execute programs 'endpoints' that potentially may harm the system. If is needed to run it as other user, it can be executed from a shell that sets the desired effective user id or by any other means.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Abstract. The EPOCH protocol is based on the XS_ACE ‘Arbitrary Code Execution’ subsystem of TF Protocol, in fact, is a subset of XS_ACE (see TF Protocol documentation for further reading). The idea behind EPOCH is to provide an abstraction layer for communication and encryption allowing the construction of functionalities or commands ‘Called endpoints in EPOCH’ on top of it. Those endpoints are programs that can be written in any interpreted or JIT language, such Python or Java; or any AOT language like C, C++, Pascal, and so on. As far as concern to the ‘endpoint’, this is, the program running on top of EPOCH, only matters reading from standard input and writing to the standard output.

Just wanna use it! C example. (May be you need to install openssl libs)

git clone https://github.com/lmdelbahia/epoch.git
cd epoch
make clean; make
sudo make install
cd client_side/c (done)/api/
make clean; make
sudo make install
Run the server
epoch /etc/epoch 55001 x
Create a test program
nano main.c
Paste this into main.c
/* This program is an example of how to use the EPOCH client api. */

#include <stdio.h> #include <stdlib.h> #include <epoch.h> #include <string.h> #include <signal.h>

char bf[1000]; int pos = 0;

/* Receive callback. */ void rcv_callback(void *buf, int64_t len) {
if (len) { memcpy(bf + pos, buf, len); pos += len; } }

/* Send callback. */ void snd_callback(void *buf, int64_t *len) { static int i = 0; if (i < 10) { sprintf(buf, "%s%d\n", "Send something ", i); *len = strlen((char *) buf) + 1; i++; } else *len = 0; }

int main(void) { /* For EPOCH client usage, see EPOCH API documentation. / int rc; char ip[16]; / Resolv ip from host. / rc = resolvhn("google.com", ip, 0, 4); printf("%d %s\n", rc, ip); / Initialize the EPOCH structure./ struct epoch_s e = { "127.0.0.1", "", 55001, "sessionkey", 10, "", 0, 3}; / Server public key. PEM Format. / char pubkey[] = "-----BEGIN PUBLIC KEY-----\n" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq2K/X7ZSKlrMBIrSY9G/\n" "LLB+0injPCX17U7vb8XedQbjBT2AJ+qxmT4VLR1EWnvdUdvxaX9kRahI4hlSnfWl\n" "IddPfJRPH97Rk0OlMEQBclhD4WL88T8o4lVu0nuo8UAjqY0As6g6ZCG1s/Wfr64N\n" "aSvFr8NAYIaTQ6PbKxiypTythsSAkp5eAMkaje/ZAhkY1h0zMz09eg17veED8dIb\n" "R5sc7j05ndDOGucqY4+u9F/CZQNyOysKcFYjtYz/pStBPYY8CcU82SwW0Y2tbzy2\n" "j30ADzroySlQw+VjcffrGJao9qea1GWGwGMv4d4baMxrZeid2uB7NMUdljW8owWa\n" "VwIDAQAB\n" "-----END PUBLIC KEY-----\n"; e.pubkey = pubkey; / Run an endpoint. /
int es = 0; rc = epoch_endpoint(&e, "/bin/ls -la", "hash_authority", MULTI_THREAD, 3000, snd_callback, rcv_callback, NULL, &es); /
Print the endpoint output. / printf("%s\n", bf); / Print the epoch_endpoint return value. / printf("%d\n", rc); / Print the endpoint -Program executed at the server- exit status. */ printf("%d\n", WEXITSTATUS(es)); return 0; }

Save main.c and close it.
gcc -o epoch_test main.c -lepoch
Run the program and see the result.
./epoch_test

What does this program do?

-Connect to the server through EPOCH Protocol.
-Execute remotely the ls command.
-Receive the ls output.
-Print that output

For further complex programs, please read the docs. It doen't bite you!

You can find in the folders the server written in C and many clientes written in different languages.

To run server in debug mode execute it like this debug/epoch ./conf 55001

The first parameter indicates the folder of the server private key and the authority file. -The private server key is in PEM format. This is a file called "key" without the double quotes in the folder indicated by the first parameter. -The authority file is a list of programs and paramters that can be run from EPOCH Protocol. The exact authority file among all of them is specified by the client side.

The second parameter indicate the port in which the server will listen for incomming connections.

To run server in production mode execute it like this release/epoch ./conf/ 55001 x

The first two parameters are the same as in the debug mode. The third parameter could be any number or letter or string. The fact that there is a third parameter is what tells the server that it has to be run in production mode.

To stop the server it can be used the kill or pkill command sending the SIGINT signal.

Is not recomended to run the server as root user due it can execute programs 'endpoints' that potentially may harm the system. If is needed to run it as other user, it can be executed from a shell that sets the desired effective user id or by any other means.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Abstract. The EPOCH protocol is based on the XS_ACE ‘Arbitrary Code Execution’ subsystem of TF Protocol, in fact, is a subset of XS_ACE (see TF Protocol documentation for further reading). The idea behind EPOCH is to provide an abstraction layer for communication and encryption allowing the construction of functionalities or commands ‘Called endpoints in EPOCH’ on top of it. Those endpoints are programs that can be written in any interpreted or JIT language, such Python or Java; or any AOT language like C, C++, Pascal, and so on. As far as concern to the ‘endpoint’, this is, the program running on top of EPOCH, only matters reading from standard input and writing to the standard output.

Just wanna use it! C example. (May be you need to install openssl libs)

git clone https://github.com/lmdelbahia/epoch.git
cd epoch
make clean; make
sudo make install
cd client_side/c (done)/api/
make clean; make
sudo make install
Run the server
epoch /etc/epoch 55001 x
Create a test program
nano main.c
Paste this into main.c
/* This program is an example of how to use the EPOCH client api. */

#include <stdio.h> #include <stdlib.h> #include <epoch.h> #include <string.h> #include <signal.h>

char bf[1000]; int pos = 0;

/* Receive callback. */ void rcv_callback(void *buf, int64_t len) {
if (len) { memcpy(bf + pos, buf, len); pos += len; } }

/* Send callback. */ void snd_callback(void *buf, int64_t *len) { static int i = 0; if (i < 10) { sprintf(buf, "%s%d\n", "Send something ", i); *len = strlen((char *) buf) + 1; i++; } else *len = 0; }

int main(void) { /* For EPOCH client usage, see EPOCH API documentation. / int rc; char ip[16]; / Resolv ip from host. / rc = resolvhn("google.com", ip, 0, 4); printf("%d %s\n", rc, ip); / Initialize the EPOCH structure./ struct epoch_s e = { "127.0.0.1", "", 55001, "sessionkey", 10, "", 0, 3}; / Server public key. PEM Format. / char pubkey[] = "-----BEGIN PUBLIC KEY-----\n" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq2K/X7ZSKlrMBIrSY9G/\n" "LLB+0injPCX17U7vb8XedQbjBT2AJ+qxmT4VLR1EWnvdUdvxaX9kRahI4hlSnfWl\n" "IddPfJRPH97Rk0OlMEQBclhD4WL88T8o4lVu0nuo8UAjqY0As6g6ZCG1s/Wfr64N\n" "aSvFr8NAYIaTQ6PbKxiypTythsSAkp5eAMkaje/ZAhkY1h0zMz09eg17veED8dIb\n" "R5sc7j05ndDOGucqY4+u9F/CZQNyOysKcFYjtYz/pStBPYY8CcU82SwW0Y2tbzy2\n" "j30ADzroySlQw+VjcffrGJao9qea1GWGwGMv4d4baMxrZeid2uB7NMUdljW8owWa\n" "VwIDAQAB\n" "-----END PUBLIC KEY-----\n"; e.pubkey = pubkey; / Run an endpoint. /
int es = 0; rc = epoch_endpoint(&e, "/bin/ls -la", "hash_authority", MULTI_THREAD, 3000, snd_callback, rcv_callback, NULL, &es); /
Print the endpoint output. / printf("%s\n", bf); / Print the epoch_endpoint return value. / printf("%d\n", rc); / Print the endpoint -Program executed at the server- exit status. */ printf("%d\n", WEXITSTATUS(es)); return 0; }

Save main.c and close it.
gcc -o epoch_test main.c -lepoch
Run the program and see the result.
./epoch_test

What does this program do?

-Connect to the server through EPOCH Protocol.
-Execute remotely the ls command.
-Receive the ls output.
-Print that output

For further complex programs, please read the docs. It doen't bite you!

You can find in the folders the server written in C and many clientes written in different languages.

To run server in debug mode execute it like this debug/epoch ./conf 55001

The first parameter indicates the folder of the server private key and the authority file. -The private server key is in PEM format. This is a file called "key" without the double quotes in the folder indicated by the first parameter. -The authority file is a list of programs and paramters that can be run from EPOCH Protocol. The exact authority file among all of them is specified by the client side.

The second parameter indicate the port in which the server will listen for incomming connections.

To run server in production mode execute it like this release/epoch ./conf/ 55001 x

The first two parameters are the same as in the debug mode. The third parameter could be any number or letter or string. The fact that there is a third parameter is what tells the server that it has to be run in production mode.

To stop the server it can be used the kill or pkill command sending the SIGINT signal.

Is not recomended to run the server as root user due it can execute programs 'endpoints' that potentially may harm the system. If is needed to run it as other user, it can be executed from a shell that sets the desired effective user id or by any other means.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Abstract. The EPOCH protocol is based on the XS_ACE ‘Arbitrary Code Execution’ subsystem of TF Protocol, in fact, is a subset of XS_ACE (see TF Protocol documentation for further reading). The idea behind EPOCH is to provide an abstraction layer for communication and encryption allowing the construction of functionalities or commands ‘Called endpoints in EPOCH’ on top of it. Those endpoints are programs that can be written in any interpreted or JIT language, such Python or Java; or any AOT language like C, C++, Pascal, and so on. As far as concern to the ‘endpoint’, this is, the program running on top of EPOCH, only matters reading from standard input and writing to the standard output.

Just wanna use it! C example. (May be you need to install openssl libs)

git clone https://github.com/lmdelbahia/epoch.git
cd epoch
make clean; make
sudo make install
cd client_side/c (done)/api/
make clean; make
sudo make install
Run the server
epoch /etc/epoch 55001 x
Create a test program
nano main.c
Paste this into main.c
/* This program is an example of how to use the EPOCH client api. */

#include <stdio.h> #include <stdlib.h> #include <epoch.h> #include <string.h> #include <signal.h>

char bf[1000]; int pos = 0;

/* Receive callback. */ void rcv_callback(void *buf, int64_t len) {
if (len) { memcpy(bf + pos, buf, len); pos += len; } }

/* Send callback. */ void snd_callback(void *buf, int64_t *len) { static int i = 0; if (i < 10) { sprintf(buf, "%s%d\n", "Send something ", i); *len = strlen((char *) buf) + 1; i++; } else *len = 0; }

int main(void) { /* For EPOCH client usage, see EPOCH API documentation. / int rc; char ip[16]; / Resolv ip from host. / rc = resolvhn("google.com", ip, 0, 4); printf("%d %s\n", rc, ip); / Initialize the EPOCH structure./ struct epoch_s e = { "127.0.0.1", "", 55001, "sessionkey", 10, "", 0, 3}; / Server public key. PEM Format. / char pubkey[] = "-----BEGIN PUBLIC KEY-----\n" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq2K/X7ZSKlrMBIrSY9G/\n" "LLB+0injPCX17U7vb8XedQbjBT2AJ+qxmT4VLR1EWnvdUdvxaX9kRahI4hlSnfWl\n" "IddPfJRPH97Rk0OlMEQBclhD4WL88T8o4lVu0nuo8UAjqY0As6g6ZCG1s/Wfr64N\n" "aSvFr8NAYIaTQ6PbKxiypTythsSAkp5eAMkaje/ZAhkY1h0zMz09eg17veED8dIb\n" "R5sc7j05ndDOGucqY4+u9F/CZQNyOysKcFYjtYz/pStBPYY8CcU82SwW0Y2tbzy2\n" "j30ADzroySlQw+VjcffrGJao9qea1GWGwGMv4d4baMxrZeid2uB7NMUdljW8owWa\n" "VwIDAQAB\n" "-----END PUBLIC KEY-----\n"; e.pubkey = pubkey; / Run an endpoint. /
int es = 0; rc = epoch_endpoint(&e, "/bin/ls -la", "hash_authority", MULTI_THREAD, 3000, snd_callback, rcv_callback, NULL, &es); /
Print the endpoint output. / printf("%s\n", bf); / Print the epoch_endpoint return value. / printf("%d\n", rc); / Print the endpoint -Program executed at the server- exit status. */ printf("%d\n", WEXITSTATUS(es)); return 0; }

Save main.c and close it.
gcc -o epoch_test main.c -lepoch
Run the program and see the result.
./epoch_test

What does this program do?

-Connect to the server through EPOCH Protocol.
-Execute remotely the ls command.
-Receive the ls output.
-Print that output

For further complex programs, please read the docs. It doen't bite you!

You can find in the folders the server written in C and many clientes written in different languages.

To run server in debug mode execute it like this debug/epoch ./conf 55001

The first parameter indicates the folder of the server private key and the authority file. -The private server key is in PEM format. This is a file called "key" without the double quotes in the folder indicated by the first parameter. -The authority file is a list of programs and paramters that can be run from EPOCH Protocol. The exact authority file among all of them is specified by the client side.

The second parameter indicate the port in which the server will listen for incomming connections.

To run server in production mode execute it like this release/epoch ./conf/ 55001 x

The first two parameters are the same as in the debug mode. The third parameter could be any number or letter or string. The fact that there is a third parameter is what tells the server that it has to be run in production mode.

To stop the server it can be used the kill or pkill command sending the SIGINT signal.

Is not recomended to run the server as root user due it can execute programs 'endpoints' that potentially may harm the system. If is needed to run it as other user, it can be executed from a shell that sets the desired effective user id or by any other means.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Abstract. The EPOCH protocol is based on the XS_ACE ‘Arbitrary Code Execution’ subsystem of TF Protocol, in fact, is a subset of XS_ACE (see TF Protocol documentation for further reading). The idea behind EPOCH is to provide an abstraction layer for communication and encryption allowing the construction of functionalities or commands ‘Called endpoints in EPOCH’ on top of it. Those endpoints are programs that can be written in any interpreted or JIT language, such Python or Java; or any AOT language like C, C++, Pascal, and so on. As far as concern to the ‘endpoint’, this is, the program running on top of EPOCH, only matters reading from standard input and writing to the standard output.

Just wanna use it! C example. (May be you need to install openssl libs)

git clone https://github.com/lmdelbahia/epoch.git
cd epoch
make clean; make
sudo make install
cd client_side/c (done)/api/
make clean; make
sudo make install
Run the server
epoch /etc/epoch 55001 x
Create a test program
nano main.c
Paste this into main.c
/* This program is an example of how to use the EPOCH client api. */

#include <stdio.h> #include <stdlib.h> #include <epoch.h> #include <string.h> #include <signal.h>

char bf[1000]; int pos = 0;

/* Receive callback. */ void rcv_callback(void *buf, int64_t len) {
if (len) { memcpy(bf + pos, buf, len); pos += len; } }

/* Send callback. */ void snd_callback(void *buf, int64_t *len) { static int i = 0; if (i < 10) { sprintf(buf, "%s%d\n", "Send something ", i); *len = strlen((char *) buf) + 1; i++; } else *len = 0; }

int main(void) { /* For EPOCH client usage, see EPOCH API documentation. / int rc; char ip[16]; / Resolv ip from host. / rc = resolvhn("google.com", ip, 0, 4); printf("%d %s\n", rc, ip); / Initialize the EPOCH structure./ struct epoch_s e = { "127.0.0.1", "", 55001, "sessionkey", 10, "", 0, 3}; / Server public key. PEM Format. / char pubkey[] = "-----BEGIN PUBLIC KEY-----\n" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq2K/X7ZSKlrMBIrSY9G/\n" "LLB+0injPCX17U7vb8XedQbjBT2AJ+qxmT4VLR1EWnvdUdvxaX9kRahI4hlSnfWl\n" "IddPfJRPH97Rk0OlMEQBclhD4WL88T8o4lVu0nuo8UAjqY0As6g6ZCG1s/Wfr64N\n" "aSvFr8NAYIaTQ6PbKxiypTythsSAkp5eAMkaje/ZAhkY1h0zMz09eg17veED8dIb\n" "R5sc7j05ndDOGucqY4+u9F/CZQNyOysKcFYjtYz/pStBPYY8CcU82SwW0Y2tbzy2\n" "j30ADzroySlQw+VjcffrGJao9qea1GWGwGMv4d4baMxrZeid2uB7NMUdljW8owWa\n" "VwIDAQAB\n" "-----END PUBLIC KEY-----\n"; e.pubkey = pubkey; / Run an endpoint. /
int es = 0; rc = epoch_endpoint(&e, "/bin/ls -la", "hash_authority", MULTI_THREAD, 3000, snd_callback, rcv_callback, NULL, &es); /
Print the endpoint output. / printf("%s\n", bf); / Print the epoch_endpoint return value. / printf("%d\n", rc); / Print the endpoint -Program executed at the server- exit status. */ printf("%d\n", WEXITSTATUS(es)); return 0; }

Save main.c and close it.
gcc -o epoch_test main.c -lepoch
Run the program and see the result.
./epoch_test

What does this program do?

-Connect to the server through EPOCH Protocol.
-Execute remotely the ls command.
-Receive the ls output.
-Print that output

For further complex programs, please read the docs. It doen't bite you!

You can find in the folders the server written in C and many clientes written in different languages.

To run server in debug mode execute it like this debug/epoch ./conf 55001

The first parameter indicates the folder of the server private key and the authority file. -The private server key is in PEM format. This is a file called "key" without the double quotes in the folder indicated by the first parameter. -The authority file is a list of programs and paramters that can be run from EPOCH Protocol. The exact authority file among all of them is specified by the client side.

The second parameter indicate the port in which the server will listen for incomming connections.

To run server in production mode execute it like this release/epoch ./conf/ 55001 x

The first two parameters are the same as in the debug mode. The third parameter could be any number or letter or string. The fact that there is a third parameter is what tells the server that it has to be run in production mode.

To stop the server it can be used the kill or pkill command sending the SIGINT signal.

Is not recomended to run the server as root user due it can execute programs 'endpoints' that potentially may harm the system. If is needed to run it as other user, it can be executed from a shell that sets the desired effective user id or by any other means.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Abstract. The EPOCH protocol is based on the XS_ACE ‘Arbitrary Code Execution’ subsystem of TF Protocol, in fact, is a subset of XS_ACE (see TF Protocol documentation for further reading). The idea behind EPOCH is to provide an abstraction layer for communication and encryption allowing the construction of functionalities or commands ‘Called endpoints in EPOCH’ on top of it. Those endpoints are programs that can be written in any interpreted or JIT language, such Python or Java; or any AOT language like C, C++, Pascal, and so on. As far as concern to the ‘endpoint’, this is, the program running on top of EPOCH, only matters reading from standard input and writing to the standard output.

Just wanna use it! C example. (May be you need to install openssl libs)

git clone https://github.com/lmdelbahia/epoch.git
cd epoch
make clean; make
sudo make install
cd client_side/c (done)/api/
make clean; make
sudo make install
Run the server
epoch /etc/epoch 55001 x
Create a test program
nano main.c
Paste this into main.c
/* This program is an example of how to use the EPOCH client api. */

#include <stdio.h> #include <stdlib.h> #include <epoch.h> #include <string.h> #include <signal.h>

char bf[1000]; int pos = 0;

/* Receive callback. */ void rcv_callback(void *buf, int64_t len) {
if (len) { memcpy(bf + pos, buf, len); pos += len; } }

/* Send callback. */ void snd_callback(void *buf, int64_t *len) { static int i = 0; if (i < 10) { sprintf(buf, "%s%d\n", "Send something ", i); *len = strlen((char *) buf) + 1; i++; } else *len = 0; }

int main(void) { /* For EPOCH client usage, see EPOCH API documentation. / int rc; char ip[16]; / Resolv ip from host. / rc = resolvhn("google.com", ip, 0, 4); printf("%d %s\n", rc, ip); / Initialize the EPOCH structure./ struct epoch_s e = { "127.0.0.1", "", 55001, "sessionkey", 10, "", 0, 3}; / Server public key. PEM Format. / char pubkey[] = "-----BEGIN PUBLIC KEY-----\n" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq2K/X7ZSKlrMBIrSY9G/\n" "LLB+0injPCX17U7vb8XedQbjBT2AJ+qxmT4VLR1EWnvdUdvxaX9kRahI4hlSnfWl\n" "IddPfJRPH97Rk0OlMEQBclhD4WL88T8o4lVu0nuo8UAjqY0As6g6ZCG1s/Wfr64N\n" "aSvFr8NAYIaTQ6PbKxiypTythsSAkp5eAMkaje/ZAhkY1h0zMz09eg17veED8dIb\n" "R5sc7j05ndDOGucqY4+u9F/CZQNyOysKcFYjtYz/pStBPYY8CcU82SwW0Y2tbzy2\n" "j30ADzroySlQw+VjcffrGJao9qea1GWGwGMv4d4baMxrZeid2uB7NMUdljW8owWa\n" "VwIDAQAB\n" "-----END PUBLIC KEY-----\n"; e.pubkey = pubkey; / Run an endpoint. /
int es = 0; rc = epoch_endpoint(&e, "/bin/ls -la", "hash_authority", MULTI_THREAD, 3000, snd_callback, rcv_callback, NULL, &es); /
Print the endpoint output. / printf("%s\n", bf); / Print the epoch_endpoint return value. / printf("%d\n", rc); / Print the endpoint -Program executed at the server- exit status. */ printf("%d\n", WEXITSTATUS(es)); return 0; }

Save main.c and close it.
gcc -o epoch_test main.c -lepoch
Run the program and see the result.
./epoch_test

What does this program do?

-Connect to the server through EPOCH Protocol.
-Execute remotely the ls command.
-Receive the ls output.
-Print that output

For further complex programs, please read the docs. It doen't bite you!

You can find in the folders the server written in C and many clientes written in different languages.

To run server in debug mode execute it like this debug/epoch ./conf 55001

The first parameter indicates the folder of the server private key and the authority file. -The private server key is in PEM format. This is a file called "key" without the double quotes in the folder indicated by the first parameter. -The authority file is a list of programs and paramters that can be run from EPOCH Protocol. The exact authority file among all of them is specified by the client side.

The second parameter indicate the port in which the server will listen for incomming connections.

To run server in production mode execute it like this release/epoch ./conf/ 55001 x

The first two parameters are the same as in the debug mode. The third parameter could be any number or letter or string. The fact that there is a third parameter is what tells the server that it has to be run in production mode.

To stop the server it can be used the kill or pkill command sending the SIGINT signal.

Is not recomended to run the server as root user due it can execute programs 'endpoints' that potentially may harm the system. If is needed to run it as other user, it can be executed from a shell that sets the desired effective user id or by any other means.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Abstract. The EPOCH protocol is based on the XS_ACE ‘Arbitrary Code Execution’ subsystem of TF Protocol, in fact, is a subset of XS_ACE (see TF Protocol documentation for further reading). The idea behind EPOCH is to provide an abstraction layer for communication and encryption allowing the construction of functionalities or commands ‘Called endpoints in EPOCH’ on top of it. Those endpoints are programs that can be written in any interpreted or JIT language, such Python or Java; or any AOT language like C, C++, Pascal, and so on. As far as concern to the ‘endpoint’, this is, the program running on top of EPOCH, only matters reading from standard input and writing to the standard output.

Just wanna use it! C example. (May be you need to install openssl libs)

git clone https://github.com/lmdelbahia/epoch.git
cd epoch
make clean; make
sudo make install
cd client_side/c (done)/api/
make clean; make
sudo make install
Run the server
epoch /etc/epoch 55001 x
Create a test program
nano main.c
Paste this into main.c
/* This program is an example of how to use the EPOCH client api. */

#include <stdio.h> #include <stdlib.h> #include <epoch.h> #include <string.h> #include <signal.h>

char bf[1000]; int pos = 0;

/* Receive callback. */ void rcv_callback(void *buf, int64_t len) {
if (len) { memcpy(bf + pos, buf, len); pos += len; } }

/* Send callback. */ void snd_callback(void *buf, int64_t *len) { static int i = 0; if (i < 10) { sprintf(buf, "%s%d\n", "Send something ", i); *len = strlen((char *) buf) + 1; i++; } else *len = 0; }

int main(void) { /* For EPOCH client usage, see EPOCH API documentation. / int rc; char ip[16]; / Resolv ip from host. / rc = resolvhn("google.com", ip, 0, 4); printf("%d %s\n", rc, ip); / Initialize the EPOCH structure./ struct epoch_s e = { "127.0.0.1", "", 55001, "sessionkey", 10, "", 0, 3}; / Server public key. PEM Format. / char pubkey[] = "-----BEGIN PUBLIC KEY-----\n" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq2K/X7ZSKlrMBIrSY9G/\n" "LLB+0injPCX17U7vb8XedQbjBT2AJ+qxmT4VLR1EWnvdUdvxaX9kRahI4hlSnfWl\n" "IddPfJRPH97Rk0OlMEQBclhD4WL88T8o4lVu0nuo8UAjqY0As6g6ZCG1s/Wfr64N\n" "aSvFr8NAYIaTQ6PbKxiypTythsSAkp5eAMkaje/ZAhkY1h0zMz09eg17veED8dIb\n" "R5sc7j05ndDOGucqY4+u9F/CZQNyOysKcFYjtYz/pStBPYY8CcU82SwW0Y2tbzy2\n" "j30ADzroySlQw+VjcffrGJao9qea1GWGwGMv4d4baMxrZeid2uB7NMUdljW8owWa\n" "VwIDAQAB\n" "-----END PUBLIC KEY-----\n"; e.pubkey = pubkey; / Run an endpoint. /
int es = 0; rc = epoch_endpoint(&e, "/bin/ls -la", "hash_authority", MULTI_THREAD, 3000, snd_callback, rcv_callback, NULL, &es); /
Print the endpoint output. / printf("%s\n", bf); / Print the epoch_endpoint return value. / printf("%d\n", rc); / Print the endpoint -Program executed at the server- exit status. */ printf("%d\n", WEXITSTATUS(es)); return 0; }

Save main.c and close it.
gcc -o epoch_test main.c -lepoch
Run the program and see the result.
./epoch_test

What does this program do?

-Connect to the server through EPOCH Protocol.
-Execute remotely the ls command.
-Receive the ls output.
-Print that output

For further complex programs, please read the docs. It doen't bite you!

You can find in the folders the server written in C and many clientes written in different languages.

To run server in debug mode execute it like this debug/epoch ./conf 55001

The first parameter indicates the folder of the server private key and the authority file. -The private server key is in PEM format. This is a file called "key" without the double quotes in the folder indicated by the first parameter. -The authority file is a list of programs and paramters that can be run from EPOCH Protocol. The exact authority file among all of them is specified by the client side.

The second parameter indicate the port in which the server will listen for incomming connections.

To run server in production mode execute it like this release/epoch ./conf/ 55001 x

The first two parameters are the same as in the debug mode. The third parameter could be any number or letter or string. The fact that there is a third parameter is what tells the server that it has to be run in production mode.

To stop the server it can be used the kill or pkill command sending the SIGINT signal.

Is not recomended to run the server as root user due it can execute programs 'endpoints' that potentially may harm the system. If is needed to run it as other user, it can be executed from a shell that sets the desired effective user id or by any other means.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages