$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
Tweet

More Decks by Fridrich Strba

Other Decks in Technology

Transcript

  1. 1
    Give me my drawing back!
    Fridrich Štrba
    Straight Engineer
    Dragging your proprietary files to free-sofware world
    Валек Филиппов
    Reverse Engineer

    View Slide

  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

    View Slide

  3. Done!

    View Slide

  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)

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  9. Tools¡

    View Slide

  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

    View Slide

  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

    View Slide

  12. ¿Join?

    View Slide

  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

    View Slide

  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

    View Slide