IDA's Sneak Analysis Approach Vs. Static Code Analysis
Static code analysis can identify unreachable code, infinite loops, initialization errors, code complexity, and output variable ranges that could generate a logic problem. Most of the static analysis techniques use an intermediate language interpreter that translates the computer language written by the programmer into a language used by the analysis tool. After the software code is translated into the intermediate language or IL, the IL is processed and reports are generated. These reports are anomalies detected in the IL that require further investigation by a software analyst to determine if a logic or control problem really exists in the actual code. The reports can be extensive and sometimes the IL translation multiplies the number of anomalies because of the particular syntax used when converting the original software code to IL. The anomalies are detected by using a pre-determined list of known problems based on the complexity, program paths, and logic executed within the software paths.

IDA's Software Sneak Analysis can identify similar problems that are detected by static code analysis tools. However, IDA's Software Sneak Analysis methodology provides a more in-depth look at the dynamics of the code. Also, IDA does not use an Intermediate Language translator in it's software tools, instead, IDA uses Software Network Trees and a Program Operation Diagram (POD). These tools are actual program code depicted graphically and topologically to assist in functional and logic analysis of the software. IDA has found that the translation of system software into an IL can become subjective in complex situations. The translation must be assisted by an experienced analyst to obtain a workable model acceptable to the Static Code Analysis software. This human-intervention in the IL process could intoduce of even cover-up an anomaly. Furthermore, when an anomaly is detected using IDA's method, the results require no further verification because IDA's tools are actual source code and system hardware.

IDA then cross-references all variables between the Network Trees to show every instruction where the variable is either referenced or modified (defined). IDA uses the cross references and tracks the software program flow using a POD that demonstrates the order of execution of the software in real time. With this proven methodology, IDA can uncover similar problems that static analysis discovers and also the dynamic, timing problems that may remain hidden by any other technique. IDA can also integrate in actual system hardware in the analysis, not a simulation, to uncover interface problems between the hardware and software.