Browse Source

worked at services fragment

Daniel Lazar 10 years ago
parent
commit
dc03cd0f94

+ 22 - 0
native/Makefile~

@@ -0,0 +1,22 @@
+arm: CC = arm-linux-androideabi-gcc
+x86: CC = i686-linux-android-gcc
+mips: CC = mipsel-linux-android-gcc
+CFLAGS = -Wall -g
+LDFLAGS = -llog
+SRC = p.c
+OBJ = $(SRC:.c=.o)
+EXE = p
+
+arm x86 mips: $(SRC) $(EXE)
+
+$(EXE): $(OBJ)
+	$(CC) -o $@ $^ $(LDFLAGS)
+
+%.o: %.c
+	$(CC) -o $@ -c $< $(CFLAGS)
+
+clean:
+	rm -f *.o $(EXE)
+
+install:
+	adb push p /data/local

+ 6 - 0
res/drawable/services_circle_red.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<shape android:shape="oval" xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/holo_red" />
+
+</shape>

+ 6 - 0
res/drawable/services_circle_yellow.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<shape android:shape="oval" xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/holo_yellow" />
+
+</shape>

+ 26 - 23
src/de/tudarmstadt/informatik/hostage/ui2/adapter/ServicesListAdapter.java

@@ -1,28 +1,24 @@
 package de.tudarmstadt.informatik.hostage.ui2.adapter;
 
+
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.SharedPreferences;
 import android.os.Build;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
 import android.widget.CompoundButton;
-import android.widget.ImageButton;
-import android.widget.ImageView;
-import android.widget.ListView;
 import android.widget.Switch;
 import android.widget.TextView;
-import android.widget.ViewSwitcher;
 
-import java.util.HashMap;
 import java.util.List;
 
 import de.tudarmstadt.informatik.hostage.R;
 import de.tudarmstadt.informatik.hostage.commons.HelperUtils;
 import de.tudarmstadt.informatik.hostage.ui2.activity.MainActivity;
-import de.tudarmstadt.informatik.hostage.ui2.fragment.ServicesFragment;
 import de.tudarmstadt.informatik.hostage.ui2.model.ServicesListItem;
 
 /**
@@ -30,6 +26,7 @@ import de.tudarmstadt.informatik.hostage.ui2.model.ServicesListItem;
  */
 public class ServicesListAdapter extends ArrayAdapter<ServicesListItem> {
 
+	private SharedPreferences mConnectionInfo;
 
 	private class ViewHolder {
 			public TextView protocolName;
@@ -78,7 +75,6 @@ public class ServicesListAdapter extends ArrayAdapter<ServicesListItem> {
 			holder.circle = rowView.findViewById(R.id.services_circle);
 			rowView.setTag(holder);
 
-
 		} else {
 			holder = (ViewHolder) rowView.getTag();
 		}
@@ -94,15 +90,15 @@ public class ServicesListAdapter extends ArrayAdapter<ServicesListItem> {
 							ServicesListItem item = (ServicesListItem) buttonView.getTag();
 									System.out
 											.println("Protokoll: " + item.protocol);
-							System.out.println("Position: " + position);
 				if(!HelperUtils.isWifiConnected(mActivity)){
 					new AlertDialog.Builder(mActivity)
 							.setTitle("Information")
 							.setMessage("You are not connected to a WiFi network. \n\nPlease connect to one, before trying to activate HosTaGe.")
-							.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
-								public void onClick(DialogInterface dialog, int which) {
-								}
-							})
+							.setPositiveButton(android.R.string.ok,
+									new DialogInterface.OnClickListener() {
+										public void onClick(DialogInterface dialog, int which) {
+										}
+									})
 							.setIcon(android.R.drawable.ic_dialog_info)
 							.show();
 
@@ -126,7 +122,6 @@ public class ServicesListAdapter extends ArrayAdapter<ServicesListItem> {
 				}
 						}
 					});
-
 		return rowView;
 	}
 
@@ -149,16 +144,24 @@ public class ServicesListAdapter extends ArrayAdapter<ServicesListItem> {
 				holder.circle.setBackground(MainActivity.getInstance().getResources().getDrawable(R.drawable.services_circle));
 			}
 		}
