Giter VIP home page Giter VIP logo

obfuscate-model's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

obfuscate-model's Issues

Links checkbox should not affect model recursion checkbox

This is a remnant from when model reference and linked libraries were one function. The Links checkbox should not affect model recursion.

  • Remove the LinksCheckBoxValueChanged callback
  • Rename Links to Library Links for clarity

Create a User Guide

Create a user guide using the usual LaTeX format used for all McSCert tools. This includes the sections:

  1. Introduction - Brief description of the tool.
    1. Include a Disclaimer paragraph that clearly states that it is up to the user to ensure the model is completely obfuscated and that all sensitive data is removed. We make no guarantees that everything is removed.
  2. How to Use the Tool
    1. Prerequisites and Installation - Should be relatively the same as other tools.
    2. Getting Started - How to open the GUI.
    3. Functionality - In depth explanation of the GUI and its options. Include a screenshot of GUI.
    4. Errors and Warnings - If there are any known errors that users will likely experience, describe them here. May not be applicable.
  3. Example - Create a simple demo model, or use a built-in Simulink model (e.g. https://www.mathworks.com/help/simulink/examples.html), to demonstrate the changes before/after the tool is applied.
  4. Matlab Commands - Describe the obfuscateModel command in case someone wants to use the tool from the command window.

Add functionality to pass through certain subsystems

Feature Request

  • The user should have the option to delete the implementation of a subsystem

Required Changes

  • Add a Passthrough Subsystem button and a text field to show the currently selected subsystem
  • If the button is pressed, the internals of the subsystem are deleted
    • Inports are terminated
    • Outports are grounded

Add option to recursively obfuscate model references

Feature Request

  • Currently, only the parent model and its subsystems are obfuscated
  • The user should have the option to obfuscate all of the model references in the system

Required Changes

  • Add a checkbox Recurse Model References
  • If the checkbox is enabled, call obfuscateModel(sys) for each model reference in the system
  • findCallers(simFcn) will need to be altered in order to find callers in other models

Display currently selected model name in System textbox

Users may have multiple models open at once. It would be helpful if the GUI's "System" textbox displayed the name of the currently selected model when this option is selected. An example of the desired change is shown in the image below. The text should still not be editable. If there is no model currently selected, this textbox should be empty.
gui

Redundant options for signal names

The Remove: Signal Names and Hide: Signal Propagation options are redundant.

  • Remove the Hide: Signal Propagation option
  • Update the user guide Section 2.3.4 writeup and Figure 1
  • Update README GUI image

Handle locked models

Before trying to obfuscate, the tool needs to check whether or not the model is locked. Currently it tries to obfuscate the model anyways, and fails.

Hide block formatting details

Blocks have different formatting options which can show or hide details about the block. These include:

  • displaying the block name
  • displaying the signal name (i.e. signal propagation)
  • displaying the port labels on a subsystem
  • displaying the content preview of a subsystem

The user should be able to enable/disable these options via the GUI.

Screen Shot 2020-10-30 at 11 40 15 AM

Option to select all/none of the app parameters

Feature Request

  • Add an option to select and deselect all of the app options
  • Useful if the user only wants to select one of the options
    • Instead of deselecting each option then selecting the option required -> select none then select the desired option

Update cover image

After GUI changes to add Simulink Function support (#1 ), select/deselect all buttons (#2), and any other items for the First Release milestone, update the cover image used in the README, as well as the cover image on the MathWorks File Exchange.

Numeric constants should not be renamed

Constants can be either numbers or variable names of Matlab workspace data that provide the numeric values. Currently, all constants are renamed to generic variable names. In the case of numeric constants, the number can remain as is.

Block names are not obfuscated

Some blocks do not have their names obfuscated. This issue can be observed with Ground and Terminator blocks. In general, all blocks names should be handled such that they are given a generic name based on the BlockType parameter.

TerminatorGroundRenamingNotHappening

Separate library link and model reference removal options

Feature Request

  • The user should be able to obfuscate model references and library links separately.

Required Changes

  • The removeLinks script should be broken up into two separate scripts: one for model references and one for library links.
  • obfuscateModelGUI should have separate check box options for "Remove Library Links" and "Remove Model References". Tooltips should reflect this.
  • The model recursion should be disabled if "Remove Model References" is checked. Model recursion can be enabled when "Remove Library Links" is enabled.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.