summaryrefslogtreecommitdiffstats
path: root/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25
diff options
context:
space:
mode:
authorTom2012-01-11 17:00:30 +0100
committerTom2012-01-11 17:00:30 +0100
commit9fcc469afa01fc9ea42e4cbb96c5b195c5bcd371 (patch)
tree89d4015f6a34119069665d74a67d871fcd124509 /Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25
parentrefresh (diff)
downloadimsi-catcher-detection-9fcc469afa01fc9ea42e4cbb96c5b195c5bcd371.tar.gz
imsi-catcher-detection-9fcc469afa01fc9ea42e4cbb96c5b195c5bcd371.tar.xz
imsi-catcher-detection-9fcc469afa01fc9ea42e4cbb96c5b195c5bcd371.zip
all reupped
Diffstat (limited to 'Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25')
-rw-r--r--Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/200219d8a8f2001019c79f38f40e52ba115
-rw-r--r--Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/70afa34676f2001019c79f38f40e52ba133
-rw-r--r--Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/70eef59a7cf2001019c79f38f40e52ba55
3 files changed, 303 insertions, 0 deletions
diff --git a/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/200219d8a8f2001019c79f38f40e52ba b/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/200219d8a8f2001019c79f38f40e52ba
new file mode 100644
index 0000000..cacaf59
--- /dev/null
+++ b/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/200219d8a8f2001019c79f38f40e52ba
@@ -0,0 +1,115 @@
+from pyCatcherModel import BaseStationInformation
+import subprocess
+import threading
+import re
+from pyCatcherSettings import Commands
+import sys
+import time
+import gtk #@UnresolvedImport
+
+class DriverConnector:
+ def __init__ (self):
+ self._scan_thread_break = False
+ self._firmware_thread_break = False
+ self._firmware_waiting_callback = None
+ self._firmware_loaded_callback = None
+ self._base_station_found_callback = None
+ self._firmThread = None
+ self._scanThread = None
+
+ def start_scanning (self, base_station_found_callback):
+ self._scan_thread_break = False
+ self._base_station_found_callback = base_station_found_callback
+ self._scanThread = ScanThread(self._base_station_found_callback, self._scan_thread_break)
+ self._scanThread.start()
+
+ def start_firmware(self, firmware_waiting_callback, firmware_loaded_callback):
+ self._firmware_thread_break = False
+ self._firmware_waiting_callback = firmware_waiting_callback
+ self._firmware_loaded_callback = firmware_loaded_callback
+ self._firmThread = FirmwareThread(self._firmware_waiting_callback, self._firmware_loaded_callback, self._firmware_thread_break)
+ self._firmThread.start()
+
+ def stop_scanning (self):
+ self._scan_thread_break = True
+
+ def stop_firmware(self):
+ self._firmware_thread_break = True
+
+ def shutdown(self):
+ if self._firmThread:
+ self._firmThread.join(10)
+ if self._scanThread:
+ self._scanThread.join(10)
+
+class FirmwareThread(threading.Thread):
+ def __init__(self, firmware_waiting_callback, firmware_loaded_callback, thread_break):
+ gtk.gdk.threads_init()
+ threading.Thread.__init__(self)
+ self._firmware_waiting_callback = firmware_waiting_callback
+ self._firmware_loaded_callback = firmware_loaded_callback
+ self._thread_break = thread_break
+
+ def run(self):
+ loader_process_object = subprocess.Popen(Commands['osmocon_command'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ time.sleep(3)
+ self._firmware_waiting_callback()
+ while not self._thread_break:
+ line = loader_process_object.stdout.readline()
+ #if line:
+ # print line
+ if line.strip() == 'Finishing download phase':
+ self._firmware_loaded_callback()
+ #time.sleep(0.5)
+ print 'killing firmware'
+ loader_process_object.kill()
+
+class ScanThread(threading.Thread):
+ def __init__(self, base_station_found_callback, thread_break):
+ gtk.gdk.threads_init()
+ threading.Thread.__init__(self)
+ self._base_station_found_callback = base_station_found_callback
+ self._thread_break = thread_break
+
+ def run(self):
+ scan_process = subprocess.Popen(Commands['scan_command'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ time.sleep(2)
+ while not self._thread_break:
+ line = scan_process.stdout.readline()
+ if line:
+ #print line
+ #sys.stdout.flush()
+ if re.search('SysInfo', line):
+ base_station = BaseStationInformation()
+ #get country
+ line = line = scan_process.stdout.readline()
+ match = re.search(r'country\s(\w+)',line)
+ if match:
+ base_station.country = match.group(1)
+ #get provider
+ line = line = scan_process.stdout.readline()
+ match = re.search(r'provider\s(.+)',line)
+ if match:
+ base_station.provider = match.group(1)
+ #get arfcn
+ line = line = scan_process.stdout.readline()
+ match = re.search(r'arfcn\s(\d+)',line)
+ if match:
+ base_station.arfcn = match.group(1)
+ #get rxlev
+ line = line = scan_process.stdout.readline()
+ match = re.search(r'rxlev\s(.\d+)',line)
+ if match:
+ base_station.rxlev = match.group(1)
+ #get neighbours
+ line = line = scan_process.stdout.readline()
+ match = re.search(r'si2\s(.+)',line)
+ if match:
+ base_station.system_info_t2 = match.group(1).split(' ')
+ #endinfo
+ line = line = scan_process.stdout.readline()
+
+ self._base_station_found_callback(base_station)
+ print 'killing scan'
+ scan_process.kill()
+ \ No newline at end of file
diff --git a/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/70afa34676f2001019c79f38f40e52ba b/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/70afa34676f2001019c79f38f40e52ba
new file mode 100644
index 0000000..509e31b
--- /dev/null
+++ b/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/70afa34676f2001019c79f38f40e52ba
@@ -0,0 +1,133 @@
+import sys
+import locale
+import pygtk
+import gtk #@UnresolvedImport
+import gtk.glade #@UnresolvedImport
+from pyCatcherModel import BaseStationInformation
+from xdot import DotWidget
+import datetime
+import time
+
+class PyCatcherGUI:
+
+ def __init__(self, catcher_controller):
+ encoding = locale.getlocale()[1]
+ self._utf8conv = lambda x : unicode(x, encoding).encode('utf8')
+
+ self._scan_toggled_on = False
+ self._firmware_toggled_on = False
+
+ self._catcher_controller = catcher_controller
+
+ self._w_tree = gtk.glade.XML("../GUI/mainWindow.glade")
+
+ self._bs_tree_view = self._w_tree.get_widget("bs_table")
+ self._add_column("Provider", 0)
+ self._add_column("Frequency", 1)
+ self._add_column("Strength",2)
+ self._add_column("Last seen", 3)
+ self._bs_tree_view.set_model(self._catcher_controller.bs_tree_list_data)
+
+ self._horizontal_container = self._w_tree.get_widget("vbox4")
+ self._dot_widget = DotWidget()
+ self._horizontal_container.pack_start_defaults(self._dot_widget)
+ self._dot_widget.show()
+
+ self._main_window = self._w_tree.get_widget("main_window")
+ signals = {"on_main_window_destroy": gtk.main_quit,
+ "on_scan_toggle_toggled": self._on_toggle_scan,
+ "on_firmware_toggle_toggled": self._on_toggle_firmware,
+ "on_graph_zoom_in_clicked": self._dot_widget.on_zoom_in,
+ "on_graph_zoom_out_clicked": self._dot_widget.on_zoom_out,
+ "on_graph_fit_clicked": self._dot_widget.on_zoom_fit,
+ "on_graph_zoom_default_clicked": self._dot_widget.on_zoom_100,
+ "on_save_project_clicked": self._on_save_project,
+ "on_open_file_clicked": self._on_open_file
+ }
+ self._w_tree.signal_autoconnect(signals)
+
+ log_view = self._w_tree.get_widget("log_output")
+ self._log_buffer = log_view.get_buffer()
+ self._log_buffer.insert(self._log_buffer.get_end_iter(),self._utf8conv("-- Log execution on " + datetime.datetime.now().strftime("%A, %d. %B %Y %I:%M %p") + " --\n\n"))
+
+ self._main_window.show()
+
+
+ def _add_column(self, name, index):
+ column = gtk.TreeViewColumn(name, gtk.CellRendererText(), text=index)
+ column.set_resizable(True)
+ column.set_sort_column_id(index)
+ self._bs_tree_view.append_column(column)
+
+ def _on_main_window_close(self, widget):
+
+ def _on_toggle_scan(self, widget):
+ if(not self._scan_toggled_on):
+ self._catcher_controller.start_scan()
+ self._scan_toggled_on = True
+ else:
+ self._catcher_controller.stop_scan()
+ self._scan_toggled_on = False
+
+ def _on_toggle_firmware(self, widget):
+ if(not self._firmware_toggled_on):
+ self._catcher_controller.start_firmware()
+ self._firmware_toggled_on = True
+ else:
+ self._catcher_controller.stop_firmware()
+ self._firmware_toggled_on = False
+
+ def _on_open_file(self, widget):
+ chooser = gtk.FileChooserDialog(title="Open dot File",
+ action=gtk.FILE_CHOOSER_ACTION_OPEN,
+ buttons=(gtk.STOCK_CANCEL,
+ gtk.RESPONSE_CANCEL,
+ gtk.STOCK_OPEN,
+ gtk.RESPONSE_OK))
+ chooser.set_default_response(gtk.RESPONSE_OK)
+ filter = gtk.FileFilter()
+ filter.set_name("Graphviz dot files")
+ filter.add_pattern("*.dot")
+ chooser.add_filter(filter)
+ filter = gtk.FileFilter()
+ filter.set_name("All files")
+ filter.add_pattern("*")
+ chooser.add_filter(filter)
+ if chooser.run() == gtk.RESPONSE_OK:
+ filename = chooser.get_filename()
+ chooser.destroy()
+ self.load_dot_from_file(filename)
+ else:
+ chooser.destroy()
+
+ def load_dot_from_file(self, filename):
+ try:
+ fp = file(filename, 'rt')
+ self.load_dot(fp.read(), filename)
+ fp.close()
+ except IOError, ex:
+ self.show_info(ex)
+
+ def load_dot(self, dotcode, filename="<stdin>"):
+ if self._dot_widget.set_dotcode(dotcode, filename):
+ self._dot_widget.zoom_to_fit()
+
+ def _on_save_project(self, widget):
+ pass
+
+ def show_info(self, message, title='PyCatcher', time_to_sleep=3, type='INFO'):
+ gtk_type = {'INFO' : gtk.MESSAGE_INFO,
+ 'ERROR': gtk.MESSAGE_ERROR}
+
+ dlg = gtk.MessageDialog(type=gtk.MESSAGE_INFO,
+ message_format=str(message)
+ )
+
+ dlg.set_title(title)
+ #dlg.run()
+ dlg.show()
+ time.sleep(time_to_sleep)
+ dlg.destroy()
+
+ def log_line(self, line):
+ self._log_buffer.insert(self._log_buffer.get_end_iter(),self._utf8conv(datetime.datetime.now().strftime("%I:%M:%S %p")+ ": " + line + "\n")) \ No newline at end of file
diff --git a/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/70eef59a7cf2001019c79f38f40e52ba b/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/70eef59a7cf2001019c79f38f40e52ba
new file mode 100644
index 0000000..0731a05
--- /dev/null
+++ b/Src/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/70eef59a7cf2001019c79f38f40e52ba
@@ -0,0 +1,55 @@
+import sys
+import pygtk
+import gtk #@UnresolvedImport
+import gtk.glade #@UnresolvedImport
+from driverConnector import DriverConnector
+from pyCatcherModel import BaseStationInformation, BaseStationInformationList
+from pyCatcherView import PyCatcherGUI
+
+class PyCatcherController:
+ def __init__(self):
+
+ self._base_station_list = BaseStationInformationList
+
+ self._gui = PyCatcherGUI(self)
+ self._driver_connector = DriverConnector()
+
+ self._gui.log_line("GUI initialized")
+
+ gtk.main()
+
+ def log_message(self, message):
+ self._gui.log_line(message)
+
+ def start_scan(self):
+ self._gui.log_line("start scan")
+ self._driver_connector.start_scanning(self._found_base_station_callback)
+
+ def stop_scan(self):
+ self._gui.log_line("stop scan")
+ self._driver_connector.stop_scanning()
+
+ def start_firmware(self):
+ self._gui.log_line("start firmware")
+ self._driver_connector.start_firmware(self._firmware_waiting_callback, self._firmware_done_callback)
+
+ def stop_firmware(self):
+ self._gui.log_line("stop firmware")
+ print 'stop firmwares'
+ self._driver_connector.stop_firmware()
+
+ def shutdown(self):
+ self._driver_connector.shutdown()
+
+ def _found_base_station_callback(self, base_station_info):
+ self._gui.log_line("found " + base_station_info.country + '(' + base_station_info.arfcn + ')')
+ self.bs_tree_list_data =
+
+ def _firmware_waiting_callback(self):
+ self._gui.log_line("firmware waiting for device")
+ self._gui.show_info('Switch on the phone now.', 'Firmware')
+
+ def _firmware_done_callback(self):
+ self._gui.log_line("firmware loaded, ready for scanning")
+ self._gui.show_info('Firmware load completed', 'Firmware')
+ \ No newline at end of file