Esempio n. 1
0
 public static bool ScanWithNoRules(String sApplicationToScan, String sScanResultsFolder,
                                    Callbacks.dMethod_Object dProcessCompletionCallback)
 {
     var srScanResults = new O2scanresults();
     srScanResults.bScanWithNoRules = true;
     bool bScanResult = srScanResults.scanApplication(sApplicationToScan);            
     DebugMsg.saveLogIntoFile(Path.Combine(sScanResultsFolder,
                                           Path.GetFileNameWithoutExtension(sApplicationToScan) +
                                           " - Scan_WithNoRules.txt"));
     return bScanResult;
 }
Esempio n. 2
0
        public static bool ScanWithNoRules(String sApplicationToScan, String sScanResultsFolder,
                                           Callbacks.dMethod_Object dProcessCompletionCallback)
        {
            var srScanResults = new O2scanresults();

            srScanResults.bScanWithNoRules = true;
            bool bScanResult = srScanResults.scanApplication(sApplicationToScan);

            DebugMsg.saveLogIntoFile(Path.Combine(sScanResultsFolder,
                                                  Path.GetFileNameWithoutExtension(sApplicationToScan) +
                                                  " - Scan_WithNoRules.txt"));
            return(bScanResult);
        }
Esempio n. 3
0
        public static void ScanWithSelectedAutomaticRuleSets(String sApplicationToScan, String sScanResultsFolder,
                                                             bool bCallBacksOnControlFlowGraphs_And_ExternalSinks,
                                                             bool bCallBacksOnEdges_And_ExternalSinks,
                                                             bool bSourcesAndSinks, String sExtraLogNameText,
                                                             Callbacks.dMethod_Object dProcessCompletionCallback,
                                                             Callbacks.dMethod_String logCallback)
        {
            O2Thread.mtaThread(() =>
            {
                DebugMsg.bLogCache = true;                        // enable LogCache (so that we can save it at the end
                var srScanResults  = new O2scanresults();
                //if (File.Exists(CalculateCirDataFileNameInResultsFolder(sApplicationToScan, sScanResultsFolder)))
                //   srScanResults.sCirDataFile = CalculateCirDataFileNameInResultsFolder(sApplicationToScan, sScanResultsFolder);
                // load or create CirData file
                if (File.Exists(sApplicationToScan + ".CirData"))
                {
                    srScanResults.sCirDataFile = sApplicationToScan + ".CirData";
                }
                else
                {
                    srScanResults.bCreateCirDataFile = true;
                }
                // set scanning options (i.e. what to scan)
                srScanResults.bCallBacksOnControlFlowGraphs_And_ExternalSinks =
                    bCallBacksOnControlFlowGraphs_And_ExternalSinks;
                srScanResults.bCallBacksOnEdges_And_ExternalSinks =
                    bCallBacksOnEdges_And_ExternalSinks;
                srScanResults.bSourcesAndSinks = bSourcesAndSinks;

                srScanResults.dProcessCompletionCallback = dProcessCompletionCallback;
                srScanResults.logCallback = logCallback;

                // trigger scan
                bool bScanResult = srScanResults.scanApplication(sApplicationToScan);


                //  SaveCirDataFile(srScanResults, sScanResultsFolder);
                //SaveAssessmentFiles(srScanResults, sScanResultsFolder);
                DebugMsg.saveLogIntoFile(Path.Combine(sScanResultsFolder,
                                                      Path.GetFileNameWithoutExtension(
                                                          sApplicationToScan) + " - " +
                                                      sExtraLogNameText + ".txt"));
                DebugMsg.bLogCache = false;
            });
        }
Esempio n. 4
0
        public static void ScanWithSelectedAutomaticRuleSets(String sApplicationToScan, String sScanResultsFolder,
                                                             bool bCallBacksOnControlFlowGraphs_And_ExternalSinks,
                                                             bool bCallBacksOnEdges_And_ExternalSinks,
                                                             bool bSourcesAndSinks, String sExtraLogNameText,
                                                             Callbacks.dMethod_Object dProcessCompletionCallback,
                                                             Callbacks.dMethod_String logCallback)
        {
            O2Thread.mtaThread(() =>
                                   {
                                       DebugMsg.bLogCache = true; // enable LogCache (so that we can save it at the end
                                       var srScanResults = new O2scanresults();
                                       //if (File.Exists(CalculateCirDataFileNameInResultsFolder(sApplicationToScan, sScanResultsFolder)))
                                       //   srScanResults.sCirDataFile = CalculateCirDataFileNameInResultsFolder(sApplicationToScan, sScanResultsFolder);
                                       // load or create CirData file
                                       if (File.Exists(sApplicationToScan + ".CirData"))
                                           srScanResults.sCirDataFile = sApplicationToScan + ".CirData";
                                       else
                                           srScanResults.bCreateCirDataFile = true;
                                       // set scanning options (i.e. what to scan)
                                       srScanResults.bCallBacksOnControlFlowGraphs_And_ExternalSinks =
                                           bCallBacksOnControlFlowGraphs_And_ExternalSinks;
                                       srScanResults.bCallBacksOnEdges_And_ExternalSinks =
                                           bCallBacksOnEdges_And_ExternalSinks;
                                       srScanResults.bSourcesAndSinks = bSourcesAndSinks;

                                       srScanResults.dProcessCompletionCallback = dProcessCompletionCallback;
                                       srScanResults.logCallback = logCallback;

                                       // trigger scan
                                       bool bScanResult = srScanResults.scanApplication(sApplicationToScan);


                                       //  SaveCirDataFile(srScanResults, sScanResultsFolder);
                                       //SaveAssessmentFiles(srScanResults, sScanResultsFolder);
                                       DebugMsg.saveLogIntoFile(Path.Combine(sScanResultsFolder,
                                                                             Path.GetFileNameWithoutExtension(
                                                                                 sApplicationToScan) + " - " +
                                                                             sExtraLogNameText + ".txt"));
                                       DebugMsg.bLogCache = false;
                                   });

        }
