Example #1
0
    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()
Example #2
0
    # 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()
Example #3
0
 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()