|
|
#1 (permalink) |
|
Marios's Mustache Wax
Join Date: Jul 2006
Posts: 1
Reputation: 10
|
If you're having the same problem I'm having, where the GunzLauncher hangs and then reports a message of a connection "timing out", this information might prove useful. After poking around for several hours, here's what I've discovered...
#1 - GunzLauncher uses active FTP (as opposed to passive) to update. That means it will not be able to update through NAT without some fancy FTP proxying. (Maple Story does this too, but is much easer to get around since it doesn't have problem #2, below) #2 - GunzLauncher uses hard coded IPv4 addresses, not domain names, to internally store the list FTP servers. This means you can't do a simple redirection to a FTP proxy via the hosts file, but will instead require IP redirection (not possible on windows, AFAIK). Also, FYI, the hard coded FTP servers are 218.145.160.136, 218.145.160.135, and 218.145.160.134, and are accessable using the username "root" (sad) with the password "qorhvk". (see this image) #3 - GunzLauncher is compressed by UPX. Why does this matter? Well, let's say you don't have a handy *nix/*BSD box around to do IP redirection, but still want to redirect the executable to your local ftp proxy. You'll need to unpack it before editing the strings...so grab UPX! Just remember to change the checksum in the PE header to the appropriate value if you make any changes to the exe. #4 - GunzLauncher supidly blocks in the GUI thread and quits pumping messages if it can't get the requested file from the FTP server (patch.xml). This is why the app seems to hang for a long period of time when it can't get the file from the FTP server due to (stupidly) using active FTP. My guess, without decompiling it and going more in depth, is they're using blocking recv()s in the GUI thread...either spawn another thread for blocking operations or (better yet) use asyncronous I/O! Hopefully this helps end users (those who will actually take the time to hack this instead of just uninstalling it right away)....but more importantly, I hope this will cause the developers to get their act together. I mean, come on! Active FTP?! Too lazy to use gethostbyname() (or if you're doing it in your GUI thread, WSAAsyncGetHostByName)?! Blocking in the tread that's supposed to be waiting idle in your message loop most of the time?! ...About the only thing they did do right was compress with UPX! Thanks for your time, I hope this satisfactorily explains the issues with GunzLauncher to those having problems with it. Last edited by Orum; 07-29-2006 at 09:47 AM. |
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|