Esempio n. 5
0
        /*  public static void CreateCirDataFile(O2scanresults srScanResults, String sScanResultsFolder, Callbacks.dMethod_Object dProcessCompletionCallback)
         * {
         *  String sTargetCirFile = CalculateCirDataFileNameInResultsFolder(srScanResults.sApplicationToScan, sScanResultsFolder);
         *  if (File.Exists(srScanResults.sCirDataFile) && srScanResults.sCirDataFile != sTargetCirFile)
         *  {
         *      //tring sZipFileName = Path.Combine(sScanResultsFolder, Path.GetFileName(sTargetCirFile) + ".zip");
         *      File.Copy(srScanResults.sCirDataFile, sTargetCirFile,true);
         *      //zipUtils.zipFile(srScanResults.sCirDataFile, sZipFileName);
         *      //File.Move(srScanResults.sCirDataFile, sTargetCirFile);
         *  }
         * }*/

        public static void SaveAssessmentFiles(O2scanresults srScanResults, String sScanResultsFolder)
        {
            if (File.Exists(srScanResults.sAssessmentFile_ScanWithExistingRules))
            {
                //Files.MoveFile(srScanResults.sAssessmentFile_ScanWithExistingRules, Path.Combine(sScanResultsFolder, Path.GetFileNameWithoutExtension(srScanResults.sApplicationToScan) + "_ScanWithExistingRules.ozasmt"));
                Files.MoveFile(srScanResults.sAssessmentFile_ScanWithExistingRules, Path.Combine(sScanResultsFolder, "ScanWithExistingRules.ozasmt"));
            }
            if (File.Exists(srScanResults.sAssessmentFile_CallBacksOnControlFlowGraphs_And_ExternalSinks))
            {
                //Files.MoveFile(srScanResults.sAssessmentFile_CallBacksOnControlFlowGraphs_And_ExternalSinks, Path.Combine(sScanResultsFolder, Path.GetFileNameWithoutExtension(srScanResults.sApplicationToScan) + "_CallBacksOnControlFlowGraphs_And_ExternalSinks.ozasmt"));
                Files.MoveFile(srScanResults.sAssessmentFile_CallBacksOnControlFlowGraphs_And_ExternalSinks, Path.Combine(sScanResultsFolder, "CallBacksOnControlFlowGraphs_And_ExternalSinks.ozasmt"));
            }
            if (File.Exists(srScanResults.sAssessmentFile_CallBacksOnEdges_And_ExternalSinks))
            {
                //Files.MoveFile(srScanResults.sAssessmentFile_CallBacksOnEdges_And_ExternalSinks, Path.Combine(sScanResultsFolder, Path.GetFileNameWithoutExtension(srScanResults.sApplicationToScan) + "_CallBacksOnEdges_And_ExternalSinks.ozasmt"));
                Files.MoveFile(srScanResults.sAssessmentFile_CallBacksOnEdges_And_ExternalSinks, Path.Combine(sScanResultsFolder, "CallBacksOnEdges_And_ExternalSinks.ozasmt"));
            }
            if (File.Exists(srScanResults.sAssessmentFile_SourcesAndSinks))
            {
                //Files.MoveFile(srScanResults.sAssessmentFile_SourcesAndSinks, Path.Combine(sScanResultsFolder, Path.GetFileNameWithoutExtension(srScanResults.sApplicationToScan) + "_SourcesAndSinks.ozasmt"));
                Files.MoveFile(srScanResults.sAssessmentFile_SourcesAndSinks, Path.Combine(sScanResultsFolder, "SourcesAndSinks.ozasmt"));
            }
        }
