In my previous blog post, I talked briefly about PHP-Ast/Oracle a PHP source code static analysis framework. I am developing it in order to play with source code and security. The goal of that framework is to be able to perform different type of operations on a PHP source code. I am releasing this tool as it is because I think people may be interested with this... Anyway, I learned a lot doing this.
PHP-Ast/Oracle is developed in C++ and the tool has been developed mainly for:
- Implementing source code (security) metrics
- Gathering information on the source code (data-flow variable paths, etc.) by building the model
- Creating personal source code obfuscations (currently only pattern based is supported, no data-type)
- Source to source converter (e.g. PHP to C++ code for static analysis purposes)
How it works
The source code repository is divided in 2 parts:
- php-ast is the converter from PHP to XML
- php-oracle is the actual engine
php-oracle get a XML file as input which is the output of php-ast. In the SVN there are some python scripts I used in order to combine the 2 tools (they may be outdated i.e. doesn't work with the current php-oracle).
How I think you could use php-oracle
I do not attend to make a clean build with an executable etc. I just provide source code. I decided to give only the source code because I don't want to spend too much time on creating a clean software, it's only research oriented stuff. Furthermore, there is not much documentation in the source code (advantages of being alone to develop such a tool) and then, only really interested people will download this! I can then help them if they have some question about how it works etc.
Getting the source code
You can download the source here: php-ast-oracle.zip
And the trac repository has more documentation about what the framework actually does: http://trac2.assembla.com/php-ast
Development
The tool is in perpetual development, I don't want to create a real software from that, but I think people can use it to perform security analysis, compute stuff, make code transformation and so on.


Last comments