0

I am trying to understand the underlying structure of SIEMENS NX .part files. I expect to find some sort of structural markup language (e.g., XML) that defines the CAD. You may download example .part files from all over the internet, but here is a sample uploaded on my Google Drive. What I have done so far:

  • Following this tutorial I first tried the file <fileName>.part command, yielding:
<fileName>.prt: Composite Document File V2 Document, Cannot read section info
  1:     14543 'UG_PART/JT'
  2:    246426 'UG_PART/UG_PART'
  3:     10725 'images/preview'
  4:        56 'part/attrs'
  5:       375 'qafmetadata'
  • Then I tried the binwalk <fileName>.prt:
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
64222         0xFADE          mcrypt 2.2 encrypted data, algorithm: blowfish-448, mode: CBC, keymode: MD5 hash
64416         0xFBA0          mcrypt 2.2 encrypted data, algorithm: blowfish-448, mode: CBC, keymode: MD5 hash
64517         0xFC05          mcrypt 2.2 encrypted data, algorithm: blowfish-448, mode: CBC, keymode: MD5 hash
64618         0xFC6A          mcrypt 2.2 encrypted data, algorithm: blowfish-448, mode: CBC, keymode: MD5 hash
64719         0xFCCF          mcrypt 2.2 encrypted data, algorithm: blowfish-448, mode: CBC, keymode: MD5 hash
116859        0x1C87B         mcrypt 2.2 encrypted data, algorithm: blowfish-448, mode: CBC, keymode: 4bit
170920        0x29BA8         CSYS header, little endian, size: 0
282624        0x45000         XML document, version: "1.0"
282688        0x45040         XML document, version: "1.0"
286720        0x46000         JPEG image data, JFIF standard 1.01
  • Then following this page I should be able to extract the XML files using binwalk -D "xml document":.xml <fileName>.prt, however, it appears as if there are an infinite number of XMLs embedded inside each other like the Russian dolls:
.
├── _<fileName>.prt.extracted
│   ├── 45000.xml
│   ├── 45040.xml
│   ├── _45000.xml.extracted
│   │   ├── 0.xml
│   │   ├── 40.xml
│   │   ├── _0.xml.extracted
│   │   │   ├── 0.xml
│   │   │   └── 40.xml
│   │   └── _40.xml.extracted
│   │       └── 0.xml
│   └── _45040.xml.extracted
│       └── 0.xml
├── <fileName>.prt

I would appreciate it if you could help me know how I can extract the XML structure without being trapped in this infinite loop of embedded XML files.

P.S.

  1. Someone has already reversed engineered the Autodesk Inventor files here. So maybe we can learn from what they have done and replicate.
  2. I posted this question on Reddit and this comment is telling me the .prt files are Microsoft Compound File Binary (CFB) / Object Linking and Embedding (OLE) archive files that can be decompressed using 7zip. So I asked this follow-up question on the 7zip forum.
  3. Asked this follow-up question on Reddit about the decryption of blowfish-CBC files.
1
  • You should probably pick one place for questions and not scatter them everywhere…
    – Igor Skochinsky
    Feb 16 at 22:19

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy