Trouble finding central directory when reading ZIP file - zip

I've been trying to develop my own zip library by reading the Wikipedia article on it, for the sake of learning something new.
My first file is a zipped text file containing 215 bytes. It works really well, and the
End of central directory (EOCD) correctly gives me the offset of the central directory header.
https://i.imgur.com/zKmF52i.png
However, when trying larger files, like in this example a zipped 216 byte text file I can't
seem to find the offset anymore. From the info I've found in the Wikipedia article and from Google, the offset to the central director should be 16 bytes after the EOCD, but the value
at that position doesn't correctly show the offset I'm looking for.
https://i.imgur.com/U9Gwwfh.png
It feels like im missing something about how the data should be interpreted since applications like 7-zip and Windows Explorer can read it fine. What am I missing here?

I posted my own answer to this question which contains a link to a working solution that you could use to learn about this problem.
Link: How does one find the start of the central directory in zip files

Related

How to debug a .zip generator algorithm?

I'm trying to implement a minimal version of .zip file generation following this spec: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
I don't actually need compression, I just need a way to string together a bunch of files into a single widely adopted archive format with the capability to stream in file data while streaming out the zip.
So far I'm partially successful, 7-zip and windows built in zip extractor can extract them just fine, winrar and macos built in zip extractor are giving me corrupted archive errors.
I can't for the life of me find the actual problem(s?) though, as far as I can tell the .zips are built 100% to the specification but the spec is a big wall of text and with swooping changes from one zip file version to the next along with legacy attributes taking on new functions it is tad confusing.
Does anyone know of an extraction tool that can give me more specific errors than just "archive is corrupt"?
Or perhaps a zip generation utility where I can pick and choose between all the different ways of building a zip file so I can go and compare the results byte by byte?
Does anyone know of an extraction tool that can give me more specific errors than just "archive is corrupt"?
The unzipada tool # Zip-Ada project will do exactly that
Testing archive ko.zip
raised ZIP.ARCHIVE_CORRUPTED : Bad (or no) end-of-central-directory
[C:\Ada\za\unzipada.exe]
Zip.Find_First_Offset at zip.adb:589
Unzip.Extract at unzip.adb:667
Unzipada at unzipada.adb:259
By browsing the code (like: zip.adb, line 589) you can narrow down the corrupt archive issues. For building the tool, download the sources and follow the readme.txt file. There are also pre-built binaries for Windows.

cv2.VideoCapture directory of images

I though this would be simple, but i have been caught by the simplest of puzzles which i can't find the answer to anywhere,
I have some code which reads images and then OpenCV looks for differences.
I read files with the following command
vs = cv2.VideoCapture("/home/andrew/images/image_%6d.jpg")
and this work perfectly with images called image_000000.jpg image_000001.jpg
However i don't want to rename my images so i would like to read files called
MDAlarm_20180921-031140.jpg whcih contain the date then time.
What is the printf format for this ? as what ever I try it does not work i.e no files found or do the files need to start from 0 , so i need to append an index
starting at 000000?
Lastly once i have this working how can i tell which file is being processed ?
Many Thanks
Andrew

How can I tell what language a file is written in?

I've been trying to find, for a long time, what language this file is written in so that I can decompile it. I have tried to decompile as .luac, .class and also tried to open it as .jar and .rar and .zip.
Although the file extension is .car I have never seen this extension before and there certainly aren't any openers for it on the internet. I have even gone to the point of finding a .car opener, but it wasn't for my .car.
So, I suspect it has just been renamed.
Can anyone tell me what language it is coded in?
I don't know if I'm allowed to post files here, as I have only just joined, but here is a Dropbox link to the file: https://www.dropbox.com/s/y6jd62lfywoskqi/code.car?dl=1
Any help would be appreciated. This is the first line in Notepad++:
rac T D ` constants.lu œÂ tools.stashsaver.lu à scenes.sellitems.lu ˆî scenes.draw.lu ¼ gui.menu.lu 6 scenes.missions.lu ˆP
A quick dump of the file leads to several URLs referencing:
http://www.coronalabs.com/
So based on this I'd say the file was created with the SDK they offer.
https://coronalabs.com/products/corona-sdk/
Corona lets developers use integrated Lua, layered on top of
C++/OpenGL, to build graphic applications. https://en.wikipedia.org/wiki/Corona_%28software%29

Cannot zip files with the same name?

I could not believe this: it seems that the zip specification does not allow two different files with the same file name going into one zip file.
In my case I use an external file to specify all the files I wanna zip.
This could look like this:
../Website1/favicon.ico
../Website2/favicon.ico
and there we are, that's not possible, despite keeping the directory structure. You would expect the name to be <../Website1/favicon.ico> rather than but that does not seem to be the case, I get:
"Invalid ZIP request (cannot repeat names in Zip file)"
with WinZip. I tried the same with 7Zip - same result.
Strangely googling did not show many hits that really fit but those I found seem to confirm my findings. That's hard to believe since this limitation is very severe. I actually struggle to understand why this did not hit me a couple of decades earlier.
Am I overlooking something very basic here?
To be precise:
Adding these two files:
C:\Temp\Website1\FavIcon
C:\Temp\Website2\FavIcon
results in a single file; the last Add wins...
This however:
Website1\FavIcon
Website2\FavIcon
results in a zip file that contains both files.

Customize AWStats Downloads

This seems ridiculous to me, but AWStats is not configured to count exe or dmg files as downloads. What config file or setting can I change? I tried looking through the documentation but found no mention of anything pertaining to Downloads.
I did find out to add another download section containing my file types here http://antezeta.com/news/awstats, but neither the hits or bandwidth calculations are even close to being correct.
Add an extra section to the end of the awstats.config file. The following example counts *.dmg files:
ExtraSectionName1="Disk Image Downloads"
ExtraSectionCodeFilter1="200 304"
ExtraSectionCondition1="URL,\.dmg"
ExtraSectionFirstColumnTitle1="File"
ExtraSectionFirstColumnValues1="URL,(.*)"
ExtraSectionFirstColumnFormat1="%s"
ExtraSectionStatTypes1=HB
ExtraSectionAddAverageRow1=0
ExtraSectionAddSumRow1=1
MaxNbOfExtra1=100
MinHitExtra1=1
Bandwidth counted is unlikely to match file size times download count. Many downloads will not complete or will be interrupted.

Resources