Skip to content

Commit 7425363

Browse files
committed
move duplicate code into reset()
call NetworkRadar#onNewTargetFound for 3 initial targets call NetworkRadar#onNewTargetFound for each added target
1 parent d9eaf6a commit 7425363

2 files changed

Lines changed: 43 additions & 50 deletions

File tree

cSploit/src/org/csploit/android/core/System.java

Lines changed: 28 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
import org.csploit.android.net.metasploit.Payload;
5757
import org.csploit.android.net.metasploit.RPCClient;
5858
import org.csploit.android.net.metasploit.Session;
59+
import org.csploit.android.services.Services;
5960
import org.csploit.android.tools.ToolBox;
6061

6162
import java.io.BufferedReader;
@@ -189,21 +190,7 @@ public static void init(Context context) throws Exception{
189190
MSF_RPC_PORT = 55553;
190191
}
191192

192-
// initialize network data at the end
193-
mNetwork = new Network(mContext);
194-
195-
Target network = new Target(mNetwork),
196-
gateway = new Target(mNetwork.getGatewayAddress(), mNetwork.getGatewayHardware()),
197-
device = new Target(mNetwork.getLocalAddress(), mNetwork.getLocalHardware());
198-
199-
gateway.setAlias(mNetwork.getSSID());
200-
device.setAlias(android.os.Build.MODEL);
201-
202-
mTargets.add(network);
203-
mTargets.add(gateway);
204-
mTargets.add(device);
205-
206-
mInitialized = true;
193+
uncaughtReloadNetworkMapping();
207194

208195
ThreadHelper.getSharedExecutor().execute(new Runnable() {
209196
@Override
@@ -349,23 +336,7 @@ public static void initCore() throws DaemonException, SuException {
349336

350337
public static void reloadNetworkMapping(){
351338
try{
352-
mNetwork = new Network(mContext);
353-
354-
Target network = new Target(mNetwork),
355-
gateway = new Target(mNetwork.getGatewayAddress(), mNetwork.getGatewayHardware()),
356-
device = new Target(mNetwork.getLocalAddress(), mNetwork.getLocalHardware());
357-
358-
gateway.setAlias(mNetwork.getSSID());
359-
device.setAlias(android.os.Build.MODEL);
360-
361-
synchronized (mTargets) {
362-
mTargets.clear();
363-
mTargets.add(network);
364-
mTargets.add(gateway);
365-
mTargets.add(device);
366-
}
367-
368-
mInitialized = true;
339+
uncaughtReloadNetworkMapping();
369340
}
370341
catch(NoRouteToHostException nrthe){
371342
// swallow bitch
@@ -375,6 +346,14 @@ public static void reloadNetworkMapping(){
375346
}
376347
}
377348

349+
private static void uncaughtReloadNetworkMapping() throws UnknownHostException, SocketException {
350+
mNetwork = new Network(mContext);
351+
352+
reset();
353+
354+
mInitialized = true;
355+
}
356+
378357
public static boolean checkNetworking(final Activity current){
379358
if(!Network.isWifiConnected(mContext)){
380359

@@ -917,18 +896,26 @@ else if(name.endsWith(".tiff"))
917896
return type;
918897
}
919898

920-
public static void reset() throws SocketException{
899+
public static void reset() {
921900
mCurrentTarget = null;
922901

923902
synchronized (mTargets) {
924903
mTargets.clear();
925904

926-
// local network
927-
mTargets.add(new Target(System.getNetwork()));
928-
// network gateway
929-
mTargets.add(new Target(System.getNetwork().getGatewayAddress(), System.getNetwork().getGatewayHardware()));
930-
// device network address
931-
mTargets.add(new Target(System.getNetwork().getLocalAddress(), System.getNetwork().getLocalHardware()));
905+
Target network = new Target(mNetwork),
906+
gateway = new Target(mNetwork.getGatewayAddress(), mNetwork.getGatewayHardware()),
907+
device = new Target(mNetwork.getLocalAddress(), mNetwork.getLocalHardware());
908+
909+
gateway.setAlias(mNetwork.getSSID());
910+
device.setAlias(android.os.Build.MODEL);
911+
912+
mTargets.add(network);
913+
mTargets.add(gateway);
914+
mTargets.add(device);
915+
916+
for(Target t : mTargets) {
917+
Services.getNetworkRadar().onNewTargetFound(t);
918+
}
932919
}
933920
}
934921

@@ -1004,12 +991,13 @@ public static boolean addOrderedTarget(Target target){
1004991
for (int i = 0; i < mTargets.size(); i++) {
1005992
if (mTargets.get(i).comesAfter(target)) {
1006993
mTargets.add(i, target);
994+
Services.getNetworkRadar().onNewTargetFound(target);
1007995
return true;
1008996
}
1009997
}
1010998

1011999
mTargets.add(target);
1012-
1000+
Services.getNetworkRadar().onNewTargetFound(target);
10131001
return true;
10141002
}
10151003
}

cSploit/src/org/csploit/android/services/NetworkRadar.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.csploit.android.core.Logger;
99
import org.csploit.android.core.System;
1010
import org.csploit.android.core.ChildManager;
11+
import org.csploit.android.helpers.ThreadHelper;
1112
import org.csploit.android.net.Endpoint;
1213
import org.csploit.android.net.Network;
1314
import org.csploit.android.net.Target;
@@ -68,12 +69,20 @@ public void buildMenuItem(MenuItem item) {
6869
item.setEnabled(System.getTools().networkRadar.isEnabled());
6970
}
7071

71-
private void onNewHostFound(Target target) {
72-
try {
73-
System.getTools().nmap.synScan(target, new ScanReceiver(target));
74-
} catch (ChildManager.ChildNotStartedException e) {
75-
System.errorLogging(e);
76-
}
72+
public void onNewTargetFound(final Target target) {
73+
if(target.getType() == Target.Type.NETWORK)
74+
return;
75+
76+
ThreadHelper.getSharedExecutor().execute(new Runnable() {
77+
@Override
78+
public void run() {
79+
try {
80+
System.getTools().nmap.synScan(target, new ScanReceiver(target));
81+
} catch (ChildManager.ChildNotStartedException e) {
82+
System.errorLogging(e);
83+
}
84+
}
85+
});
7786
}
7887

7988
private class Receiver extends HostReceiver {
@@ -115,10 +124,6 @@ public void onHostFound(byte[] macAddress, InetAddress ipAddress, String name) {
115124
if(notify) {
116125
sendIntent(NRDR_CHANGED);
117126
}
118-
119-
if(justFound) {
120-
onNewHostFound(t);
121-
}
122127
}
123128

124129
@Override

0 commit comments

Comments
 (0)