private void Form1_Load(object sender, EventArgs e) { while (true) { if (openConfigFileDialog.ShowDialog() == DialogResult.OK) { break; } } filename = openConfigFileDialog.FileName; functions = FunctionConfig.buildFunctionConfigs(filename); MessageBox.Show("LOADED"); }
private void btnOk_Click(object sender, EventArgs e) { try { string fname = tbFname.Text; Types returnType = FunctionConfig.TypeFromStr((string)comboType.SelectedItem); TaintTypes returnTaintType = FunctionConfig.TaintFromStr((string)comboTaint.SelectedItem); Taint returnTaint = new Taint(returnTaintType); if (returnTaintType == TaintTypes.G) { string[] returnDepNames = tbReturnDeps.Text.Split(new char[] { ' ' }); foreach (string retDep in returnDepNames) { returnTaint.getDependencies().Add(retDep); } } IList <FunctionConfig.Param> parameters = new List <FunctionConfig.Param>(); foreach (DataGridViewRow row in dgParams.Rows) { if (row.IsNewRow) { continue; } string pName = (string)row.Cells["Name"].Value; Types pType = FunctionConfig.TypeFromStr((string)row.Cells["Type"].Value); TaintTypes pTaintType = FunctionConfig.TaintFromStr((string)row.Cells["Taint"].Value); Taint pTaint = new Taint(pTaintType); if (pTaintType == TaintTypes.G) { string[] paramDepNames = ((string)row.Cells["Deps"].Value).Split(new char[] { ' ' }); foreach (string paramDep in paramDepNames) { pTaint.getDependencies().Add(paramDep); } } FunctionConfig.Param param = new FunctionConfig.Param(); param.name = pName; param.paramType = pType; param.paramTaint = pTaint; parameters.Add(param); } function = new FunctionConfig(fname, returnType, returnTaint, parameters); } catch (InvalidOperationException) { MessageBox.Show("Function cannot be added! Invalid dependencies"); this.DialogResult = DialogResult.Cancel; } }
private bool CheckNewFunc(FunctionConfig newFunc) { bool found = false; foreach (FunctionConfig f in functions) { if (f.name.Equals(newFunc.name)) { found = true; break; } } if (found) return false; return true; }
private void btnOk_Click(object sender, EventArgs e) { try { string fname = tbFname.Text; Types returnType = FunctionConfig.TypeFromStr((string)comboType.SelectedItem); TaintTypes returnTaintType = FunctionConfig.TaintFromStr((string)comboTaint.SelectedItem); Taint returnTaint = new Taint(returnTaintType); if (returnTaintType == TaintTypes.G) { string[] returnDepNames = tbReturnDeps.Text.Split(new char[] { ' ' }); foreach (string retDep in returnDepNames) { returnTaint.getDependencies().Add(retDep); } } IList<FunctionConfig.Param> parameters = new List<FunctionConfig.Param>(); foreach (DataGridViewRow row in dgParams.Rows) { if (row.IsNewRow) continue; string pName = (string)row.Cells["Name"].Value; Types pType = FunctionConfig.TypeFromStr((string)row.Cells["Type"].Value); TaintTypes pTaintType = FunctionConfig.TaintFromStr((string)row.Cells["Taint"].Value); Taint pTaint = new Taint(pTaintType); if (pTaintType == TaintTypes.G) { string[] paramDepNames = ((string)row.Cells["Deps"].Value).Split(new char[] { ' ' }); foreach (string paramDep in paramDepNames) { pTaint.getDependencies().Add(paramDep); } } FunctionConfig.Param param = new FunctionConfig.Param(); param.name = pName; param.paramType = pType; param.paramTaint = pTaint; parameters.Add(param); } function = new FunctionConfig(fname, returnType, returnTaint, parameters); } catch (InvalidOperationException) { MessageBox.Show("Function cannot be added! Invalid dependencies"); this.DialogResult = DialogResult.Cancel; } }
private bool CheckNewFunc(FunctionConfig newFunc) { bool found = false; foreach (FunctionConfig f in functions) { if (f.name.Equals(newFunc.name)) { found = true; break; } } if (found) { return(false); } return(true); }
private static void writeFunctionConfigs(StreamWriter writer, FunctionConfig func) { writer.WriteLine(); writer.WriteLine("++++++++++"); writer.WriteLine(AddComment(func.name, "function name")); writer.WriteLine(AddComment(StrFromType(func.returnType), "function return type")); writer.WriteLine(AddComment(StrFromTaint(func.returnTaint.taintType), "function return taint")); int retDepCount = 0; if (func.returnTaint.taintType == TaintTypes.G) { retDepCount = func.returnTaint.getDependencies().Count; } writer.WriteLine(AddComment(retDepCount.ToString(), "function return deps count")); for (int i = 0; i < retDepCount; ++i) { writer.WriteLine(AddComment(func.returnTaint.getDependencies()[i], "function return dep " + i)); } writer.WriteLine(AddComment(func.parameters.Count.ToString(), "function param count")); foreach (Param param in func.parameters) { writer.WriteLine("=========="); writer.WriteLine(AddComment(param.name, "param name")); writer.WriteLine(AddComment(StrFromType(param.paramType), "param type")); writer.WriteLine(AddComment(StrFromTaint(param.paramTaint.taintType), "param taint")); int paramDepCount = 0; if (param.paramTaint.taintType == TaintTypes.G) { paramDepCount = param.paramTaint.getDependencies().Count; } writer.WriteLine(AddComment(paramDepCount.ToString(), "param deps count")); for (int i = 0; i < paramDepCount; ++i) { writer.WriteLine(AddComment(param.paramTaint.getDependencies()[i], "param dep " + i)); } } }
private static void writeFunctionConfigs(StreamWriter writer, FunctionConfig func) { writer.WriteLine(); writer.WriteLine("++++++++++"); writer.WriteLine(AddComment(func.name, "function name")); writer.WriteLine(AddComment(StrFromType(func.returnType), "function return type")); writer.WriteLine(AddComment(StrFromTaint(func.returnTaint.taintType), "function return taint")); int retDepCount = 0; if (func.returnTaint.taintType == TaintTypes.G) { retDepCount = func.returnTaint.getDependencies().Count; } writer.WriteLine(AddComment(retDepCount.ToString(), "function return deps count")); for (int i = 0; i < retDepCount; ++i) { writer.WriteLine(AddComment(func.returnTaint.getDependencies()[i], "function return dep " + i)); } writer.WriteLine(AddComment(func.parameters.Count.ToString(), "function param count")); foreach(Param param in func.parameters) { writer.WriteLine("=========="); writer.WriteLine(AddComment(param.name, "param name")); writer.WriteLine(AddComment(StrFromType(param.paramType), "param type")); writer.WriteLine(AddComment(StrFromTaint(param.paramTaint.taintType), "param taint")); int paramDepCount = 0; if (param.paramTaint.taintType == TaintTypes.G) { paramDepCount = param.paramTaint.getDependencies().Count; } writer.WriteLine(AddComment(paramDepCount.ToString(), "param deps count")); for (int i = 0; i < paramDepCount; ++i) { writer.WriteLine(AddComment(param.paramTaint.getDependencies()[i], "param dep " + i)); } } }
private void btnSaveConfig_Click(object sender, EventArgs e) { FunctionConfig.writeFunctionConfigs(filename, functions); MessageBox.Show("New configuration saved to " + filename); }