Esempio n. 6
0
        public static bool createCirDump(String sApplicationToScan, String sScanResultsFolder,
                                         Callbacks.dMethod_Object dProcessCompletionCallback, Callbacks.dMethod_String _logCallback,
                                         bool bDeleteAllRulesFromDbBeforeScan,
                                         bool bStoreControlFlowBlockRawDataInsideCirDataFile)
        {
            var srScanResults = new O2scanresults
                                    {
                                        bDeleteAllRulesForCirCreation = bDeleteAllRulesFromDbBeforeScan,
                                        dProcessCompletionCallback = dProcessCompletionCallback,
                                        logCallback = _logCallback,
                                        bCreateCirDataFile = true,
                                        bStoreControlFlowBlockRawDataInsideCirDataFile =
                                            bStoreControlFlowBlockRawDataInsideCirDataFile,
                                        bDeleteCreatedAssessmentFile = true
                                    };
            // srScanResults.sPathToCirDumpFiles = sScanResultsFolder; // o2.rules.scan.CalculateCirDataFileNameInResultsFolder(sApplicationToScan, sScanResultsFolder);

            bool bScanResult = srScanResults.scanApplication(sApplicationToScan);


            //o2.rules.scan.SaveCirDataFile(srScanResults, sScanResultsFolder);
            DebugMsg.saveLogIntoFile(Path.Combine(sScanResultsFolder,
                                                  Path.GetFileNameWithoutExtension(sApplicationToScan) +
                                                  " - CreateConsolidatedCirDump.txt"));

            return bScanResult;
        }
Esempio n. 7
0
        /*  public static void CreateCirDataFile(O2scanresults srScanResults, String sScanResultsFolder, Callbacks.dMethod_Object dProcessCompletionCallback)
        {
            String sTargetCirFile = CalculateCirDataFileNameInResultsFolder(srScanResults.sApplicationToScan, sScanResultsFolder);
            if (File.Exists(srScanResults.sCirDataFile) && srScanResults.sCirDataFile != sTargetCirFile)
            {
                //tring sZipFileName = Path.Combine(sScanResultsFolder, Path.GetFileName(sTargetCirFile) + ".zip");                
                File.Copy(srScanResults.sCirDataFile, sTargetCirFile,true);
                //zipUtils.zipFile(srScanResults.sCirDataFile, sZipFileName);                
                //File.Move(srScanResults.sCirDataFile, sTargetCirFile);
            }
        }*/

        public static void SaveAssessmentFiles(O2scanresults srScanResults, String sScanResultsFolder)
        {
            if (File.Exists(srScanResults.sAssessmentFile_ScanWithExistingRules))
                //Files.MoveFile(srScanResults.sAssessmentFile_ScanWithExistingRules, Path.Combine(sScanResultsFolder, Path.GetFileNameWithoutExtension(srScanResults.sApplicationToScan) + "_ScanWithExistingRules.ozasmt"));
                Files.MoveFile(srScanResults.sAssessmentFile_ScanWithExistingRules, Path.Combine(sScanResultsFolder, "ScanWithExistingRules.ozasmt"));
            if (File.Exists(srScanResults.sAssessmentFile_CallBacksOnControlFlowGraphs_And_ExternalSinks))
                //Files.MoveFile(srScanResults.sAssessmentFile_CallBacksOnControlFlowGraphs_And_ExternalSinks, Path.Combine(sScanResultsFolder, Path.GetFileNameWithoutExtension(srScanResults.sApplicationToScan) + "_CallBacksOnControlFlowGraphs_And_ExternalSinks.ozasmt"));
                Files.MoveFile(srScanResults.sAssessmentFile_CallBacksOnControlFlowGraphs_And_ExternalSinks, Path.Combine(sScanResultsFolder, "CallBacksOnControlFlowGraphs_And_ExternalSinks.ozasmt"));
            if (File.Exists(srScanResults.sAssessmentFile_CallBacksOnEdges_And_ExternalSinks))
                //Files.MoveFile(srScanResults.sAssessmentFile_CallBacksOnEdges_And_ExternalSinks, Path.Combine(sScanResultsFolder, Path.GetFileNameWithoutExtension(srScanResults.sApplicationToScan) + "_CallBacksOnEdges_And_ExternalSinks.ozasmt"));
                Files.MoveFile(srScanResults.sAssessmentFile_CallBacksOnEdges_And_ExternalSinks, Path.Combine(sScanResultsFolder, "CallBacksOnEdges_And_ExternalSinks.ozasmt"));
            if (File.Exists(srScanResults.sAssessmentFile_SourcesAndSinks))
                //Files.MoveFile(srScanResults.sAssessmentFile_SourcesAndSinks, Path.Combine(sScanResultsFolder, Path.GetFileNameWithoutExtension(srScanResults.sApplicationToScan) + "_SourcesAndSinks.ozasmt"));         
                Files.MoveFile(srScanResults.sAssessmentFile_SourcesAndSinks, Path.Combine(sScanResultsFolder, "SourcesAndSinks.ozasmt"));         
        }