Example #1
0
 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");
 }
Example #2
0
        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;
            }
        }
Example #3
0
 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;
            }
        }
Example #5
0
        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);
        }
Example #6
0
        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));
         }
     }
 }
Example #8
0
 private void btnSaveConfig_Click(object sender, EventArgs e)
 {
     FunctionConfig.writeFunctionConfigs(filename, functions);
     MessageBox.Show("New configuration saved to " + filename);
 }