Logs outbound packets from arras
// ==UserScript==
// @name Arras Outbound Packet Sniffer
// @namespace EFdatastuff_Arras_Outbound
// @version 1.0.1
// @description Logs outbound packets from arras
// @author EternalFrostrOrig (@EternalFrost#0955 /u/PineappleNarwhal)
// @match http://arras.io/
// @match http://arras-proxy.surge.sh/
// @grant none
// ==/UserScript==
/* global Arras */
(function() {
'use strict';
try {
Function.prototype.clone = function() {
var that = this;
var temp = function temporary() { return that.apply(this, arguments); };
for(var key in this) {
if (this.hasOwnProperty(key)) {
temp[key] = this[key];
}
}
return temp;
};
function log(data) {
console.log("AOPS - ", data)
}
var mainObj = Arras(1337)
var isInjected = false
var captured_talk
function inject() {
if (mainObj.socket != undefined && mainObj.socket.talk != undefined) {
log("Socket methods ready, beginging injection...")
clearInterval(injectLoop)
captured_talk = mainObj.socket.talk.clone()
log("Captured talk() method, injecting middleman function...")
mainObj.socket.talk = function(...data) {
log(data)
switch (data.length) {
case 1:
captured_talk(data[0])
break;
case 2:
captured_talk(data[0], data[1])
break;
case 3:
captured_talk(data[0], data[1], data[2])
break;
case 4: captured_talk(data[0], data[1], data[2], data[3])
break;
default:
log("UNABLE TO PROCESS DATA AMOUNT OF LENGTH " + data.length)
break;
}
}
log("Injected sucessfully")
}
}
var injectLoop = setInterval(inject, 3)
} catch(e) {}
})();