diff --git a/G-Earth/src/main/java/gearth/protocol/HConnection.java b/G-Earth/src/main/java/gearth/protocol/HConnection.java
index e5fa2de..aef5b3d 100644
--- a/G-Earth/src/main/java/gearth/protocol/HConnection.java
+++ b/G-Earth/src/main/java/gearth/protocol/HConnection.java
@@ -101,6 +101,7 @@ public class HConnection {
}
+ public static boolean DECRYPTPACKETS = true;
public static boolean DEBUG = false;
private static final HostReplacer hostsReplacer = HostReplacerFactory.get();
diff --git a/G-Earth/src/main/java/gearth/protocol/memory/Rc4Obtainer.java b/G-Earth/src/main/java/gearth/protocol/memory/Rc4Obtainer.java
index b74d227..35e9bb9 100644
--- a/G-Earth/src/main/java/gearth/protocol/memory/Rc4Obtainer.java
+++ b/G-Earth/src/main/java/gearth/protocol/memory/Rc4Obtainer.java
@@ -50,6 +50,8 @@ public class Rc4Obtainer {
private void onSendFirstEncryptedMessage(Handler handler) {
+ if (!HConnection.DECRYPTPACKETS) return;
+
outgoingHandler.block();
incomingHandler.block();
diff --git a/G-Earth/src/main/java/gearth/protocol/packethandler/Handler.java b/G-Earth/src/main/java/gearth/protocol/packethandler/Handler.java
index 7afa84f..1d7888e 100644
--- a/G-Earth/src/main/java/gearth/protocol/packethandler/Handler.java
+++ b/G-Earth/src/main/java/gearth/protocol/packethandler/Handler.java
@@ -1,5 +1,6 @@
package gearth.protocol.packethandler;
+import gearth.protocol.HConnection;
import gearth.protocol.HMessage;
import gearth.protocol.HPacket;
import gearth.protocol.TrafficListener;
@@ -51,6 +52,11 @@ public abstract class Handler {
if (!isEncryptedStream) {
payloadBuffer.push(buffer);
}
+ else if (!HConnection.DECRYPTPACKETS) {
+ synchronized (lock) {
+ out.write(buffer);
+ }
+ }
else if (decryptcipher == null) {
for (int i = 0; i < buffer.length; i++) {
tempEncryptedBuffer.add(buffer[i]);
diff --git a/G-Earth/src/main/java/gearth/ui/extra/Extra.java b/G-Earth/src/main/java/gearth/ui/extra/Extra.java
index 3e652a2..90e9b60 100644
--- a/G-Earth/src/main/java/gearth/ui/extra/Extra.java
+++ b/G-Earth/src/main/java/gearth/ui/extra/Extra.java
@@ -7,6 +7,7 @@ import gearth.ui.info.Info;
import javafx.beans.InvalidationListener;
import javafx.beans.Observable;
import javafx.scene.control.*;
+import javafx.scene.layout.GridPane;
/**
* Created by Jonas on 06/04/18.
@@ -21,8 +22,11 @@ public class Extra extends SubForm {
public Hyperlink url_troubleshooting;
public CheckBox cbx_advanced;
+ public GridPane grd_advanced;
public CheckBox cbx_ovcinfo;
+ public GridPane grd_ovcinfo;
+
public TextField txt_realPort;
public TextField txt_mitmIP;
public TextField txt_realIp;
@@ -41,6 +45,9 @@ public class Extra extends SubForm {
}
cbx_debug.selectedProperty().addListener(observable -> HConnection.DEBUG = cbx_debug.isSelected());
+ cbx_disableDecryption.selectedProperty().addListener(observable -> HConnection.DECRYPTPACKETS = !cbx_disableDecryption.isSelected());
+
+ cbx_ovcinfo.selectedProperty().addListener(observable -> grd_ovcinfo.setDisable(!cbx_ovcinfo.isSelected()));
}
@Override
@@ -54,6 +61,8 @@ public class Extra extends SubForm {
updateAdvancedUI();
}
});
+
+ updateAdvancedUI();
}
@Override
@@ -62,6 +71,15 @@ public class Extra extends SubForm {
}
private void updateAdvancedUI() {
+ if (!cbx_advanced.isSelected()) {
+ cbx_debug.setSelected(false);
+ cbx_ovcinfo.setSelected(false);
+ if (getHConnection().getState() == HConnection.State.NOT_CONNECTED) {
+ cbx_disableDecryption.setSelected(false);
+ }
+ }
+ grd_advanced.setDisable(!cbx_advanced.isSelected());
+ cbx_disableDecryption.setDisable(getHConnection().getState() != HConnection.State.NOT_CONNECTED);
}
}
diff --git a/G-Earth/src/main/resources/gearth/ui/extra/Extra.fxml b/G-Earth/src/main/resources/gearth/ui/extra/Extra.fxml
index 0184114..25bb03f 100644
--- a/G-Earth/src/main/resources/gearth/ui/extra/Extra.fxml
+++ b/G-Earth/src/main/resources/gearth/ui/extra/Extra.fxml
@@ -37,7 +37,7 @@
-
+
@@ -55,7 +55,7 @@
-
+
@@ -71,7 +71,7 @@
-
+
@@ -79,7 +79,7 @@
-
+
@@ -87,7 +87,7 @@
-
+
@@ -95,7 +95,7 @@
-
+