Hello!

I was trying to unpack the driver for abit WLP-01 downloaded from
http://file.abit.com.tw/pub/download/driver2/airpace/wifi_U1011_20070511.zip

I tries unshield 0.5.1 first, then version 0.6.  Both dumped core.
Debugging showed that header->major_version was determined as 0, which
lead to self->file_group_count being read from a wrong location.
self->file_group_count was more than MAX_FILE_GROUP_COUNT, which lead to
unshield_component_new() calling abort().

This is what the debugging output shows:

$ unshield -D3 x data1.cab 
[unshield_read_headers:226] Reading header from .hdr file 1.
[unshield_read_headers:281] Version 0x020004b0 handled as major version 0
[unshield_get_cab_descriptor:81] Cabinet descriptor: 00003162 0000146f 0000146f 
0000000c
[unshield_get_cab_descriptor:83] Directory count: 3
[unshield_get_cab_descriptor:84] File count: 53
Aborted (core dumped)

The major version is read from this digit:

0x020004b0
      ^

If I change the sources to assume version 9, I can successfully unpack
the archive.

It looks like the actual version of the software is 12 (the version of
the archive format may be different)

$ strings setup.exe |grep -i shield
http://www.installshield.com/isetup/ProErrorCentral.asp?ErrorCode=%d : 
0x%x&ErrorInfo=%s
InstallShield.OCISetupPlayer12.12
InstallShield.OCISetupPlayer12
InstallShield
InstallShield Silent
InstallShield\ISEngine12.0
SOFTWARE\InstallShield\Cryptography\Trust
(c) Copyright 2004 InstallShield Software Corporation (All Rights Reserved)
InstallShieldPendingOperation
InstallShield Setup Player
    name="InstallShield.Setup"
<description>InstallShield.Setup</description>

I suggest applying this patch as a workaround.

--- lib/libunshield.c
+++ lib/libunshield.c
@@ -271,6 +271,9 @@ static bool unshield_read_headers(Unshie
       
       header->major_version = (header->common.version >> 12) & 0xf;
 
+      if (header->common.version == 0x020004b0)
+        header->major_version = 9;
+
 #if 0
       if (header->major_version < 5)
         header->major_version = 5;

-- 
Regards,
Pavel Roskin

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
SynCE-Devel mailing list
SynCE-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synce-devel

Reply via email to