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); } }
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); } } }