$30 off During Our Annual Pro Sale. View Details »

Give me my drawing back!

Give me my drawing back!

Dragging your proprietary files to free-sofware world

Fridrich Strba

April 11, 2013

More Decks by Fridrich Strba

Other Decks in Technology


  1. 1 Give me my drawing back! Fridrich Štrba Straight Engineer

    Dragging your proprietary files to free-sofware world Валек Филиппов Reverse Engineer
  2. 2 LibreOffice's contribution to wider FOSS eco-system libwpg, libvisio, libcdr

    and libmspub Standalone libraries Using the same interface Standalone framework to generate ODG Internal class generating SVG for lazy hackers :) Users outside LibreOffice Inkscape reuses libvisio and libcdr in 0.49 Calligra reuses libvisio and (possibly) libcdr Scribus recently started integration with libmspub More users, more bug reports and (eventually) fixes
  3. Done!

  4. 4 Visio Import filter - libvisio Google Summer of Code

    2011 Eilidh McAdam (currently Lanedo) Started with Visio 2000 – Visio 2010 file-formats LibreOffice 3.5 release Extended in 2012 to ALL Visio file-format versions that ever existed LibreOffice 4.0 release Visio 2013 (*.vsdx), Visio 1–5, Visio XML Drawings (*.vdx) Stencils/master shapes extraction Used in trunk inkscape (since December 2012)
  5. 5 Extending the Visio version coverage Bug driven rewrite A

    document (most likely generated by SDK) Re-factoring of the parser Microsoft Visio 2013 Preview xml-based (ooxml-ish) file-format (*.vsdx) Another rewrite of the parsers Side-effect: support of Visio XML Drawing (*.vdx) Versions 1 to 5 Improved understanding of the file-format Cleaner and simpler parser
  6. 6 CorelDraw import filter - libcdr Work started in late

    2011 Released in LibreOffice 3.6 An interesting challenge after the success of libvisio Continuation of a fruitful collaboration Support for ALL CorelDraw file-formats Starting from version 1 (code Waldo) Ending by CorelDraw x6 released in March 2012
  7. 7 Extending the CorelDraw version coverage Extending the coverage upwards

    x4 and x5 (RIFF documents inside ZIP storage) x6 (More complicated ZIP-based structure) Extending the coverage downwards Version 6 (first 32-bit version) Versions 4 and 5 (16-bit versions) Version 3 (first RIFF-based version) Shape transform does not accumulate group transforms Versions 2 and 1 Not RIFF based at all
  8. 8 Microsoft Publisher Import filter - libmspub Google Summer of

    Code 2012 Brennan T. Vincent Flagship feature of LibreOffice 4.0 Version support MS Publisher 97 MS Publisher 98/2000 MS Publisher 2002-2013
  9. Tools¡

  10. 10 OleToy and colupatr Developed for Reverse-engineering Collaboration between reverse

    and straight engineers RCA for import issues OleToy Support for many proprietary formats Knobs for quick navigation and information gathering Colupatr Hexviewer with variable string length “Hints” for values, comments, format for storing findings
  11. 11 Tools update Added support for CPT, PICT, CDW, CPL,

    CDX, ICC, CMX, QPW, RTF, ABR, BGR, ZIP Improved support for CDR, PUB, XLS, WMF, Escher Freehand 7, 8 and 9 support
  12. ¿Join?

  13. 13 Future file-formats to import Google Summer of Code LibreOffice

    mentoring organization in 2013 again The possibility for a student to work with outstanding mentors (Altsys, Aldus, Macromedia & Adobe) Freehand File-format partially reverse-engineered Ripe to be a successful project A talented student can make difference in LibreOffice and known universe
  14. 14 All text and image content in this document is

    licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy. QA and Stoning session