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
-~----------~----~----~----~------~----~------~--~---

Reply via email to