public ClassifierResult testWithModel(AstData sampleData)
        {
            AstPrediction result = predEngine.Predict(sampleData);

            int count = 0;

            foreach (var p in result.Score)
            {
                Console.Out.WriteLine("{0} -- {1}", count++, p);
            }

            if (result.Score[0] > 0.5)
            {
                return(ClassifierResult.unobfuscated);
            }
            else
            {
                return(ClassifierResult.obfuscated);
            }
        }
Example #2
0
        public void TraverseCheckSubtree(AstNode node)
        {
            Queue <AstNode> unvisitedNodeQueue = new Queue <AstNode>();

            unvisitedNodeQueue.Enqueue(node);

            while (unvisitedNodeQueue.Count > 0)
            {
                AstNode n = unvisitedNodeQueue.Dequeue();

                if (n.ast.GetType().ToString() == "System.Management.Automation.Language.PipelineAst")
                {
                    AstData data = AstTree.Tree2Feature(n);
                    Classifier.ClassifierResult result = c.testWithModel(data);
                    Console.Out.WriteLine(String.Format("Script:{0}, result:{1}", n.ast.Extent.Text, result.ToString()));
                }

                foreach (AstNode nc in n.childList)
                {
                    unvisitedNodeQueue.Enqueue(nc);
                }
            }
        }