Menu

#6 libmpq can't open patch.MPQ - invalid offset in mpqheader.

open
nobody
None
5
2006-06-21
2006-06-21
CodAv
No

It seems Blizzard did some changes to the MPQ archive
format in WoW 1.10 or 1.11, but just to patch.MPQ.
First, the MPQ header has changed slightly, so libmpq
refuses to open patch.MPQ. At offset 0x04, libmpq
expects a 0x20, but patch.MPQ has a 0x2C at this
location. Hacking libmpq to ignore this change,
succeeds in opening the MPQ file, but WoWmapview
crashes while reading AreaTable.dbc. The file offset in
the MPQ file seems to be incorrect, as the DBC magic
"WDBC" is not there. When I've got some spare time,
I'll have a deeper look into the patch.MPQ, and
probably will come up with a patch, but poorly,
WoWmapview development seems to be stalled.

Discussion

  • Bryan Mayland

    Bryan Mayland - 2006-06-23

    Logged In: YES
    user_id=3052

    I just came here to post the same thing. It appears there
    are 3 new DWORD values in the header now. Here's why
    development is stalled:

    The wowmapview project's web space got shut down by
    sourceforge.net after they received a DMCA violation email
    from the ESA, claiming that it is an "unauthorized access
    program" in violation of their copyrights.

     
  • CodAv

    CodAv - 2006-06-23

    Logged In: YES
    user_id=1153051

    Ha, got it :)

    As I'm using Linux and have no Windows dev environment
    around, I had to change a bunch of things to be able to
    compile it natively under Linux with GNU Automake/Autoconf.
    Then, after some testing, I found the problem(s). libmpq
    assumes a block to be encrypted when the block position is
    different from the actual read result. As a quick hack, I
    added a check for the four block skew, and voila, I can read
    the MPQ file.
    I'm too lazy to come up with a set of diffs, so please
    download my Linux source package and compare the files
    yourself with the official release. To compile it
    successfully, you need zlib, an OpenGL implementation (MESA
    is slow, but enough to compile WoWmapview) and libsdl, all
    libs need to have development headers in place (usually in
    /usr/include).

    Ah, btw: DMCA sucks, I'm so happy not to live in the USA ;)

     
  • CodAv

    CodAv - 2006-06-23

    Logged In: YES
    user_id=1153051

    WoWmapviewer Linux port with fixes for WoW Patch 1.11

    (Ok, SF.net doesn't like my file ^^)

    Get it here anyway:

    http://codav.de/kram/misc/WoW/wowmapview-linux-0.5.tar.bz2

     
  • Nobody/Anonymous

    Logged In: NO

    wowmapview 0.6 works with patch 1.11. It is discussed here (includes a location
    to download app and src):
    http://rpg-exploiters.shoq.net/forums/viewtopic.php?
    t=3378&postdays=0&postorder=asc&start=15

     

Log in to post a comment.

MongoDB Logo MongoDB