Browse Source

udp port redirection

Fabio Arnold 9 years ago
parent
commit
611b15165a

+ 5 - 1
src/de/tudarmstadt/informatik/hostage/commons/HelperUtils.java

@@ -34,6 +34,7 @@ import android.text.TextUtils;
 import de.tudarmstadt.informatik.hostage.logging.Record;
 import de.tudarmstadt.informatik.hostage.logging.formatter.TraCINgFormatter;
 import de.tudarmstadt.informatik.hostage.net.MySSLSocketFactory;
+import de.tudarmstadt.informatik.hostage.system.Device;
 
 /**
  * Helper class with some static methods for general usage.
@@ -429,8 +430,11 @@ public final class HelperUtils {
 		return activeNetworkInfo != null && activeNetworkInfo.isConnected();
 	}
 
-    public static void redirectPort(int From, int To) throws IOException {
+    public static boolean redirectPort(int From, int To) throws IOException {
+        boolean success = Device.isRooted();
         new ProcessBuilder("su","-c","iptables -t nat -A PREROUTING -p udp --dport "+From+" -j REDIRECT --to-ports "+To).start();
         new ProcessBuilder("su","-c","iptables -t nat -A OUTPUT -p udp --dport "+To+" -j REDIRECT --to-ports "+From).start();
+
+        return success;
     }
 }

+ 6 - 5
src/de/tudarmstadt/informatik/hostage/protocol/smbutils/NMB.java

@@ -24,8 +24,10 @@ public class NMB extends Thread {
 	private String ip;
 	private String[] ipParts;
 	private InetAddress dst;
-	private int nbnsPort = 1024;
-	private int nbdsPort = 1025;
+	private final int nbnsPort = 137;
+	private final int nbdsPort = 138;
+    private final int nbnsRedirPort = 34897;
+    private final int nbdsRedirPort = 34897;
 	private String username;
 	private String workgroup;
 	private NBNS nbns;
@@ -231,9 +233,8 @@ public class NMB extends Thread {
 			nbdsSocket = factory.createDatagramSocket(nbdsPort);
 
             // port forwarding
-
-            HelperUtils.redirectPort(nbnsPort,1024);
-            HelperUtils.redirectPort(nbdsPort,1025);
+            HelperUtils.redirectPort(nbnsPort, nbnsRedirPort);
+            HelperUtils.redirectPort(nbdsPort, nbdsRedirPort);
 
 		} catch (SocketException e) {
 			e.printStackTrace();