00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 import wx
00018 from objects.gui.mainFrame import mainFrame
00019 from objects.logic.network import networkMonitor
00020 from objects.logic.entity import entityManager
00021 from objects.storage import storageManager
00022 from objects.logic.common.exception import exception
00023
00024 from objects.logic.configuration.displayConfigurator import displayConfigurator
00025 from objects.logic.configuration.optionsConfigurator import optionsConfigurator
00026
00027 from objects.logic.common.globalStrings import globalStrings
00028 from objects.geoip.geoIPUtils import geoIPUtils
00029
00030
00031
00032
00033
00034 class eyespy(wx.App):
00035
00036
00037 def OnInit(self):
00038
00039
00040 err, ex = self.loadConfiguration()
00041
00042 if err == True:
00043 errMsg = "Could not read startup configuration files. Although you configuration will be restored some application parameters will be set to their starting values. \nThis is usually due to a missing or corrupt configuration file\n\nDetailed Error:\n%s " % (str(ex))
00044 dlg = wx.MessageDialog(None, errMsg, 'Error', wx.ICON_ERROR)
00045 result = dlg.ShowModal()
00046 dlg.Destroy()
00047
00048
00049
00050 try:
00051 geoIPUtils.installGeoIPIfNecessary()
00052 except Exception, e:
00053 errMsg = str(e) + "\nPlease try and update the GEO IP again."
00054 dlg = wx.MessageDialog(None, errMsg, 'Error', wx.ICON_ERROR)
00055 result = dlg.ShowModal()
00056 dlg.Destroy()
00057
00058
00059 self.netMon = networkMonitor.networkMonitor()
00060 self.entityMan = entityManager.entityManager()
00061 self.storage = None
00062
00063 self.initStorage(True)
00064 self.storage.deleteStorage()
00065
00066 """
00067 register packet listener
00068 """
00069 self.netMon.attach(self.entityMan)
00070
00071 self.createMainWindow(self)
00072
00073 return True
00074
00075
00076
00077
00078 def createMainWindow(self, app):
00079
00080 stringVer = "EyeSpy V 1.1 (%s)" % globalStrings.VERSION
00081 frame = mainFrame(None, -1, stringVer, app, self.dispConf, self.optConfig)
00082 frame.Show(True)
00083
00084
00085 self.SetTopWindow(frame)
00086
00087
00088
00089
00090 def loadConfiguration(self):
00091
00092 ex = ""
00093 error = False
00094
00095 try:
00096
00097 self.dispConf = displayConfigurator(globalStrings.displaySettingsPath)
00098 self.dispConf.loadConfig()
00099 except Exception, ex:
00100 error = True
00101
00102
00103 try:
00104
00105 self.optConfig = optionsConfigurator(globalStrings.appOptionsPath)
00106 self.optConfig.loadConfig()
00107 except Exception, ex:
00108 error = True
00109
00110
00111 return error, ex
00112
00113
00114
00115
00116
00117 def initStorage(self, clearStorageFirst, reloadConfig = False):
00118 self.storageInitted = False
00119
00120 if self.storage != None:
00121 self.netMon.detach(self.storage)
00122
00123 if reloadConfig:
00124 try:
00125 self.optConfig.loadConfig()
00126 except Exception, e:
00127 pass
00128
00129
00130 monStorage = self.optConfig.network_getRecordTraffic()
00131 maxSize = self.optConfig.network_getRecordingMaxLimit()
00132
00133 if self.optConfig.network_getNeverStopRecording() == True:
00134 maxSize = -1
00135
00136 self.storage = storageManager.storageManager(monStorage, maxSize)
00137
00138 if clearStorageFirst == True:
00139 try:
00140 self.storage.initializeStorage()
00141 except Exception, ex:
00142
00143
00144
00145 if monStorage == True:
00146 dlg = wx.MessageDialog(None, str(ex), 'Error', wx.ICON_ERROR)
00147 result = dlg.ShowModal()
00148 dlg.Destroy()
00149
00150 self.storageInitted = False
00151 return
00152
00153 if monStorage == True:
00154 self.netMon.attach(self.storage)
00155
00156 self.storageInitted = True
00157
00158
00159
00160 def startStorageManager(self):
00161 if self.storageInitted == True and self.storage != None:
00162 self.storage.startupStorage()
00163
00164
00165
00166 def shutdownStorage(self):
00167 if self.storageInitted == True and self.storage != None:
00168 self.storage.shutdownStorage()
00169
00170
00171
00172
00173 app = eyespy(0)
00174 app.MainLoop()
00175
00176
00177
00178 app.netMon.stopListening()
00179