def startButtonClicked(self, widget): appName = self.appEntry.get_text() param = self.paramEntry.get_text() if appName == "": messDlg = gtk.MessageDialog( type=gtk.MESSAGE_ERROR, buttons=gtk.BUTTONS_CLOSE, message_format="Path to aplication is empty") messDlg.run() messDlg.destroy() return if not self.modeBasic: if self.faults == {}: messDlg = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_CLOSE, message_format="No fault is added") messDlg.run() messDlg.destroy() return # nastavi se zobrazovany stav self.progress.set_fraction(0.0) self.progress.set_visible(True) self.labelStatus.set_label("Running") self.imageYes.set_visible(True) self.imageNo.set_visible(False) # vyprazdni se Log self.logText = "" self.textBuffer.set_text(self.logText) # zneplatni se tlacitka a vkladane chyby widget.set_sensitive(False) self.addButton = self.builder.get_object("addButton") self.addButton.set_sensitive(False) self.removeButton = self.builder.get_object("removeButton") self.removeButton.set_sensitive(False) self.browseButton = self.builder.get_object("browseButton") self.browseButton.set_sensitive(False) self.panely = self.builder.get_object("panely") self.panely.set_sensitive(False) self.menu = self.builder.get_object("menubar1") self.menu.set_sensitive(False) termButton = self.builder.get_object("termButton") termButton.set_sensitive(True) # vygeneruje soubor pro systemtap generator = GenerateStap() try: if self.modeBasic: generator.generateNormalInjection(self.injectBasicFilename, self.syscallsAndErrors[1], self.enableFault, self.missingSyscall, self.basicError) else: generator.generate(self.injectAdvancedFilename, self.faults, self.faultsStartValue, self.syscallsAndErrors[1]) except IOError: self.endTestApp() self.threadError( "Permission denied.\nClose application and run as root") return # vytvoreni injectoru, ktery spousti testovani (Systemtap) if self.modeBasic: self.injector = Injector(appName + " " + param, self.injectBasicFilename, self) else: self.injector = Injector(appName + " " + param, self.injectAdvancedFilename, self) # vytvoreni kontroleru, zjisti, kdy skonci predklad skriptu # pro Systemtap self.controller = InjectController(self) # spusti se testovani self.injector.start() self.controller.start()
# extrakce systemovych volani a jejich navratovych hodnot extractor = SyscallExtractor() try: syscallsAndErrors = extractor.extract("syscalls") except: print "Error during syscalls search" return # lexikalni a syntakticka analyza vstupniho soboru s pravidly scanner = InputScanner(syscallsAndErrors) injectValues = scanner.scan(inputData) if injectValues == None: print "Bad format of input file" return # vygeneruje soubor pro systemtap generator = GenerateStap() generator.generateCmdLine(injectFile, injectValues, syscallsAndErrors[1]) # vlozi odpovidajici chyby podle zadaneho vstupu injector = Injector(command, injectFile) try: injector.start() except: print "Error during injection" if __name__ == "__main__": main()
def startButtonClicked(self, widget): appName = self.appEntry.get_text() param = self.paramEntry.get_text() if appName == "": messDlg = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, buttons=gtk.BUTTONS_CLOSE, message_format="Path to aplication is empty") messDlg.run() messDlg.destroy() return if not self.modeBasic: if self.faults == {}: messDlg = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_CLOSE, message_format="No fault is added") messDlg.run() messDlg.destroy() return # nastavi se zobrazovany stav self.progress.set_fraction(0.0) self.progress.set_visible(True) self.labelStatus.set_label("Running") self.imageYes.set_visible(True) self.imageNo.set_visible(False) # vyprazdni se Log self.logText = "" self.textBuffer.set_text(self.logText) # zneplatni se tlacitka a vkladane chyby widget.set_sensitive(False) self.addButton = self.builder.get_object("addButton") self.addButton.set_sensitive(False) self.removeButton = self.builder.get_object("removeButton") self.removeButton.set_sensitive(False) self.browseButton = self.builder.get_object("browseButton") self.browseButton.set_sensitive(False) self.panely = self.builder.get_object("panely") self.panely.set_sensitive(False) self.menu = self.builder.get_object("menubar1") self.menu.set_sensitive(False) termButton = self.builder.get_object("termButton") termButton.set_sensitive(True) # vygeneruje soubor pro systemtap generator = GenerateStap() try: if self.modeBasic: generator.generateNormalInjection(self.injectBasicFilename, self.syscallsAndErrors[1], self.enableFault, self.missingSyscall, self.basicError) else: generator.generate(self.injectAdvancedFilename, self.faults, self.faultsStartValue, self.syscallsAndErrors[1]) except IOError: self.endTestApp() self.threadError("Permission denied.\nClose application and run as root") return # vytvoreni injectoru, ktery spousti testovani (Systemtap) if self.modeBasic: self.injector = Injector(appName + " " + param, self.injectBasicFilename, self) else: self.injector = Injector(appName + " " + param, self.injectAdvancedFilename, self) # vytvoreni kontroleru, zjisti, kdy skonci predklad skriptu # pro Systemtap self.controller = InjectController(self) # spusti se testovani self.injector.start() self.controller.start()