Documentation for the 3Flatline Dixie code scanner.
3Flatline Dixie platform is a static code analyzing platform that works on a number of different languages: C/C++. ObjC, Golang, Java, Python, Ruby, JavaScript, PHP, and decompiled pseudo-C. It uses a number of different methods to scan your submitted code and find potential vulnerabilities.
The best way to interface with the Dixie platform is to use the Command Line Interface (CLI). While there is a web application that allows submission of tasks, the CLI is the intended interface and will allow the most capability.
The basic process of the Dixie platform is to take your files and analyze them for vulnerabilities. While the platform has various deployment models (public SaaS, private infrastructure, stand-alone machine) they work generally the same way:
Your source files are only on the servers long enough to be scanned. You retain all rights to your code and to the results: the last thing we want is a database full of proprietary code and potential vulnerabilities contained in it. To that end, we implement a number of automatic processes:
While 3Flatline finds bugs, it doesn't tell you if they are vulnerable. Determining the reachability of the bug is on our roadmap.
Currently, the size of the file to analyze is 18k tokens. What does that mean in english? If a file returns as too big to analyze, break it up into the largest file possible that still is under the token limit. Be sure not to chunk the file in the middle of a function. Doing this automatically is on the roadmap.
Most LLM AI platforms are limited by the number of tokens they can process. As a result, the platform is limited by the amount of context it can process. What does this mean to you? 3Flatine doesn't produce high quality results for bug classes that require a lot of context.
For example:
3Flatline uses a generative AI LLM and as a result may have false positives. We have reduced those greatly (less than 1 percent), but it can still happen.
The platform excels at analysis of any C based language. The model used for these languages is automatically detected based on the file extension. There is no special handling needed by the user to get the best analysis.
To have Dixie analyze decompiled C, be sure to remove the data section and any trampoline functions. For C like languages(golang, Rust), the best results are from running 3Flatline against the compiled code and not the source.
The platform is also effective when used on web application source code (php, ruby etc). The model used for these languages is automatically detected based on the file extension. There is no special handling needed by the user to get the best analysis.