x
This website is using cookies. We use cookies to ensure that we give you the best experience on our website. More info. That's Fine
HPC:Factor Logo 
 
Latest Forum Activity

wcecabinfo - Tool to extract info from cab files

1 2 3 4
C:Amie Page Icon Posted 2022-04-04 6:20 PM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,952
Location:
United Kingdom
Status:
Any news on that mod @Karpour?
 Top of the page
Karpour Page Icon Posted 2022-04-04 11:45 PM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
439
Location:
Austria
Status:
Been very very busy these days, hopefully I can do it this week
 Top of the page
C:Amie Page Icon Posted 2022-04-05 3:55 PM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,952
Location:
United Kingdom
Status:
Thanks for the update, looking forward to it.
 Top of the page
C:Amie Page Icon Posted 2022-05-07 11:56 AM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,952
Location:
United Kingdom
Status:
Any news?
 Top of the page
Karpour Page Icon Posted 2022-05-08 10:02 PM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
439
Location:
Austria
Status:
Took a bit, had some troubles including iconv when compiling with mingw-w64! I managed to statically link it and it should work now!

Please lmk if this works for you, i removed all piping support from the Windows build!



Attachments
----------------
Attachments wcecabinfo.exe (636KB - 2 downloads)
 Top of the page
C:Amie Page Icon Posted 2022-05-09 10:59 AM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,952
Location:
United Kingdom
Status:
Yes, it is working now, thank-you

Couple of issues to report:
If you send it an invalid argument, it crashes e.g. -? or --hh instead of returning the instructions.
The output from --verbose / -V is being returned via StdErr and not via StdOut, which had me perplexed for a moment there as to why I was getting a sea of null's back.
The output from --json / -j is not going to either StrErr or StdOut


These are all erroring:
File was identified as a CAB file by file signature 
Extract process exited with status 2 
Error: extract process exited with status 2

EZTwinPeek
EzAppBar
EzBackup
EzMind
EzCalc
EzCleaner
EzJezzBall
EzHangMan
EzSokoban
EzEnergySize
EzCrash
EzSolitaire
update122us.sh3.cab
TaskManager.HPC_MIPS.CAB
TaskManager.HPC_SH3.CAB
PipeGame.HPC_SH3.CAB
PipeGame.PRO_ARM.CAB
PipeGame.PRO_MIPS.CAB
floppy.sh3.cab
Biorythm.HPC_MIPS.CAB
Biorythm.HPC_SH3.CAB
ppv_sh3.cab
ppv_mips.cab
pcmcia.sh3.cab

These exited with 0:
reViewMD.ARM.CAB
reViewMD.MIPS.CAB
PictPocket.ARM.CAB
PictPocket.MIPS.CAB

It hit a few win32 CAB's and choked with exit status 0 obviously, but that's not it's fault. Perhaps that should be a non-zero value to specifically indicate that it is not a CE CAB file?


It takes about 4 minutes for the server to scan through the entire repository and exit the script.

It is super annoying that so many CAB's e.g. GVCommander.Arm 1100.CAB ( https://www.hpcfactor.com/scl/902/Golden_Valley_Software/GVCommander... ) identify as CEF. Why would you do that people?

Great work sir!
Now the question is whether the data is useful enough to merge into the database or are there too many CEF entries
I shall have to scrutinise it and ponder.
 Top of the page
Karpour Page Icon Posted 2022-05-09 3:12 PM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
439
Location:
Austria
Status:
Oh, these are definitely all some issues i have to iron out. The windows build is very untested, I'll probably create some automated tests to make sure things work properly in the future. Could you send me some of the files that don't work? Also some Win32 CABs would be good. Despite this being a tool for CE cabs, there should be proper handling for regular Win32 cabs!
 Top of the page
C:Amie Page Icon Posted 2022-05-09 3:23 PM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,952
Location:
United Kingdom
Status:
All of the above are in the Download Centre. Just search for the file name.
All the Ez apps are apps rather than files, but you'll find them in the SCL - strange that they're all erroring. I wonder what they did?

Some Win32's are: https://www.hpcfactor.com/downloads/858/Microsoft_Outlook_98/version...
 Top of the page
Karpour Page Icon Posted 2022-05-09 3:49 PM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
439
Location:
Austria
Status:
Alright, I'll check it out soon! Btw, if you find specific bugs, feel free to create GitHub issues for them, that way I'll always have them in sight when I have time to further develop this
 Top of the page
C:Amie Page Icon Posted 2022-05-09 4:00 PM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,952
Location:
United Kingdom
Status:
So some general stats. After some tidying up and a lot of manual work

421 CAB's in the repository had max CE version data
963 CAB's have min CE version data
2052 have architecture data (I decided not to overwrite existing records arch data that came off of wcecabinfo as most of it was junk. I only added to the database where I had no manual data in already from scanning through file names. So only a fraction of these will have been inserted from the output from the tool)

Scanning the CAB file name for the Microsoft numeric CPU ID or "arm", "sh3" is more reliable than the data put into CAB header. The vast majority of what is in the CAB header for versioning is junk. Lots of CE 1, CE 4.99999, CE 1000, 6.9999 and so on. That needed sanitising, which to be fair didn't take too long for the 400 odd records.
After that it was a case of updating the table to normalise the CE version into the database primary key's, adjusting the data type and enabling referential integrity.

So the tool has helped to fix a few holes, for sure. I had considered making it part of the data population process for the SCL, however on reflection to the reliability and integrity of the data. I don't think that it would be worth it. Definitely very useful and kudos to @Karpour for writing it!
 Top of the page
Karpour Page Icon Posted 2022-05-09 5:49 PM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
439
Location:
Austria
Status:
What would be really useful for me would be a list of all unique values for fields like architecture, min version, max version, unsupported, just to get an idea of what things I might encounter.

When someone put in maxVersion 6.999, I would assume that means this app supports any version of Windows CE 6.
Since I have a definite list of all version numbers, I could round this to the next-lowest version number for example.
 Top of the page
C:Amie Page Icon Posted 2022-05-10 10:13 AM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,952
Location:
United Kingdom
Status:
PM sent with the requested data Least I can do frankly!

6.999 will mean anything up to CE 6 R3.

Rounding down to the highest CE version was what I did before I keyed the index.

There is one entry in there which has a negative number though!

Thanks
 Top of the page
C:Amie Page Icon Posted 2022-05-13 12:06 PM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,952
Location:
United Kingdom
Status:
There is certainly something to be said over trusting the data reliability of the CAB headers. On looking at the data a bit more, there are now CAB packages that are recorded as minVer being for Windows CE 1 because that was what the CAB told it (e.g. Ilium recordian or DSForth). Obviously CE 1 doesn't support CAB's and Recordian is a 2.11+ app, so it is a case of GIGO.
 Top of the page
Karpour Page Icon Posted 2022-05-14 11:18 AM
#
Avatar image of Karpour
Subscribers
H/PC Philosopher

Posts:
439
Location:
Austria
Status:
Yeah for minVer it would be best to extract all files from the cab and check minVer using wcepeinfo for every PE file in there!
 Top of the page
C:Amie Page Icon Posted 2022-05-14 12:06 PM
#
Avatar image of C:Amie
Administrator
H/PC Oracle

Posts:
17,952
Location:
United Kingdom
Status:
There's your next automation project
 Top of the page
1 2 3 4
Jump to forum:
Seconds to generate: 0.234 - Cached queries : 73 - Executed queries : 9