diff --git a/README.md b/README.md
index 6a6d5ad..0ce8940 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# injector-tools (0.3.2-dev)
+# injector-tools (0.3.3-dev)
- test server security
@@ -16,7 +16,7 @@
# Start app
-java -jar injector-tools-0.3.2-dev-jar-with-dependencies.jar filename.json
+java -jar injector-tools-0.3.3-dev-jar-with-dependencies.jar filename.json
- -h show help message
- -v show app version
@@ -25,3 +25,7 @@ java -jar injector-tools-0.3.2-dev-jar-with-dependencies.jar filename.json
- filename: the name of the file to be load
- if no config file loaded will use default config (cache dir)
- -h:help, -v:version, -t:temp
+
+# Fix ISSUS:
+ - fix ANSI escape code on windows platform.
+
diff --git a/pom.xml b/pom.xml
index 6323519..8e71d78 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
org.injector
injector-tools
- 0.3.2-dev
+ 0.3.3-dev
HTTP Injector Tools(core)
Create local proxy with the provided payload,
connect to remote ssh by created proxy.
@@ -101,10 +101,12 @@
1.0.6
- terminal
- org.terminal.ansi
- 0.1.8
+ org.terminal
+ ansi
+ 0.1.95
+
+
diff --git a/src/main/java/org/injector/tools/log/impl/LogOut.java b/src/main/java/org/injector/tools/log/impl/LogOut.java
index db2b2b7..82feb65 100644
--- a/src/main/java/org/injector/tools/log/impl/LogOut.java
+++ b/src/main/java/org/injector/tools/log/impl/LogOut.java
@@ -20,10 +20,10 @@ public class LogOut implements Debugger {
public void setColourFormate(boolean useansicolour) {
if(useansicolour) {
- messageFormate = "["+ansi.Red("{}")+"]\t"+ansi.BlueLight("{}");
- titleHeadFormate = "[" + ansi.Red("{}") + "]\t" + ansi.BlueLight("{}") + ansi.Green(" {");
- titleBodyFormate = "["+ansi.Red("{}")+"]\t\t"+ansi.Green("{}"); // "[{}]\t\t{}";
- titleFotterFormate = "[" + ansi.Red("{}") + "]\t\t" + ansi.GrayLight("}");
+ messageFormate = "["+ansi.red("{}")+"]\t"+ansi.blueLight("{}");
+ titleHeadFormate = "[" + ansi.red("{}") + "]\t" + ansi.blueLight("{}") + ansi.green(" {");
+ titleBodyFormate = "["+ansi.red("{}")+"]\t\t"+ansi.green("{}"); // "[{}]\t\t{}";
+ titleFotterFormate = "[" + ansi.red("{}") + "]\t\t" + ansi.grayLight("}");
}else {
messageFormate = "[{}]\t{}";
titleHeadFormate = "[{}]\t{} {";
diff --git a/src/main/java/org/injector/tools/log/impl/LogOutRunable.java b/src/main/java/org/injector/tools/log/impl/LogOutRunable.java
index b36eb0b..70673ff 100644
--- a/src/main/java/org/injector/tools/log/impl/LogOutRunable.java
+++ b/src/main/java/org/injector/tools/log/impl/LogOutRunable.java
@@ -24,10 +24,10 @@ public class LogOutRunable implements Debugger, Runnable{
public void setColourFormate(boolean useansicolour) {
if(useansicolour) {
- messageFormate = "["+ansi.Red("{}")+"]\t"+ansi.BlueLight("{}");
- titleHeadFormate = "[" + ansi.Red("{}") + "]\t" + ansi.BlueLight("{}") + ansi.Green(" {");
- titleBodyFormate = "["+ansi.Red("{}")+"]\t\t"+ansi.Green("{}"); // "[{}]\t\t{}";
- titleFotterFormate = "[" + ansi.Red("{}") + "]\t " + ansi.Green("}");
+ messageFormate = "["+ansi.red("{}")+"]\t"+ansi.blueLight("{}");
+ titleHeadFormate = "[" + ansi.red("{}") + "]\t" + ansi.blueLight("{}") + ansi.green(" {");
+ titleBodyFormate = "["+ansi.red("{}")+"]\t\t"+ansi.green("{}"); // "[{}]\t\t{}";
+ titleFotterFormate = "[" + ansi.red("{}") + "]\t " + ansi.green("}");
}else {
messageFormate = "[{}]\t{}";
titleHeadFormate = "[{}]\t{} {";
diff --git a/src/main/java/org/injector/tools/lunch/InjectionTools.java b/src/main/java/org/injector/tools/lunch/InjectionTools.java
index 1326bfd..c1c365c 100644
--- a/src/main/java/org/injector/tools/lunch/InjectionTools.java
+++ b/src/main/java/org/injector/tools/lunch/InjectionTools.java
@@ -75,9 +75,9 @@ private void StartJschSSHService(SSHConfig config) {
jschSSHClient = new JschSSHClient(config);
// jschSSHClient.addSuccessListener(jschSSHClient.getMonitorSpeed()::start);
// jschSSHClient.start();
-// executor.submit(jschSSHClient.getMonitorSpeed()::start);
+ executor.submit(jschSSHClient.getMonitorSpeed()::start);
executor.submit(jschSSHClient::connectHost);
- jschSSHClient.addSuccessListener(()-> executor.submit(jschSSHClient.getMonitorSpeed()::start));
+// jschSSHClient.addSuccessListener(()-> executor.submit(jschSSHClient.getMonitorSpeed()::start));
}
diff --git a/src/main/java/org/injector/tools/lunch/Lunch.java b/src/main/java/org/injector/tools/lunch/Lunch.java
index 5fae222..85f0f9e 100644
--- a/src/main/java/org/injector/tools/lunch/Lunch.java
+++ b/src/main/java/org/injector/tools/lunch/Lunch.java
@@ -1,5 +1,6 @@
package org.injector.tools.lunch;
+import org.fusesource.jansi.AnsiConsole;
import org.injector.tools.config.Config;
import org.injector.tools.config.utils.ManagConfig;
import org.injector.tools.log.Logger;
@@ -9,6 +10,8 @@
public class Lunch {
public static void main(String[] args) {
+
+ AnsiConsole.systemInstall();
checkArgs(args);
initApp();
@@ -55,7 +58,7 @@ public static void initApp() {
R.INIT_CHANGES();
if(ManagConfig.getAppConfig().isDebuggable())
// System.out.println(ManagConfig.toFormatConfig());
- System.out.println(Ansi.Green + ManagConfig.formatLimitConfig() + Ansi.ResetAllAttributes);
+ System.out.println(Ansi.Green + ManagConfig.formatLimitConfig() + Ansi.Reset);
// Logger.debug(Lunch.class,"", ManagConfig.formatLimitConfig());
diff --git a/src/main/java/org/injector/tools/proxy/handler/DirectCloseHandler.java b/src/main/java/org/injector/tools/proxy/handler/DirectCloseHandler.java
index 3d3fa58..a804596 100644
--- a/src/main/java/org/injector/tools/proxy/handler/DirectCloseHandler.java
+++ b/src/main/java/org/injector/tools/proxy/handler/DirectCloseHandler.java
@@ -32,11 +32,14 @@ public void startHandler() {
connectToProxyServer();
writePayloadToRemoteHost();
- Future> future = getService().submit(this::transferDataFromProxyToClient);
+ registerTransferDataFromClientToProxy();
+ Future> future = getService().submit(this::registerTransferDataFromProxyToClient);
checkStopThreadPool(future);
}
+
- protected void transferDataFromProxyToClient() {
+ @Override
+ protected void registerTransferDataFromProxyToClient() {
Logger.debug(getClass(), "Start transfer Data From Proxy To Client");
ByteBuffer buffer = ByteBuffer.allocate(8 * 1024);
@@ -62,6 +65,7 @@ protected void transferDataFromProxyToClient() {
debugSocketsChannel(e);
fireErrorListener();
} catch (InterruptedException e) {
+ Logger.debug(getClass(), e.getClass().getSimpleName(), e.getMessage());
}
}
@@ -80,8 +84,7 @@ public void checkStopThreadPool(Future> future) {
closeConnection();
} catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Logger.debug(getClass(), e.getClass().getSimpleName(), e.getMessage());
}
}
diff --git a/src/main/java/org/injector/tools/proxy/handler/ProxyHandler.java b/src/main/java/org/injector/tools/proxy/handler/ProxyHandler.java
index 49b6719..66d7f75 100644
--- a/src/main/java/org/injector/tools/proxy/handler/ProxyHandler.java
+++ b/src/main/java/org/injector/tools/proxy/handler/ProxyHandler.java
@@ -134,6 +134,24 @@ protected void registerChannelToSelector() {
Logger.debug(getClass(), "registerChannelToSelector", e.getMessage());
}
}
+
+ protected void registerTransferDataFromClientToProxy() {
+ try {
+ client.configureBlocking(false);
+ client.register(getSelector(), SelectionKey.OP_READ, remote);
+ } catch (Exception e) {
+ Logger.debug(getClass(), e.getClass().getSimpleName(), e.getMessage());
+ }
+ }
+
+ protected void registerTransferDataFromProxyToClient() {
+ try {
+ remote.configureBlocking(false);
+ remote.register(getSelector(), SelectionKey.OP_READ, client);
+ } catch (Exception e) {
+ Logger.debug(getClass(), e.getClass().getSimpleName(), e.getMessage());
+ }
+ }
protected void connectToProxyServer() {
try {
@@ -204,6 +222,9 @@ protected void writePayloadToRemoteHost() {
}
}
+
+
+
diff --git a/src/main/java/org/injector/tools/speed/TerminalNetworkMonitor.java b/src/main/java/org/injector/tools/speed/TerminalNetworkMonitor.java
index 7359d03..d6bd303 100644
--- a/src/main/java/org/injector/tools/speed/TerminalNetworkMonitor.java
+++ b/src/main/java/org/injector/tools/speed/TerminalNetworkMonitor.java
@@ -7,69 +7,133 @@
public class TerminalNetworkMonitor extends NetworkMonitorSpeed {
// ↓↑⇔⇧⇩⇅⛗⌚▽△▲▼⬆⬇⬌
-
- @Override
- public void run() {
- String summery = "\n";
- Ansi ansi = new Ansi();
- long hh, mm, ss;
- while (showSpeed ) {
- hh = ((timer/60)/60)%60 ;
- mm = (timer/60)%60;
- ss = timer%60;
-
- summery = "";
- summery += Ansi.EraseLine + "\n" ;
- summery += Ansi.EraseLine + "\n" ;
- summery += Ansi.EraseLine ;//+ ANSI.SaveCursor;
-
-// summery += "\r ";
-
- summery += ansi.BlueLight( Ansi.Bright + "⌚ ");
-
-// summery += ANSI.Green + ANSI.Underscore;
-// summery += (hh != 0 ? hh+"" : "00") + ':' ;
-// summery += (mm != 0 ? mm+"" : "00") + ':' + ss ;
-// summery += ANSI.ResetAllAttributes;
+
+ @Override
+ public void run() {
+ String summery = "\n";
+ Ansi ansi = new Ansi();
+ long hh, mm, ss;
+ while (showSpeed ) {
+ hh = ((timer/60)/60)%60 ;
+ mm = (timer/60)%60;
+ ss = timer%60;
+
+ summery = "";
+ summery += Ansi.EraseLine + "\n" ;
+ summery += Ansi.EraseLine + "\n" ;
+ summery += Ansi.EraseLine ;//+ ANSI.SaveCursor;
+
+// summery += "\r ";
+
+ summery += ansi.blueLight( ansi.Dim( "⌚ "));
+
+// summery += ANSI.Green + ANSI.Underscore;
+// summery += (hh != 0 ? hh+"" : "00") + ':' ;
+// summery += (mm != 0 ? mm+"" : "00") + ':' + ss ;
+// summery += ANSI.ResetAllAttributes;
- summery += "[";
- summery += Ansi.Green + Ansi.Underscore;
- summery += (hh > 9 ? hh+"" : "0"+hh ) + ':' ;
- summery += (mm > 9 ? mm+"" : "0"+mm ) + ':' ;
- summery += (ss > 9 ? ss+"" : "0"+ss ) ;
- summery += Ansi.ResetAllAttributes;
+ summery += "[";
+ summery += ansi.green(ansi.Underscore(
+ (hh > 9 ? hh+"" : "0"+hh ) + ':' +
+ (mm > 9 ? mm+"" : "0"+mm ) + ':' +
+ (ss > 9 ? ss+"" : "0"+ss )
+ ));
summery += "]";
-
- //summery += ansi.BlueLight( " ⇔ ⇅ [ ");
- summery += ansi.BlueLight( " ⇔ ⇅");
- summery += " [ ";
-
- summery += ansi.Yellow(Ansi.Bright +"▼ "+Ansi.BoldOff + Utils.getStringWidth( getTotalReceiveMB(), 15));
- summery += ansi.RedLight(Ansi.Bright+"▲ "+Ansi.BoldOff + Utils.getStringWidth(getTotalSendMB() , 15));
- summery += ansi.RedLight(Ansi.Bright + "↑ "+Ansi.BoldOff + Utils.getStringWidth( getSpeedTCPSendMB() + "/s", 15));
- summery += ansi.Blue(Ansi.Bright + "↓ "+Ansi.BoldOff +Utils.getStringWidth( getSpeedTCPReceiveMB() + "/s", 15));
-
- //summery += ansi.BlueLight( " ] ");
- summery += " ] ";
-
- summery += '\n' + Ansi.CursorUp;
-
-// summery += ANSI.UnsaveCursor;
- summery += Ansi.CursorUp;
-// summery += ANSI.EraseLine;
- summery += Ansi.CursorUp;
-// summery += ANSI.EraseLine;
+
+ //summery += ansi.BlueLight( " ⇔ ⇅ [ ");
+ summery += ansi.blueLight( " ⇔ ⇅");
+ summery += " [ ";
+
+ summery += ansi.yellow(Ansi.Dim +"▼ "+Ansi.BoldOff + Utils.getStringWidth( getTotalReceiveMB(), 15));
+ summery += ansi.redLight(Ansi.Dim+"▲ "+Ansi.BoldOff + Utils.getStringWidth(getTotalSendMB() , 15));
+ summery += ansi.redLight(Ansi.Dim + "↑ "+Ansi.BoldOff + Utils.getStringWidth( getSpeedTCPSendMB() + "/s", 15));
+ summery += ansi.blue(Ansi.Dim + "↓ "+Ansi.BoldOff +Utils.getStringWidth( getSpeedTCPReceiveMB() + "/s", 15));
+
+ //summery += ansi.BlueLight( " ] ");
+ summery += " ] ";
+
+ summery += '\n' + Ansi.CursorUp;
+
+// summery += ANSI.UnsaveCursor;
+ summery += Ansi.CursorUp;
+// summery += ANSI.EraseLine;
+ summery += Ansi.CursorUp;
+// summery += ANSI.EraseLine;
- System.out.print(summery);
+ System.out.print(summery);
- demondSpeedNow();
- timer++;
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
+ demondSpeedNow();
+ timer++;
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+// @Override
+// public void run() {
+// String summery = "\n";
+// Ansi ansi = new Ansi();
+// long hh, mm, ss;
+// while (showSpeed ) {
+// hh = ((timer/60)/60)%60 ;
+// mm = (timer/60)%60;
+// ss = timer%60;
+//
+// summery = "";
+// summery += Ansi.EraseLine + "\n" ;
+// summery += Ansi.EraseLine + "\n" ;
+// summery += Ansi.EraseLine ;//+ ANSI.SaveCursor;
+//
+//// summery += "\r ";
+//
+// summery += ansi.BlueLight( Ansi.Bright + "⌚ ");
+//
+//// summery += ANSI.Green + ANSI.Underscore;
+//// summery += (hh != 0 ? hh+"" : "00") + ':' ;
+//// summery += (mm != 0 ? mm+"" : "00") + ':' + ss ;
+//// summery += ANSI.ResetAllAttributes;
+//
+// summery += "[";
+// summery += Ansi.Green + Ansi.Underscore;
+// summery += (hh > 9 ? hh+"" : "0"+hh ) + ':' ;
+// summery += (mm > 9 ? mm+"" : "0"+mm ) + ':' ;
+// summery += (ss > 9 ? ss+"" : "0"+ss ) ;
+// summery += Ansi.ResetAllAttributes;
+// summery += "]";
+//
+// //summery += ansi.BlueLight( " ⇔ ⇅ [ ");
+// summery += ansi.BlueLight( " ⇔ ⇅");
+// summery += " [ ";
+//
+// summery += ansi.Yellow(Ansi.Bright +"▼ "+Ansi.BoldOff + Utils.getStringWidth( getTotalReceiveMB(), 15));
+// summery += ansi.RedLight(Ansi.Bright+"▲ "+Ansi.BoldOff + Utils.getStringWidth(getTotalSendMB() , 15));
+// summery += ansi.RedLight(Ansi.Bright + "↑ "+Ansi.BoldOff + Utils.getStringWidth( getSpeedTCPSendMB() + "/s", 15));
+// summery += ansi.Blue(Ansi.Bright + "↓ "+Ansi.BoldOff +Utils.getStringWidth( getSpeedTCPReceiveMB() + "/s", 15));
+//
+// //summery += ansi.BlueLight( " ] ");
+// summery += " ] ";
+//
+// summery += '\n' + Ansi.CursorUp;
+//
+//// summery += ANSI.UnsaveCursor;
+// summery += Ansi.CursorUp;
+//// summery += ANSI.EraseLine;
+// summery += Ansi.CursorUp;
+//// summery += ANSI.EraseLine;
+//
+// System.out.print(summery);
+//
+// demondSpeedNow();
+// timer++;
+// try {
+// Thread.sleep(1000);
+// } catch (InterruptedException e) {
+// e.printStackTrace();
+// }
+// }
+// }
}
diff --git a/src/main/java/org/injector/tools/speed/net/NetworkMonitor.java b/src/main/java/org/injector/tools/speed/net/NetworkMonitor.java
index f6e2d2e..133baeb 100644
--- a/src/main/java/org/injector/tools/speed/net/NetworkMonitor.java
+++ b/src/main/java/org/injector/tools/speed/net/NetworkMonitor.java
@@ -60,6 +60,13 @@ public long getSendUDP() {
return sendUDP;
}
+ public void resetSpeedFlags() {
+ receiveTCP = 0;
+ receiveUDP = 0;
+ sendTCP = 0;
+ sendUDP = 0;
+ }
+
@Override
public String toString() {
return "NetworkMonitor{" + "sendTCP=" + sendTCP + ", receiveTCP=" + receiveTCP + ", sendUDP=" + sendUDP
diff --git a/src/main/java/org/injector/tools/ssh/trilead/SSHForwardClient.java b/src/main/java/org/injector/tools/ssh/trilead/SSHForwardClient.java
index b0ebc50..5234391 100644
--- a/src/main/java/org/injector/tools/ssh/trilead/SSHForwardClient.java
+++ b/src/main/java/org/injector/tools/ssh/trilead/SSHForwardClient.java
@@ -236,7 +236,7 @@ public boolean verifyServerHostKey(String hostname, int port, String serverHostK
Logger.debug(getClass(),"Finish authenticate With Password.");
}
else {
- Logger.debug(getClass(),"Connection is "+ Ansi.Red +" not authenticated." + Ansi.ResetAllAttributes);
+ Logger.debug(getClass(),"Connection is " + Ansi.Red +" not authenticated." + Ansi.Reset);
fireErrorListener();
fireCompleteListener();
return;