Skip to content

Commit 13678a9

Browse files
committed
Merge #360 into develop
Conflicts: cSploit/res/values/strings.xml
2 parents 31fdb3b + ae463e9 commit 13678a9

3 files changed

Lines changed: 63 additions & 12 deletions

File tree

cSploit/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,4 +522,6 @@
522522
<string name="msf_rank_good">Good</string>
523523
<string name="msf_rank_great">Great</string>
524524
<string name="msf_rank_excellent">Excellent</string>
525+
<string name="mitm_ss_select_target_title">Select target</string>
526+
<string name="mitm_ss_select_target_prompt">Select %s ?</string>
525527
</resources>

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,6 +1045,14 @@ public static void setCurrentTarget(int index){
10451045
mCurrentTarget = index;
10461046
}
10471047

1048+
public static void setCurrentTarget(Target target) {
1049+
int index = mTargets.indexOf(target);
1050+
if(index != -1)
1051+
setCurrentTarget(index);
1052+
else
1053+
Logger.error("target '" + target + "' not found");
1054+
}
1055+
10481056
public static Target getCurrentTarget(){
10491057
return getTarget(mCurrentTarget);
10501058
}

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

Lines changed: 53 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
package org.csploit.android.plugins.mitm;
2020

2121
import android.content.Context;
22+
import android.content.Intent;
2223
import android.content.SharedPreferences;
2324
import android.os.Bundle;
2425
import android.support.v7.app.AppCompatActivity;
2526
import android.text.Html;
2627
import android.view.LayoutInflater;
2728
import android.view.MenuItem;
2829
import android.view.View;
29-
import android.view.View.OnClickListener;
3030
import android.view.ViewGroup;
3131
import android.widget.AdapterView;
3232
import android.widget.AdapterView.OnItemSelectedListener;
@@ -38,12 +38,12 @@
3838
import android.widget.Toast;
3939
import android.widget.ToggleButton;
4040

41+
import org.csploit.android.ActionActivity;
4142
import org.csploit.android.R;
4243
import org.csploit.android.core.Child;
4344
import org.csploit.android.core.ChildManager;
4445
import org.csploit.android.core.System;
4546
import org.csploit.android.gui.dialogs.ConfirmDialog;
46-
import org.csploit.android.gui.dialogs.ConfirmDialog.ConfirmDialogListener;
4747
import org.csploit.android.gui.dialogs.ErrorDialog;
4848
import org.csploit.android.net.Target;
4949
import org.csploit.android.plugins.mitm.SpoofSession.OnSessionReadyListener;
@@ -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,18 +296,20 @@ 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-
mSniffToggleButton.setOnClickListener(new OnClickListener(){
310+
mListView.setOnItemClickListener(this);
311+
312+
mSniffToggleButton.setOnClickListener(new View.OnClickListener(){
311313
@Override
312314
public void onClick(View v){
313315
if(mRunning){
@@ -319,7 +321,7 @@ public void onClick(View v){
319321
}
320322
);
321323

322-
new ConfirmDialog( getString(R.string.file_output), getString(R.string.question_save_to_pcap), this, new ConfirmDialogListener(){
324+
new ConfirmDialog( getString(R.string.file_output), getString(R.string.question_save_to_pcap), this, new ConfirmDialog.ConfirmDialogListener(){
323325
@Override
324326
public void onConfirm(){
325327
mDumpToFile = true;
@@ -334,6 +336,40 @@ public void onCancel(){
334336
}).show();
335337
}
336338

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+
337373
public synchronized int getSortType(){
338374
return mSortType;
339375
}
@@ -357,12 +393,17 @@ private void setStoppedState(){
357393
mTcpdumpProcess.kill();
358394
mTcpdumpProcess = null;
359395
}
360-
mSpoofSession.stop();
396+
Sniffer.this.runOnUiThread(new Runnable() {
397+
@Override
398+
public void run() {
399+
mSpoofSession.stop();
361400

362-
mSniffProgress.setVisibility(View.INVISIBLE);
401+
mSniffProgress.setVisibility(View.INVISIBLE);
363402

364-
mRunning = false;
365-
mSniffToggleButton.setChecked(false);
403+
mRunning = false;
404+
mSniffToggleButton.setChecked(false);
405+
}
406+
});
366407
}
367408

368409
private void setSpoofErrorState(final String error){

0 commit comments

Comments
 (0)