21-02-2024, 15:27
(Denne besked var sidst ændret: 21-02-2024, 19:46 af SaNiTy.)
|
|
SaNiTy
Medlem
|
Indlæg: 25
Registreret: Jan 2018
Omdømme:
0
|
|
Guide til N scripts
Hej,
Da N har valgt at bruge Object.freeze på vores elskede WebSocket, har det vanskeliggjort at bruge de tidligere scripts, der har været delt, men det er bestemt ikke umuligt.
Jeg har lavet en lille step-by-step guide med billeder til, hvordan man kan bruge sockets igen.
https://imgur.com/a/M4bKFJ0
1) Log ind på N
2) Lav "CTRL - SHIFT - I"
3) Klik på sources-fanen
4) Højre klik på "top" og klik "Search in all files"
5) Søg efter "f.onopen" og klik ind på resultatet
6) Klik på linjen ud for "f.onopen"
7) Hop over i N og lav "CTRL - R" eller refresh N
8) Verificer at det ser nogenlunde sådan ud som på billede 5 i linket
9) Klik på console-fanen
10) Skriv "socket = f"
11) Klik nu på linjen ud for "f.onopen" igen og klik på den blå pil i højre hjørne
12) Du kan nu bruge de forskellige scripts igen med socket.send og socket.onmessage
13) Du skal udføre punkterne fra 7 til 11 i et ikke alt for langsomt tempo, ellers ryger forbindelsen til N
Skriv endelig privat hvis der er spørgsmål til metodikken.
Jeg kan forstå at folk stadig har problemer med at få scripts til at fungere, så her er et simpelt script som skriver ".." og tager jeres timer
I må selv rette det til.
Smid nedenstående kode ind i step 10 i stedet:
let socket = f
let proto = WebSocket.prototype.send
let onmessage = socket.onmessage
let myid = null;
socket.onmessage = function (e) {
var cmd = e.data.split(",");
if (cmd[0] == "3" && cmd[1] == "hour") {
var params = cmd[2].split(':');
var hour = params[0],
token = params[1];
setTimeout(function () {
proto.call(socket, "3,time," + token + ":1");
console.log("Received hour %s.", hour);
}, Math.floor(Math.random() * 29000) + 1000);
}
return onmessage(e);
}
socket.send = function (data) {
if (myid == null && data.substr(0, 2) == " ,") {
myid = data.split(",")[1];
console.log("Obtained session id %s", myid);
setInterval(function () {
socket.send('!,' + myid + ',..')
}, Math.floor(Math.random() * 120000) + 540000);
}
proto.call(socket, data);
}
|
|
22-02-2024, 18:34
(Denne besked var sidst ændret: 12-03-2024, 10:16 af test2.)
|
|
test2
Medlem
|
Indlæg: 4
Registreret: Nov 2023
Omdømme:
0
|
|
RE: Guide til N scripts
et nemmer trick er at bruge TramperMonkey til det.
da du kan sige at det TramperMoney, skal køre inden noget andet. Det vil sige, du kan overskrive den orginale WebSocket obj. og så overskrive den. Så når de på N, kalder den socket. Kan du opsnappe den..
Eks som virker. Det er bare bacis, som printer dataen som N sender.
Kode: // ==UserScript==
// @name n socket script
// @namespace http://tampermonkey.net/
// @version 2024-02-22
// @description try to take over the world!
// @author You
// @match https://www.netstationen.dk/visi/client.asp
// @icon https://www.google.com/s2/favicons?sz=64&domain=netstationen.dk
// @grant none
// @run-at document-start
// ==/UserScript==
(function() {
'use strict';
function ss(socket){
var realonmessage = socket.onmessage;
socket.onmessage = function(e) {
var data = e.data;
console.log("data:" + data)
realonmessage(e)
}
}
//start script, når forbinder til socketen.
const sockets = [];
const nativeWebSocket = window.WebSocket;
window.WebSocket = function(...args){
console.log("New Socket!!")
const socket = new nativeWebSocket(...args);
sockets.push(socket);
setTimeout(function() {
ss(socket);
}, 1000);
return socket;
};
})();
Det som er "key" her. Er at der under userscript stå Kode: // @run-at document-start
Det sikre at det her kode kode køre før alt andet på siden.
Så kan vi lave
Kode: const nativeWebSocket = window.WebSocket;
window.WebSocket = function(...args){
så gemmer jeg den orginale WebSocket kode. som er en function. Og så overskriver jeg den. Så det vil sige alt kode her efter. vil gå igennem den kode jeg har. Så der inde kalder jeg bare Kode: const socket = new nativeWebSocket(...args);
For at køre den normale logik. men her har du så det socket instance, som de bruger.
|
|
23-02-2024, 12:55
|
|
SaNiTy
Medlem
|
Indlæg: 25
Registreret: Jan 2018
Omdømme:
0
|
|
RE: Guide til N scripts
(22-02-2024, 18:34)test2 Skrev: et nemmer trick er at bruge TramperMonkey til det.
da du kan sige at det TramperMoney, skal køre inden noget andet. Det vil sige, du kan overskrive den orginale WebSocket obj. og så overskrive den. Så når de på N, kalder den socket. Kan du opsnappe den..
Eks som virker. Det er bare bacis, som printer dataen som N sender.
Kode: // ==UserScript==
// @name n socket script
// @namespace http://tampermonkey.net/
// @version 2024-02-22
// @description try to take over the world!
// @author You
// @match https://www.netstationen.dk/visi/client.asp
// @icon https://www.google.com/s2/favicons?sz=64&domain=netstationen.dk
// @grant none
// @run-at document-start
// ==/UserScript==
(function() {
'use strict';
function ss(socket){
socket.onmessage = function(e) {
var data = e.data;
console.log("data:" + data)
}
}
//start script, når forbinder til socketen.
const sockets = [];
const nativeWebSocket = window.WebSocket;
window.WebSocket = function(...args){
console.log("New Socket!!")
const socket = new nativeWebSocket(...args);
sockets.push(socket);
setTimeout(function() {
ss(socket);
}, 1000);
return socket;
};
})();
Det som er "key" her. Er at der under userscript stå Kode: // @run-at document-start
Det sikre at det her kode kode køre før alt andet på siden.
Så kan vi lave
Kode: const nativeWebSocket = window.WebSocket;
window.WebSocket = function(...args){
så gemmer jeg den orginale WebSocket kode. som er en function. Og så overskriver jeg den. Så det vil sige alt kode her efter. vil gå igennem den kode jeg har. Så der inde kalder jeg bare Kode: const socket = new nativeWebSocket(...args);
For at køre den normale logik. men her har du så det socket instance, som de bruger.
Tak for at byde ind.
Det er bestemt også muligt på denne måde @run-at document-start kan også bruges til chrome extensions for at opnå samme resultat.
|
|
24-03-2024, 11:38
|
|
Trinity
Medlem
|
Indlæg: 16
Registreret: Oct 2019
Omdømme:
0
|
|
RE: Guide til N scripts
(21-02-2024, 15:27)SaNiTy Skrev: Hej,
Da N har valgt at bruge Object.freeze på vores elskede WebSocket, har det vanskeliggjort at bruge de tidligere scripts, der har været delt, men det er bestemt ikke umuligt.
Jeg har lavet en lille step-by-step guide med billeder til, hvordan man kan bruge sockets igen.
https://imgur.com/a/M4bKFJ0
1) Log ind på N
2) Lav "CTRL - SHIFT - I"
3) Klik på sources-fanen
4) Højre klik på "top" og klik "Search in all files"
5) Søg efter "f.onopen" og klik ind på resultatet
6) Klik på linjen ud for "f.onopen"
7) Hop over i N og lav "CTRL - R" eller refresh N
8) Verificer at det ser nogenlunde sådan ud som på billede 5 i linket
9) Klik på console-fanen
10) Skriv "socket = f"
11) Klik nu på linjen ud for "f.onopen" igen og klik på den blå pil i højre hjørne
12) Du kan nu bruge de forskellige scripts igen med socket.send og socket.onmessage
13) Du skal udføre punkterne fra 7 til 11 i et ikke alt for langsomt tempo, ellers ryger forbindelsen til N
Skriv endelig privat hvis der er spørgsmål til metodikken.
Jeg kan forstå at folk stadig har problemer med at få scripts til at fungere, så her er et simpelt script som skriver ".." og tager jeres timer
I må selv rette det til.
Smid nedenstående kode ind i step 10 i stedet:
let socket = f
let proto = WebSocket.prototype.send
let onmessage = socket.onmessage
let myid = null;
socket.onmessage = function (e) {
var cmd = e.data.split(",");
if (cmd[0] == "3" && cmd[1] == "hour") {
var params = cmd[2].split(':');
var hour = params[0],
token = params[1];
setTimeout(function () {
proto.call(socket, "3,time," + token + ":1");
console.log("Received hour %s.", hour);
}, Math.floor(Math.random() * 29000) + 1000);
}
return onmessage(e);
}
socket.send = function (data) {
if (myid == null && data.substr(0, 2) == " ,") {
myid = data.split(",")[1];
console.log("Obtained session id %s", myid);
setInterval(function () {
socket.send('!,' + myid + ',..')
}, Math.floor(Math.random() * 120000) + 540000);
}
proto.call(socket, data);
}
Tusinde tak SaNiTy :D
|
|
26-03-2024, 19:20
(Denne besked var sidst ændret: 26-03-2024, 19:20 af Multiphantom.)
|
|
Multiphantom
VIP bruger
|
Indlæg: 61
Registreret: Oct 2017
Omdømme:
1
|
|
RE: Guide til N scripts
SaNiTy eller hvem end der kan være behjælpelig, forsøger at lave det gamle script der siger en lyd ved SB der kommer i Rum, samt ved navn nævnt som er angivet, men det lykkeds ikke rigtigt... det baseret på dit nye script sanity ... Måske du eller en anden kan være behjælpelig?
Kode: let socket = f;
let proto = WebSocket.prototype.send;
let onmessage = socket.onmessage;
let myid = null;
// Array af unikke navne
let sbNames = ['David', 'Gizmo', 'Nicki', 'Ralle', 'Jever', 'BigJ', 'Nikolaj', 'Vicevært', 'Camilla', 'Alex', 'Marsha', "Don Dørmand"];
// Array af brugernavne
let nsName = ["bruger4", "bruger3", "bruger2", "bruger1"];
// Eventlistener til at håndtere meddelelser
socket.addEventListener('message', function(e) {
if (!e || typeof(e.data) !== "string") {
return false;
} // Ingen data returneret
if (e.data.indexOf("p") < 0) {
return false;
}
// Her tjekker vi efter de navne, der er angivet, og afspiller en lyd, hvis de er nævnt
sbNames.forEach(function(name) {
if (e.data.includes(name)) {
playSound("https://www.tones7.com/media/nokia_scratch_sms.mp3");
}
});
var isChatCommand = new RegExp('!,[0-9]{1,4},');
// Gennemgå nsName og tjek om navnet er nævnt i beskeden
nsName.forEach(function(name) {
if (isChatCommand.test(e.data) && e.data.includes(name)) {
setTimeout(function() {
playSound('https://www.tones7.com/media/trap_text_tone.mp3');
}, Math.floor(Math.random() * 500) + 1000);
}
});
// Funktion til afspilning af lyd
let playSound = function(url) {
let audio = new Audio(url);
audio.play();
}
});
// Eventlistener for onmessage
socket.onmessage = function(e) {
let cmd = e.data.split(",");
if (cmd[0] == "3" && cmd[1] == "hour") {
let params = cmd[2].split(':');
let hour = params[0],
token = params[1];
setTimeout(function() {
proto.call(socket, "3,time," + token + ":1");
console.log("Received hour %s.", hour);
}, Math.floor(Math.random() * 29000) + 1000);
}
return onmessage(e);
};
// Funktion til at sende data
socket.send = function(data) {
if (myid == null && data.substr(0, 2) == " ,") {
myid = data.split(",")[1];
console.log("Obtained session id %s", myid);
setInterval(function() {
socket.send('!,' + myid + '.');
}, Math.floor(Math.random() * 120000) + 540000);
}
proto.call(socket, data);
};
|
|
27-03-2024, 11:21
|
|
SaNiTy
Medlem
|
Indlæg: 25
Registreret: Jan 2018
Omdømme:
0
|
|
RE: Guide til N scripts
(26-03-2024, 19:20)Multiphantom Skrev: SaNiTy eller hvem end der kan være behjælpelig, forsøger at lave det gamle script der siger en lyd ved SB der kommer i Rum, samt ved navn nævnt som er angivet, men det lykkeds ikke rigtigt... det baseret på dit nye script sanity ... Måske du eller en anden kan være behjælpelig?
Kode: let socket = f;
let proto = WebSocket.prototype.send;
let onmessage = socket.onmessage;
let myid = null;
// Array af unikke navne
let sbNames = ['David', 'Gizmo', 'Nicki', 'Ralle', 'Jever', 'BigJ', 'Nikolaj', 'Vicevært', 'Camilla', 'Alex', 'Marsha', "Don Dørmand"];
// Array af brugernavne
let nsName = ["bruger4", "bruger3", "bruger2", "bruger1"];
// Eventlistener til at håndtere meddelelser
socket.addEventListener('message', function(e) {
if (!e || typeof(e.data) !== "string") {
return false;
} // Ingen data returneret
if (e.data.indexOf("p") < 0) {
return false;
}
// Her tjekker vi efter de navne, der er angivet, og afspiller en lyd, hvis de er nævnt
sbNames.forEach(function(name) {
if (e.data.includes(name)) {
playSound("https://www.tones7.com/media/nokia_scratch_sms.mp3");
}
});
var isChatCommand = new RegExp('!,[0-9]{1,4},');
// Gennemgå nsName og tjek om navnet er nævnt i beskeden
nsName.forEach(function(name) {
if (isChatCommand.test(e.data) && e.data.includes(name)) {
setTimeout(function() {
playSound('https://www.tones7.com/media/trap_text_tone.mp3');
}, Math.floor(Math.random() * 500) + 1000);
}
});
// Funktion til afspilning af lyd
let playSound = function(url) {
let audio = new Audio(url);
audio.play();
}
});
// Eventlistener for onmessage
socket.onmessage = function(e) {
let cmd = e.data.split(",");
if (cmd[0] == "3" && cmd[1] == "hour") {
let params = cmd[2].split(':');
let hour = params[0],
token = params[1];
setTimeout(function() {
proto.call(socket, "3,time," + token + ":1");
console.log("Received hour %s.", hour);
}, Math.floor(Math.random() * 29000) + 1000);
}
return onmessage(e);
};
// Funktion til at sende data
socket.send = function(data) {
if (myid == null && data.substr(0, 2) == " ,") {
myid = data.split(",")[1];
console.log("Obtained session id %s", myid);
setInterval(function() {
socket.send('!,' + myid + '.');
}, Math.floor(Math.random() * 120000) + 540000);
}
proto.call(socket, data);
};
Kan godt tage et kig på det en af dagene, der er nogle småting i dit script som skal justeres
|
|
28-03-2024, 14:09
|
|
SaNiTy
Medlem
|
Indlæg: 25
Registreret: Jan 2018
Omdømme:
0
|
|
RE: Guide til N scripts
(27-03-2024, 11:27)Multiphantom Skrev: Tænkte jeg nok, tusinde tak makker :)
Har opdateret det en smule og tilføjet at den skriver nogle random chars i stedet for ".."
let socket = f;
let proto = WebSocket.prototype.send;
let onmessage = socket.onmessage;
let myid = null;
// Array af unikke navne
let sbNames = ['David', 'Gizmo', 'Nicki', 'Ralle', 'Jever', 'BigJ', 'Nikolaj', 'Vicev&AAOGrt', 'Camilla', 'Alex', 'Marsha', "Don D&AAPIrmand"];
// Array af brugernavne
let nsName = ["bruger4", "bruger3", "bruger2", "bruger1"];
// Funktion til afspilning af lyd
let playSound = function(url) {
let audio = new Audio(url);
audio.play();
}
// Eventlistener for onmessage
socket.onmessage = function(e) {
let cmd = e.data.split(",");
if (cmd[0] == "3" && cmd[1] == "hour") {
let params = cmd[2].split(':');
let hour = params[0],
token = params[1];
setTimeout(function() {
proto.call(socket, "3,time," + token + ":1");
console.log("Received hour %s.", hour);
}, Math.floor(Math.random() * 29000) + 1000);
}
// Holder øje med SB'ere som joiner dit rum
if(cmd[0] == "p" && sbNames.includes(cmd[3])){
playSound("https://www.tones7.com/media/nokia_scratch_sms.mp3");
console.log("SB arrived in room")
}
// Holder øje med om dit navn bliver nævnt
if(cmd[0] == "!" && nsName.some(username => cmd[2].includes(username))){
playSound('https://www.tones7.com/media/trap_text_tone.mp3');
console.log("Username was mentioned")
}
// Holder øje med om rummet du besøger har en SB
if (cmd[0] == "y") {
room = e.data.split(',,');
for (let i = 0; i < room.length; i++) {
room_user = room[i].split(',');
if (i == 0 && sbNames.includes(room_user[3])) {
playSound("https://www.tones7.com/media/nokia_scratch_sms.mp3");
console.log("SB is in the room")
} else if(sbNames.includes(room_user[2])) {
playSound("https://www.tones7.com/media/nokia_scratch_sms.mp3");
console.log("SB is in the room")
}
}
}
return onmessage(e);
};
// Funktion til at sende data
socket.send = function(data) {
if (myid == null && data.substr(0, 2) == " ,") {
myid = data.split(",")[1];
console.log("Obtained session id %s", myid);
setInterval(function () {
let result = "";
let characters = 'abcdefghijklmnopqrstuvwxyz';
for (let i = 0; i < 2; i++) {
result += characters.charAt(Math.floor(Math.random() * characters.length));
}
socket.send('!,' + myid + ',' + result)
result = "";
}, Math.floor(Math.random() * 120000) + 540000);
}
proto.call(socket, data);
};
|
|
28-03-2024, 21:06
|
|
Multiphantom
VIP bruger
|
Indlæg: 61
Registreret: Oct 2017
Omdømme:
1
|
|
RE: Guide til N scripts
(28-03-2024, 14:09)SaNiTy Skrev: Har opdateret det en smule og tilføjet at den skriver nogle random chars i stedet for ".."
let socket = f;
let proto = WebSocket.prototype.send;
let onmessage = socket.onmessage;
let myid = null;
// Array af unikke navne
let sbNames = ['David', 'Gizmo', 'Nicki', 'Ralle', 'Jever', 'BigJ', 'Nikolaj', 'Vicev&AAOGrt', 'Camilla', 'Alex', 'Marsha', "Don D&AAPIrmand"];
// Array af brugernavne
let nsName = ["bruger4", "bruger3", "bruger2", "bruger1"];
// Funktion til afspilning af lyd
let playSound = function(url) {
let audio = new Audio(url);
audio.play();
}
// Eventlistener for onmessage
socket.onmessage = function(e) {
let cmd = e.data.split(",");
if (cmd[0] == "3" && cmd[1] == "hour") {
let params = cmd[2].split(':');
let hour = params[0],
token = params[1];
setTimeout(function() {
proto.call(socket, "3,time," + token + ":1");
console.log("Received hour %s.", hour);
}, Math.floor(Math.random() * 29000) + 1000);
}
// Holder øje med SB'ere som joiner dit rum
if(cmd[0] == "p" && sbNames.includes(cmd[3])){
playSound("https://www.tones7.com/media/nokia_scratch_sms.mp3");
console.log("SB arrived in room")
}
// Holder øje med om dit navn bliver nævnt
if(cmd[0] == "!" && nsName.some(username => cmd[2].includes(username))){
playSound('https://www.tones7.com/media/trap_text_tone.mp3');
console.log("Username was mentioned")
}
// Holder øje med om rummet du besøger har en SB
if (cmd[0] == "y") {
room = e.data.split(',,');
for (let i = 0; i < room.length; i++) {
room_user = room[i].split(',');
if (i == 0 && sbNames.includes(room_user[3])) {
playSound("https://www.tones7.com/media/nokia_scratch_sms.mp3");
console.log("SB is in the room")
} else if(sbNames.includes(room_user[2])) {
playSound("https://www.tones7.com/media/nokia_scratch_sms.mp3");
console.log("SB is in the room")
}
}
}
return onmessage(e);
};
// Funktion til at sende data
socket.send = function(data) {
if (myid == null && data.substr(0, 2) == " ,") {
myid = data.split(",")[1];
console.log("Obtained session id %s", myid);
setInterval(function () {
let result = "";
let characters = 'abcdefghijklmnopqrstuvwxyz';
for (let i = 0; i < 2; i++) {
result += characters.charAt(Math.floor(Math.random() * characters.length));
}
socket.send('!,' + myid + ',' + result)
result = "";
}, Math.floor(Math.random() * 120000) + 540000);
}
proto.call(socket, data);
};
Du fanme en guttermand
|
|
08-04-2024, 14:11
|
|
M1KKL
Medlem
|
Indlæg: 10
Registreret: Sep 2016
Omdømme:
0
|
|
RE: Guide til N scripts
Er der nogen der har haft succes med TamperMonkey, så man er fri for at gennemgå hele processen hver gang? :)
|
|
|