twogood / unshield

Tool and library to extract CAB files from InstallShield installers
MIT License
351 stars 75 forks source link

Failed to extract file. #104

Open Reminiscence0 opened 4 years ago

Reminiscence0 commented 4 years ago

Hello. I'm trying to extract cab files from an InstallShield installer. Link: https://www.kodensha.jp/sstec/update/jb/jb7up.exe First, I extracted the executable using isx.exe. I got data1.cab, data2.cab, etc. Then, running "unshield -d output x data1.cab", I got a error message: extracting: out/JCMAIN/jcmain.DDB Failed to extract file 'jcmain.DDB'.Run unshield again with -D 3 for more information. Am I doing something wrong? Please give me some suggestion. Thanks.

twogood commented 4 years ago

So what output do you get when your run with -D 3 ?

twogood commented 4 years ago

You could also try the -O parameter, it means Use old compression

Reminiscence0 commented 4 years ago

Option "-D 3" outputs lots of messages flashing away quickly. Option "-D 2" outputs "[unshield_file_save:749] Decompression failed with code -3.". I tried extract with"-O", but the program crashed right after the line " extracting: out/JCMAIN/jcmain.DDB".

twogood commented 4 years ago

code -3 usually means that -O should work :)

But I'll have to check these myself then.

Reminiscence0 commented 4 years ago

I checked the version of I'm using is "1.4". And the latest version in Github release is "1.4.3". Could this be the reason I'm getting errors? If it is so, where can I download the latest version? The "download page" link in readme expired and automatically deleted.

twogood commented 4 years ago

The Windows version of unshield is a mess, sorry about that.

twogood commented 4 years ago

I will try with the latest code.

twogood commented 4 years ago

There are some fixes regarding character encoding that might be relevant when you download from .jp?

Reminiscence0 commented 4 years ago

It might not be the problem of character encoding. This error file contains only ASCII characters ("JCMAIN/jcmain.DDB"), and all the other files with similar name ("JCMAIN/jcmain.DIC") extracted with no error. Anyway, thanks for your investigation in advance :)

twogood commented 4 years ago

But if you are on Windows why not just run the installer?

Reminiscence0 commented 4 years ago

The file I'm trying to extract is an update file installer. I reinstalled the OS a year ago, and some registry of installation gone with the previous OS. When I run the updator, it shows me the program is not installed. I also can't found the install disk of main program which I bought over six years ago. So I want to extract the update files and patch them manully.

kpyrkosz commented 4 years ago

Is the size of one of the cabfiles bigger than 2GB? If so that's the problem on windows. Did you try unpacking on bsd/linux?

twogood commented 4 years ago

@kpyrkosz jb7up.exe is 129 127 321 bytes, so that should be fine

twogood commented 4 years ago

I had some problems getting the data2.cab from jb7up.exe but in the end I got these files and could extract them:

Sizes:

513208 data1.cab 26602 data1.hdr 126144698 data2.cab

MD5 sums:

d79e4d1403e01828710a142c9b142eef data1.cab 08dfee0adeca298e1a3cfae8eb1a69d3 data1.hdr 93542b855b274fd1fa4cce412ea93674 data2.cab

Output:

