This is the version of MOSDEF included in the most recent Immunity CANVAS release. It features a number of improvements and cool features. It's based on a modified PLY 2.5 that supports multi- threading and has speed optimizations as well as some bug fixes.
It includes essentially an entire pure-Python C-like compiler chain, from source code and a mini-libc to emitting a working ELF binary. It's released under the LGPL. Because MOSDEF is typically used as part of a computer attack known as a buffer overflow, all code it generates is Position Independent Code. The assembly output is not heavily optimized, although the x86 assembler will attempt to make it small by avoiding long jumps where possible. Download it here: http://www.immunityinc.com/resources-freesoftware.shtml A much clearer explanation of what MOSDEF2.0 is/does is here: http://www.immunityinc.com/downloads/MOSDEF2.0.pdf *PLY 2.5 changes included in MOSDEF2.0* Bug fixes: -The MD5 signature generation/verification logic that was used for checking saved parse tables was flawed as the MD5's were generated over different data sets on the write (attributes 'prec' and symbol docstrings were included) and the read (where they weren't). This meant that even when tables were generated and read correctly the MD5's would mismatch and cause table regeneration to occur. This obviously caused a speed hit. -Lex/Parsetables can now be generated for an arbitrary filesystem location rather than having to reside in the current working directory. Speed Improvements: -PLY has been modified to allow threading as well as the use of parser classes instead of modules. In order to achieve this global variables were removed and various functions move to be methods of the Parser class (look at the code in MOSDEF to see the differences, most of the original code was left in but commented out to allow easy comparison) - PLY now dumps its parse/lex tables as pickles, rather than python modules. This saves time and effort on both the writing and more importantly the reading of the tables as various looping code was not required in order to try and create python modules from existing objects. Using pickle here just generally makes more sense as it is much cleaner and easier to modify. [NOTE: Obviously all the normal warnings about untrusted pickles apply, don't use parse/lextables generated by somebody else because you will get 0wned – generate your own parse/lextables and stay safe kids!] Rich -- Immunity Inc --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "ply-hack" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/ply-hack?hl=en -~----------~----~----~----~------~----~------~--~---
