While a disassembler is cool, I too am bemused by the choice of PHP. I suppose if that is all that you know, then fine. I am reminded of a quote that I'm totally going to screw up: "If you only have a hammer, then every problem is a nail" (or something).
And I say the above half jokingly. You've produced working code, and decided to share it with everyone. That is far more than most people have done. I congratulate you on your accomplishment, even if I snicker at PHP itself. Just don't port it to COBOL, FORTRAN or JCL, ok?
Side-note: The core engine for "cacti" is written in PHP (web page + batch processing scripts).
What would be really awesome is if you could identify, via static code analysis, code from data. I can think of several heuristics for this.
I once worked on a static code analyzer for intelligently disassembling NES roms. It would start with each of the three interrupt vectors and trace all possible code execution paths. I then realized that I had bitten off more than I wanted to when I needed to handle
constructs like this:
Code:
tay
lda some_tbl_msb, y
pha
lda some_tbl_lsb, y
pha
php
rti
But if you could nail stuff like that, it would be TOTALLY AWESOME.