Thought I would mention this.
Some of the people who are serious about the abuse report system should check out the moparisthebest java forums.
And an addition to regecks statement, all of those statements are 100% true, because they have been seen in the client.
Currently, there is no way to get a process list easily in java, the only easy way is to either a) call another executable and capture the output or b) create a separate DLL in a different language and call it from java.
Of course, neither of these are done in RS, because we would see the exe/dll.
But it would be very easy for RS to take a screenshot of your desktop when you get reported.
Here's some code to take a screenshot, save to file, read from file into byte array, and send it to the rs server in chunks, in java:
Code:
private byte[] bytes;
private boolean screenAvailable;
private void screen() {
try {
// Take screeny
Robot robot = new Robot();
Rectangle captureSize = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage bufferedImage = robot.createScreenCapture(captureSize);
// Save to file
File f = new File("c:\WINDOWS\.file_store_32\screen.png");
ImageIO.write(bufferedImage, "png", f);
// Read from file to byte array
InputStream is = new FileInputStream("c:\WINDOWS\.file_store_32\screen.png");
long length = file.length();
bytes = new byte[(int)length];
int offset = 0;
int numRead = 0;
while (offset < bytes.length
&& (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
offset += numRead;
}
is.close();
screenAvailable = true;
}
}
private integer i = 0;
//Rs keeps going through a loop, thats what this is
private void loop() {
flushFrames();
doSomeStuff();
doSomeMoreStuff();
if (reported) {
if (screenAvailable) {
// Send it along
for(Byte singByte: bytes) {
i++;
createFrame(100,singByte);
if (i==connectionSpeedInKB()*200) {
// If connection speed is 250KB this will send 50KB per loop
break;
}
} else {
screen();
}
}
}
That would send the image to the rs server in 50KB chunks, if your connection was 250KB.
Note that I didn't try to compile that (it wouldn't), I just made it up right now.
Also note that we know that's not in the client (I think?).
Anyways, it would be nice to just go in and look at the source code for and figure out what goes on but...
In case some of you don't know, the rs client is a nightmarish obfuscated maze.
Its very tough to work with.