unshield -d extracted x data1.cab
Cabinet: data1.cab
  extracting: extracted/CJDLL/KodenshaCjDllV7.dll
  extracting: extracted/JCMAIN/jcmain.DDB
  extracting: extracted/JCMAIN/jcmain.DIC
  extracting: extracted/_Support_0x0411_Files/_isres_0x0411.dll
  extracting: extracted/_Support_Non-SelfRegistering/isrt.dll
  extracting: extracted/_Support_Non-SelfRegistering/default.pal
  extracting: extracted/_Support_Misc_i64_Support_Files/ISBEW64.exe
  extracting: extracted/CW_LTB5IME_64/B5IMEL2.IME
  extracting: extracted/jBeijing7_64bit/JBCJT.dll
  extracting: extracted/jBeijing7_64bit/Addins/TARO/JSTRADD.exe
  extracting: extracted/jBeijing7_64bit/Addins/JB7Addins_AUSw.exe
  extracting: extracted/jBeijing7_64bit/Addins/Jb7Addins_A.exe
  extracting: extracted/jBeijing7_64bit/Addins/Jb7Addins_U.exe
  extracting: extracted/jBeijing7_64bit/Addins/TrustInstaller.dll
  extracting: extracted/jBeijing7_64bit/Addins/JBV7OA.exe
  extracting: extracted/jBeijing7_64bit/Addins/WORD_JB7.DOT
  extracting: extracted/CJDLL_64bit/KodenshaCjDllV7.dll
  extracting: extracted/_Support_Misc_x64_Support_Files/ISBEW64.exe
  extracting: extracted/ROBOWORD_SYSTEM64/Rm64.dll
  extracting: extracted/ROBOWORD_SYSTEM64/Rm64.exe
  extracting: extracted/_Support_Build_Generated_Support_Files/FontData.ini
  extracting: extracted/_Support_Build_Generated_Support_Files/DIFxData.ini
  extracting: extracted/CW_LTB5IME/B5IMEL2.IME
  extracting: extracted/JCTXHex/JCTSHEX7.dll
  extracting: extracted/CW_LTGBIME_64/ugbimel2.IME
  extracting: extracted/JBeijing7/transpdf.exe
  extracting: extracted/JBeijing7/CjDic.dll
  extracting: extracted/JBeijing7/JCT.exe
  extracting: extracted/JBeijing7/JbNavi.exe
  extracting: extracted/JBeijing7/ChnGen.dll
  extracting: extracted/JBeijing7/ExcelTMI.exe
  extracting: extracted/JBeijing7/JBCJT.dll
  extracting: extracted/JBeijing7/JBJCT.dll
  extracting: extracted/JBeijing7/JBV7_PDFmanual.pdf
  extracting: extracted/JBeijing7/JCTFILET.exe
  extracting: extracted/JBeijing7/TeamViewer - _l_b_g_o_R___p_\_R_____u_____i_____[_g_R___g___[___j_\_t_g.url
  extracting: extracted/JBeijing7/TranslateMemoryCJ.dll
  extracting: extracted/JBeijing7/TranslateMemoryCJWS2.exe
  extracting: extracted/JBeijing7/SYSTEMDIC/BunreiJc_Z.DDB
  extracting: extracted/JBeijing7/SYSTEMDIC/BunreiJc_Z.DIC
  extracting: extracted/JBeijing7/SYSTEMDIC/JCFRDIC.DDB
  extracting: extracted/JBeijing7/SYSTEMDIC/JCFRDIC.DIC
  extracting: extracted/JBeijing7/SYSTEMDIC/cwcdic.dic
  extracting: extracted/JBeijing7/SYSTEMDIC/cwcjdic.dic
  extracting: extracted/JBeijing7/SYSTEMDIC/ffc.idx
  extracting: extracted/JBeijing7/SYSTEMDIC/fmemdic.dat
  extracting: extracted/JBeijing7/SYSTEMDIC/omiai.dic
  extracting: extracted/JBeijing7/SYSTEMDIC/omiai.idx
  extracting: extracted/JBeijing7/SYSTEMDIC/omiaiidx.idx
  extracting: extracted/JBeijing7/SYSTEMDIC/ssknecbg.dat
  extracting: extracted/JBeijing7/SYSTEMDIC/ssknecbg.idx
  extracting: extracted/JBeijing7/SYSTEMDIC/zfc.idx
  extracting: extracted/JBeijing7/SYSTEMDIC/zmemdic.dat
  extracting: extracted/JBeijing7/Addins/ExcelJB7.dll
  extracting: extracted/JBeijing7/Addins/ExcelJB7_2007.dll
  extracting: extracted/JBeijing7/Addins/ExcelJB7_2007.dll.manifest
  extracting: extracted/JBeijing7/Addins/ExcelJB7_2007.vsto
  extracting: extracted/JBeijing7/Addins/ExcelJB7_2010.dll
  extracting: extracted/JBeijing7/Addins/ExcelJB7_2010.dll.manifest
  extracting: extracted/JBeijing7/Addins/ExcelJB7_2010.vsto
  extracting: extracted/JBeijing7/Addins/ExcelJB7_2013.dll
  extracting: extracted/JBeijing7/Addins/ExcelJB7_2013.dll.manifest
  extracting: extracted/JBeijing7/Addins/ExcelJB7_2013.vsto
  extracting: extracted/JBeijing7/Addins/Excel_JB7.xla
  extracting: extracted/JBeijing7/Addins/JBV7OA.exe
  extracting: extracted/JBeijing7/Addins/Jb7Addins_A.exe
  extracting: extracted/JBeijing7/Addins/Jb7Addins_U.exe
  extracting: extracted/JBeijing7/Addins/Microsoft.Office.Tools.Common.v4.0.Utilities.dll
  extracting: extracted/JBeijing7/Addins/Microsoft.Office.Tools.Common.v4.0.Utilities.xml
  extracting: extracted/JBeijing7/Addins/PP_JB7.ppt
  extracting: extracted/JBeijing7/Addins/PowerPointJB7.dll
  extracting: extracted/JBeijing7/Addins/PowerPointJB7_2007.dll
  extracting: extracted/JBeijing7/Addins/PowerPointJB7_2007.dll.manifest
  extracting: extracted/JBeijing7/Addins/PowerPointJB7_2007.vsto
  extracting: extracted/JBeijing7/Addins/PowerPointJB7_2010.dll
  extracting: extracted/JBeijing7/Addins/PowerPointJB7_2010.dll.manifest
  extracting: extracted/JBeijing7/Addins/PowerPointJB7_2010.vsto
  extracting: extracted/JBeijing7/Addins/PowerPointJB7_2013.dll
  extracting: extracted/JBeijing7/Addins/PowerPointJB7_2013.dll.manifest
  extracting: extracted/JBeijing7/Addins/PowerPointJB7_2013.vsto
  extracting: extracted/JBeijing7/Addins/TrustInstaller.dll
  extracting: extracted/JBeijing7/Addins/WORD_JB7.DOT
  extracting: extracted/JBeijing7/Addins/WordJB7.dll
  extracting: extracted/JBeijing7/Addins/WordJB7_2007.dll
  extracting: extracted/JBeijing7/Addins/WordJB7_2007.dll.manifest
  extracting: extracted/JBeijing7/Addins/WordJB7_2007.vsto
  extracting: extracted/JBeijing7/Addins/WordJB7_2010.dll
  extracting: extracted/JBeijing7/Addins/WordJB7_2010.dll.manifest
  extracting: extracted/JBeijing7/Addins/WordJB7_2010.vsto
  extracting: extracted/JBeijing7/Addins/WordJB7_2013.dll
  extracting: extracted/JBeijing7/Addins/WordJB7_2013.dll.manifest
  extracting: extracted/JBeijing7/Addins/WordJB7_2013.vsto
  extracting: extracted/JBeijing7/Addins/Microsoft.Office.Interop.Excel.dll
  extracting: extracted/JBeijing7/Addins/Microsoft.Office.Interop.PowerPoint.dll
  extracting: extracted/JBeijing7/Addins/Microsoft.Office.Interop.SmartTag.dll
  extracting: extracted/JBeijing7/Addins/Microsoft.Office.Interop.Word.dll
  extracting: extracted/JBeijing7/Addins/Microsoft.Office.Tools.Common.v9.0.dll
  extracting: extracted/JBeijing7/Addins/Microsoft.Office.Tools.v9.0.dll
  extracting: extracted/JBeijing7/Addins/Microsoft.Vbe.Interop.dll
  extracting: extracted/JBeijing7/Addins/Microsoft.VisualStudio.Tools.Applications.HostAdapter.v9.0.dll
  extracting: extracted/JBeijing7/Addins/Microsoft.VisualStudio.Tools.Applications.Hosting.v9.0.dll
  extracting: extracted/JBeijing7/Addins/Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll
  extracting: extracted/JBeijing7/Addins/Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll
  extracting: extracted/JBeijing7/Addins/Microsoft.VisualStudio.Tools.Office.Runtime.v9.0.dll
  extracting: extracted/JBeijing7/Addins/Office.dll
  extracting: extracted/JBeijing7/Addins/TARO/JSTRADD.exe
  extracting: extracted/CW_LT/UDICB5/CwL2B5u.ADC
  extracting: extracted/CW_LT/UDICB5/CwL2B5u.SDC
  extracting: extracted/CW_LT/UDICGB/CwL2GBu.ADC
  extracting: extracted/CW_LT/UDICGB/CwL2GBu.SDC
  extracting: extracted/CW_LT/UDic_Original/UDICB5/CwL2B5u.ADC
  extracting: extracted/CW_LT/UDic_Original/UDICB5/CwL2B5u.SDC
  extracting: extracted/CW_LT/UDic_Original/UDICB5/CwL2B5u.dic
  extracting: extracted/CW_LT/UDic_Original/UDICGB/CwL2GBu.ADC
  extracting: extracted/CW_LT/UDic_Original/UDICGB/CwL2GBu.SDC
  extracting: extracted/CW_LT/UDic_Original/UDICGB/CwL2GBu.dic
  extracting: extracted/CW_LTGBIME/ugbimel2.IME
  extracting: extracted/CW_LTSYS32/CWBuCodeLT.dll
  extracting: extracted/_Support_Misc_Support_Files/corecomp.ini
  extracting: extracted/_Support_Misc_Support_Files/dotnetinstaller.exe
  extracting: extracted/CW_LTSYS64/CWBuCodeLT.dll
  extracting: extracted/JCTXHex_64bit/JCTSHEX7.dll
  extracting: extracted/_Support_Language_Independent_OS_Independent_Files/license.rtf
  extracting: extracted/ROBOWORD_SYSTEM/RmNT.dll
  extracting: extracted/ROBOWORD_SYSTEM/RmNT.exe
  extracting: extracted/ROBOWORD_SYSTEM/TcHkMsRd.dll
  extracting: extracted/ROBOWORD_SYSTEM/TcHook32.dll
  extracting: extracted/ROBOWORD_SYSTEM/TcNls.dll
  extracting: extracted/ROBOWORD_SYSTEM/TcRmApi.dll
  extracting: extracted/_Support_0x0411_String_Tables/StringTable_0x0411.ips
 --------  -------
          130 files

Process finished with exit code 0
twogood commented 4 years ago

@kpyrkosz Could you provide an MS Windows build of unshield main branch for @Reminiscence0 ?

twogood commented 4 years ago

Using parameter -e CP932 will extract the TeamViewer.url file with the right encoding on Linux:

  extracting: extracted/JBeijing7/TeamViewer - ネット経由のパソコン遠隔操作(リモートコントロール)ソフト.url
kpyrkosz commented 4 years ago

Both builds (my fixed for windows + your master branch built with mingw) fail to extract the file with error:

Failed to extract file 'TeamViewer - âlâbâgîoùRé╠âpâ\âRâôëôèuæÇì∞üiâèâéü[âgâRâôâgâìü[âïüjâ\âtâg.url'.Run unshield again with -D 3 for more information.

Using -e CP932 prints out This version of Unshield is not built with encoding support. and exits.

twogood commented 4 years ago

Thanks a lot @kpyrkosz - very good information. Maybe this is the actual issue for @Reminiscence0?

twogood commented 4 years ago

Windows will certainly not like the backslashes in the file name and maybe not everything else either