libyal / libesedb

Library and tools to access the Extensible Storage Engine (ESE) Database File (EDB) format.
GNU Lesser General Public License v3.0
341 stars 91 forks source link

Error exporting Windows 10 Windows.edb file #46

Closed hydrocloricacid closed 5 years ago

hydrocloricacid commented 5 years ago

I get the following when attempting to export all tables from a windows 10 windows.edb file. Using "libesedb-utils 20170121-4" from Ubuntu Boinic.

Any suggestions ? ----------------cmd line output --------------- esedbexport -m all -v Windows.edb esedbexport 20170121

Opening file. Exporting table 1 (MSysObjects) out of 41. Exporting index 2 (Name). Exporting index 3 (RootObjects). Exporting table 2 (MSysObjectsShadow) out of 41. Exporting table 3 (MSysObjids) out of 41. Exporting table 4 (MSysLocales) out of 41. Exporting table 5 (CatalogManager_Properties) out of 41. Exporting table 6 (CatalogStorageManager) out of 41. Exporting table 7 (SystemIndex_Gthr) out of 41. Exporting index 2 (indexDocID). Exporting index 3 (indexRecovery). Exporting table 8 (SystemIndex_GthrPth) out of 41. Exporting table 9 (SystemIndex_GthrAppOwner) out of 41. Exporting table 10 (SystemIndex_1_Properties) out of 41. Exporting table 11 (SystemIndex_1) out of 41. Exporting table 12 (SystemIndex_PropertyStore) out of 41. Unable to export file. libuna_unicode_character_copy_to_utf8: UTF-8 string too small. libuna_utf8_string_with_index_copy_from_byte_stream: unable to copy Unicode character to UTF-8. libfvalue_string_copy_to_utf8_string_with_index: unable to copy byte stream to UTF-8 string. libfvalue_value_copy_to_utf8_string_with_index: unable to copy instance to UTF-8 string. libfvalue_value_copy_to_utf8_string: unable to copy value: 0 to UTF-8 string. libesedb_record_value_get_utf8_string: unable to copy value to UTF-8 string. libesedb_long_value_get_utf8_string: unable to retrieve UTF-8 string from record value. export_handle_export_long_record_value: unable to retrieve value string: 305. export_handle_export_record_value: unable to export long record value: 305. export_handle_export_record: unable to export record value: 305. export_handle_export_table: unable to export record. export_handle_export_file: unable to export table: 11.

joachimmetz commented 5 years ago

Using "libesedb-utils 20170121-4" from Ubuntu Boinic.

This is an old experimental version so could you:

  1. try the latest experimental version https://github.com/libyal/libesedb/releases
  2. if the issue persists provide met with debug logging, also see: https://github.com/libyal/libesedb/wiki/Troubleshooting#format-or-behavioral-errors
hydrocloricacid commented 5 years ago

Will do.

hydrocloricacid commented 5 years ago

Ok, got it to work fine using latest experimental & latest github. I built it using the following configure options: ./configure --enable-debug-output --enable-verbose-output --enable-wide-character-type

I'll have to check whether it works without the "--enable-wide-character-type" option. As there was a mention of UTF8 I figured enabling wide characters "may" assist. ( don't know exactly how that changes things)

joachimmetz commented 5 years ago

wide characters are wchar_t which are UTF32 or UTF16 depending on the platform. the --enable-wide-character-type enables wchar_t API functions, this is primarily needed for Windows since Linux and Mac support narrow character (char) Unicode file names but Windows does not.

hydrocloricacid commented 5 years ago

I compiled the latest from github without --enable-wide-character-type and it worked fine. So doesn't need the --enable-wide-character-type option. I'll close the ticket as it works with your latest experimental & current github. Thanks. Looks like debian & Ubuntu need to use a newer version.

joachimmetz commented 5 years ago

Looks like debian & Ubuntu need to use a newer version.

Yes unfortunately this is outside the direct control of this project.

hydrocloricacid commented 5 years ago

yes, the usual story. Thanks for your help. :-)

On Sat, Feb 9, 2019 at 10:06 PM Joachim Metz notifications@github.com wrote:

Looks like debian & Ubuntu need to use a newer version.

Yes unfortunately this is outside the direct control of this project.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/libyal/libesedb/issues/46#issuecomment-462027562, or mute the thread https://github.com/notifications/unsubscribe-auth/AKbhQqNiDg_lrXLCCNrp_elzRQSDXg7Lks5vLo-FgaJpZM4amPTW .

hydrocloricacid commented 5 years ago

Ok, under Debian stable the issue occurs for me with "libesedb-utils (20181229-3)" the debian testing version. URL: https://packages.debian.org/buster/libesedb-utils. I have pulled from github the latest version with same result. i'll do further testing and come back to you when I have some more results.

hydrocloricacid commented 5 years ago

oh, for got to mention. The version that I got working earlier was compiled under cygwin using latest experimental & latest github (at the time) on Win10.

hydrocloricacid commented 5 years ago

Hmm, looking like a mistake on my end. found that even though I had installed "libesedb-utils (20181229-3)" the 2017 deb stable edition of the esedb libs were installed. Assume this also affected my tests with the latest github & experimental code.

Have confirmed that under debian stable the github & latest experimental code work.(once 2017 lib removed). My next test will be on "libesedb-utils (20181229-3)" using it's associated 20181228 lib.

hydrocloricacid commented 5 years ago

That passed. I'll close this ticket again. So : On cygwin the github & latest experimental both worked. On debian github, experimental & debian testing/unstable works.