Skip to content

Commit ae463e9

Browse files
committed
some fixup:
- target index may change - move callback - onClick get called from main Thread
1 parent de07e3f commit ae463e9

3 files changed

Lines changed: 51 additions & 45 deletions

File tree

cSploit/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,4 +514,6 @@
514514
<string name="new_ruby_found">A new version for ruby is available, do you want to upgrade ?</string>
515515
<string name="new_msf_found">A new msf version is available, do you want to upgrade ?</string>
516516
<string name="msf_status">MetaSploit Status</string>
517+
<string name="mitm_ss_select_target_title">Select target</string>
518+
<string name="mitm_ss_select_target_prompt">Select %s ?</string>
517519
</resources>

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1029,10 +1029,6 @@ public static Target getTarget(int index){
10291029
return mTargets.get(index);
10301030
}
10311031

1032-
public static int getTargetPosition (Target t) {
1033-
return mTargets.indexOf(t);
1034-
}
1035-
10361032
public static boolean hasTarget(Target target){
10371033
return mTargets.contains(target);
10381034
}
@@ -1041,6 +1037,14 @@ public static void setCurrentTarget(int index){
10411037
mCurrentTarget = index;
10421038
}
10431039

1040+
public static void setCurrentTarget(Target target) {
1041+
int index = mTargets.indexOf(target);
1042+
if(index != -1)
1043+
setCurrentTarget(index);
1044+
else
1045+
Logger.error("target '" + target + "' not found");
1046+
}
1047+
10441048
public static Target getCurrentTarget(){
10451049
return getTarget(mCurrentTarget);
10461050
}

cSploit/src/org/csploit/android/plugins/mitm/Sniffer.java

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
import java.util.ArrayList;
5555
import java.util.Collections;
5656

57-
public class Sniffer extends AppCompatActivity
57+
public class Sniffer extends AppCompatActivity implements AdapterView.OnItemClickListener
5858
{
5959
private static final String[] SORT = {
6060
"Bandwidth ↓",
@@ -296,52 +296,18 @@ public void onCreate(Bundle savedInstanceState){
296296
mSpoofSession = new SpoofSession(false, false, null, null);
297297

298298
mSortSpinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, SORT));
299-
mSortSpinner.setOnItemSelectedListener(new OnItemSelectedListener(){
300-
public void onItemSelected(AdapterView<?> adapter, View view, int position, long id){
299+
mSortSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
300+
public void onItemSelected(AdapterView<?> adapter, View view, int position, long id) {
301301
mSortType = position;
302302
}
303303

304-
public void onNothingSelected(AdapterView<?> arg0){
304+
public void onNothingSelected(AdapterView<?> arg0) {
305305
}
306306
});
307307

308308
mListView.setAdapter(mAdapter);
309309

310-
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
311-
@Override
312-
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
313-
final Target t = System.getTargetByAddress(mAdapter.getByPosition(position).mAddress);
314-
315-
new ConfirmDialog("Select target", "Select " + t.getAddress().getHostAddress() + "?", Sniffer.this, new ConfirmDialog.ConfirmDialogListener() {
316-
@Override
317-
public void onConfirm() {
318-
new Thread(new Runnable() {
319-
@Override
320-
public void run() {
321-
setStoppedState();
322-
323-
startActivity(new Intent(Sniffer.this,
324-
ActionActivity.class));
325-
326-
overridePendingTransition(R.anim.slide_in_left,
327-
R.anim.slide_out_left);
328-
}
329-
}).start();
330-
331-
System.setCurrentTarget(System.getTargetPosition(t));
332-
Toast.makeText(Sniffer.this,
333-
getString(R.string.selected_) + System.getCurrentTarget(),
334-
Toast.LENGTH_SHORT).show();
335-
}
336-
337-
@Override
338-
public void onCancel() {
339-
}
340-
}).show();
341-
342-
343-
}
344-
});
310+
mListView.setOnItemClickListener(this);
345311

346312
mSniffToggleButton.setOnClickListener(new View.OnClickListener(){
347313
@Override
@@ -370,6 +336,40 @@ public void onCancel(){
370336
}).show();
371337
}
372338

339+
@Override
340+
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
341+
String address = mAdapter.getByPosition(position).mAddress;
342+
final Target t = System.getTargetByAddress(address);
343+
344+
if (t == null)
345+
return;
346+
347+
new ConfirmDialog(getString(R.string.mitm_ss_select_target_title),
348+
String.format(getString(R.string.mitm_ss_select_target_prompt), address),
349+
Sniffer.this, new ConfirmDialog.ConfirmDialogListener() {
350+
@Override
351+
public void onConfirm() {
352+
System.setCurrentTarget(t);
353+
354+
setStoppedState();
355+
356+
Toast.makeText(Sniffer.this,
357+
getString(R.string.selected_) + System.getCurrentTarget(),
358+
Toast.LENGTH_SHORT).show();
359+
360+
startActivity(new Intent(Sniffer.this,
361+
ActionActivity.class));
362+
363+
overridePendingTransition(R.anim.slide_in_left,
364+
R.anim.slide_out_left);
365+
}
366+
367+
@Override
368+
public void onCancel() {
369+
}
370+
}).show();
371+
}
372+
373373
public synchronized int getSortType(){
374374
return mSortType;
375375
}
@@ -404,9 +404,9 @@ public void run() {
404404
mSniffToggleButton.setChecked(false);
405405
}
406406
});
407-
}
407+
}
408408

409-
private void setSpoofErrorState(final String error){
409+
private void setSpoofErrorState(final String error){
410410
Sniffer.this.runOnUiThread(new Runnable(){
411411
@Override
412412
public void run(){

0 commit comments

Comments
 (0)