-	}
-
-	/*private void updateProtocolConnections(int connections, String protocolName, ServicesListAdapter adapter) {
-		for (int i = 0; i < adapter.getCount(); ++i) {
-			HashMap<String, String> d = ((HashMap<String, String>) adapter
-					.getItem(i));
-			if (d.get("protocol").equals(protocolName)) {
-				d.put("connections", String.valueOf(connections));
+		if((Integer.valueOf(item.attacks) > 0) && (Integer.valueOf(item.attacks) == item.initialValue) && MainActivity.getInstance().getHoneyService().isRunning(item.protocol)) {
+			if(sdk < Build.VERSION_CODES.JELLY_BEAN){
+				holder.circle.setBackgroundDrawable(MainActivity.getInstance().getResources().getDrawable(R.drawable.services_circle_yellow));
+			}
+			else {
+				holder.circle.setBackground(MainActivity.getInstance().getResources().getDrawable(R.drawable.services_circle_yellow));
 			}
 		}
-		adapter.notifyDataSetChanged();
-	}*/
+		else if( (item.initialValue < Integer.valueOf(item.attacks)) && MainActivity.getInstance().getHoneyService().isRunning(item.protocol)) {
+			System.out.println(item.initialValue);
+			if(sdk < Build.VERSION_CODES.JELLY_BEAN){
+				holder.circle.setBackgroundDrawable(MainActivity.getInstance().getResources().getDrawable(R.drawable.services_circle_red));
+			}
+			else {
+				holder.circle.setBackground(MainActivity.getInstance().getResources().getDrawable(R.drawable.services_circle_red));
+			}
+		}
+		holder.recordedAttacks.setText(item.attacks);
+	}
+
 }

+ 24 - 2
src/de/tudarmstadt/informatik/hostage/ui2/fragment/ServicesFragment.java

@@ -7,6 +7,7 @@ import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.app.Fragment;
 import android.support.v4.content.LocalBroadcastManager;
@@ -23,6 +24,7 @@ import java.util.ArrayList;
 import de.tudarmstadt.informatik.hostage.R;
 import de.tudarmstadt.informatik.hostage.commons.HelperUtils;
 import de.tudarmstadt.informatik.hostage.logging.LogResultReceiver;
+import de.tudarmstadt.informatik.hostage.logging.UglyDbHelper;
 import de.tudarmstadt.informatik.hostage.ui2.activity.MainActivity;
 import de.tudarmstadt.informatik.hostage.ui2.adapter.ServicesListAdapter;
 import de.tudarmstadt.informatik.hostage.ui2.model.ServicesListItem;
@@ -44,6 +46,14 @@ public class ServicesFragment extends Fragment{
 
 	private ServicesListAdapter adapter;
 
+	private ArrayList<ServicesListItem> protocolList;
+
+	private UglyDbHelper dbh = new UglyDbHelper(MainActivity.getContext());
+
+	private String[] protocols;
+
+	private SharedPreferences mConnectionInfo;
+
 
 	private void assignViews(){
 		mServicesSwitchService = (Switch) rootView.findViewById(R.id.service_switch_connection);
@@ -68,6 +78,11 @@ public class ServicesFragment extends Fragment{
 		mReceiver = new BroadcastReceiver() {
 			@Override
 			public void onReceive(Context context, Intent intent) {
+
+				for(int i = 0; i < protocols.length; i++ ){
+					protocolList.get(i).attacks = String.valueOf(dbh.numBssidSeen(protocolList.get(i).protocol, mConnectionInfo.getString(getString(R.string.connection_info_bssid), null)));
+
+				}
 				adapter.notifyDataSetChanged();
 			}
 		};
@@ -84,12 +99,14 @@ public class ServicesFragment extends Fragment{
 		rootView = inflater.inflate(R.layout.fragment_services, container, false);
 		assignViews();
 
+		protocols = getResources().getStringArray(R.array.protocols);
+		mConnectionInfo = getActivity().getSharedPreferences(getString(R.string.connection_info), Context.MODE_PRIVATE);
+
 		updateUI();
 
 		ListView list = (ListView) rootView.findViewById(R.id.services_list_view);
 
-		final String[] protocols = getResources().getStringArray(R.array.protocols);
-		ArrayList<ServicesListItem> protocolList= new ArrayList<ServicesListItem>();
+		protocolList= new ArrayList<ServicesListItem>();
 
 		for(String protocol: protocols){
 			protocolList.add(new ServicesListItem(protocol));
@@ -97,6 +114,11 @@ public class ServicesFragment extends Fragment{
 				setStateActive();
 			}
 		}
+		for(int i=0; i < protocols.length; i++){
+
+			protocolList.get(i).attacks = String.valueOf(dbh.numBssidSeen(protocolList.get(i).protocol, mConnectionInfo.getString(getString(R.string.connection_info_bssid), null)));
+			protocolList.get(i).initialValue = Integer.valueOf(protocolList.get(i).attacks);
+		}
 
 		adapter = new ServicesListAdapter(getActivity().getBaseContext(), protocolList);
 		adapter.setActivity(this.getActivity(), this.mServicesSwitchService, this.switchChangeListener);

+ 1 - 0
src/de/tudarmstadt/informatik/hostage/ui2/model/ServicesListItem.java

@@ -6,6 +6,7 @@ package de.tudarmstadt.informatik.hostage.ui2.model;
 public class ServicesListItem {
 	public String protocol;
 	public String attacks;
+	public static int initialValue;
 
 	public boolean activated;