Jump to content
Sign in to follow this  
joakim

DllStruct weirdness

Recommended Posts

joakim

Can anyone say if this struct string is correct or incorrect. I'm getting @error=1;

dword lfhSignature;word lfhVersionNeeded;word lfhGeneralPurposeFlag;word lfhCompressionMethod;word lfhDOSTime;word lfhDOSDate;dword lfhCRC32;dword lfhCompressedSize;dword lfhUncompressedSize;word lfhFileNameLength;word lfhExtraFieldLength;char lfhFileName[19];byte[520] lfhExtraField;byte[370] lfhCompressedData

However, if I omit the last 2 the structure is created;

dword lfhSignature;word lfhVersionNeeded;word lfhGeneralPurposeFlag;word lfhCompressionMethod;word lfhDOSTime;word lfhDOSDate;dword lfhCRC32;dword lfhCompressedSize;dword lfhUncompressedSize;word lfhFileNameLength;word lfhExtraFieldLength;char lfhFileName[19]

But it is not consistent as it seems to jump a few bytes back and forth around lfhCRC32. This code is part of a larger zip analyzer and this specific part is looping through the file header signatures. During each loop, the file is reread (not sure if necessary though), and using _WinAPI_SetFilePointer to specify each new signature offset (verified to be correctly determined). The values for lfhFileName, lfhExtraField and lfhCompressedData is calculated beforehand (also verified to be correct). Any ideas?

The same logic is used to generate Central Directory structure, and that works..

Joakim

Share this post


Link to post
Share on other sites
Yashied

dword lfhSignature;
word  lfhVersionNeeded;
word  lfhGeneralPurposeFlag;
word  lfhCompressionMethod;
word  lfhDOSTime;
word  lfhDOSDate;
dword lfhCRC32;
dword lfhCompressedSize;
dword lfhUncompressedSize;
word  lfhFileNameLength;
word  lfhExtraFieldLength;
char  lfhFileName[19];
byte  lfhExtraField[520];
byte  lfhCompressedData[370];

Share this post


Link to post
Share on other sites
joakim

Regarding some wrong values, "align 1" did the trick..

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.