http://bugs.winehq.org/show_bug.cgi?id=28268
Summary: Wininet doesn't know what to do with Ashen Empires Product: Wine Version: 1.3.27 Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wininet AssignedTo: wine-bugs@winehq.org ReportedBy: liamdawe@gmail.com
Ashen empires seems to dislike the current implementation of wininet (and the built in IE - had to use IE7 + native wininet for it to work)
Here is a link to the infolog: http://pastebin.com/JdarGjEh
http://bugs.winehq.org/show_bug.cgi?id=28268
--- Comment #1 from Austin English austinenglish@gmail.com 2011-09-06 04:16:24 CDT --- (In reply to comment #0)
Ashen empires seems to dislike the current implementation of wininet (and the built in IE - had to use IE7 + native wininet for it to work)
Here is a link to the infolog: http://pastebin.com/JdarGjEh
Please attach it here, don't use external sites.
http://bugs.winehq.org/show_bug.cgi?id=28268
--- Comment #2 from Liam Dawe liamdawe@gmail.com 2011-09-06 05:10:58 CDT --- Created an attachment (id=36250) --> (http://bugs.winehq.org/attachment.cgi?id=36250) The terminal output to show the fixmes
http://bugs.winehq.org/show_bug.cgi?id=28268
--- Comment #3 from Austin English austinenglish@gmail.com 2013-11-13 16:51:08 CST --- This is your friendly reminder that there has been no bug activity for 2 years. Is this still an issue in current (1.7.6 or newer) wine? If so, please attach the terminal output in 1.7.6 (see http://wiki.winehq.org/FAQ#get_log).
http://bugs.winehq.org/show_bug.cgi?id=28268
--- Comment #4 from Liam Dawe liamdawe@gmail.com --- Created attachment 47858 --> http://bugs.winehq.org/attachment.cgi?id=47858 Newest log in 1.7.13
http://bugs.winehq.org/show_bug.cgi?id=28268
--- Comment #5 from Liam Dawe liamdawe@gmail.com --- It still happens, attached a new log, this was in 1.7.13.
http://bugs.winehq.org/show_bug.cgi?id=28268
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.ashenempires.com | |/download.aspx CC| |focht@gmx.net Summary|Wininet doesn't know what |Ashen Empires login fails |to do with Ashen Empires |
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello Liam,
I can't reproduce your 'success' with native components.
Prerequisite: 'winetricks -q ie7 wininet'
The login fails, 'Unable to connect to login server' is reported.
There is an application log file 'Pixel Mine Launcher.log' in app folder:
--- snip --- Pixel Mine Launcher Start ... CLauncherClientDlg::OnNavigateComplete [http://login.pixelminegames.com/App_Images/Background.htm] CLauncherClientDlg::OnNavigateComplete CLauncherClientDlg::OnDocumentComplete [http://login.pixelminegames.com/App_Images/Background.htm] CLauncherClientDlg::DoDataExchange CLauncherClientDlg::OnDocumentComplete CLauncherClientDlg::OnBnClickedButtonLogin QueryInfoStatusCode != HTTP_STATUS_OK, 400 was returned instead. --- snip ---
What are your exact steps to reproduce?
Regards
http://bugs.winehq.org/show_bug.cgi?id=28268
--- Comment #7 from Liam Dawe liamdawe@gmail.com --- I don't get what you're asking. Are you saying it works for you?
http://bugs.winehq.org/show_bug.cgi?id=28268
--- Comment #8 from Liam Dawe liamdawe@gmail.com --- The previous work-around no longer works I just tested it. So i will need to update the app to Garbage as it can't be run now.
http://bugs.winehq.org/show_bug.cgi?id=28268
--- Comment #9 from Anastasius Focht focht@gmx.net --- Hello Liam,
--- quote --- The previous work-around no longer works I just tested it. So i will need to update the app to Garbage as it can't be run now. --- quote ---
yes, that's what I meant ... even with native IE7 + wininet the login fails. It returns HTTP Error 400 Bad request. Can you verify this client works on Windows/VM?
Regards
http://bugs.winehq.org/show_bug.cgi?id=28268
--- Comment #10 from Liam Dawe liamdawe@gmail.com --- Yes it does work on Windows as expected.
http://bugs.winehq.org/show_bug.cgi?id=28268
--- Comment #11 from Anastasius Focht focht@gmx.net --- Hello Liam,
using 'wireshark' I captured the part after clicking login button in the launcher:
Client sent:
--- snip --- POST /OOB.ashx HTTP/1.0 Host: login.pixelminegames.com Content-Length: 308 User-Agent: Pixel Mine Launcher Launcher / 2.9 Cookie: ASP.NET_SessionId=zkim2b55mbw5gx55b42asgqq
<some encrypted data> --- snip ---
Server answer:
--- snip --- HTTP/1.1 400 Bad Request Connection: close Date: Sat, 22 Mar 2014 22:30:26 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Cache-Control: private Content-Length: 0 --- snip ---
It might be related to the encrypted content gathered at the client side. I could try to figure out the data before it gets encrypted but it might be useful to figure out a working recipe and subsequently capture at least one 'successful' login session to know what to look out for...
Regards
http://bugs.winehq.org/show_bug.cgi?id=28268
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|wininet |iphlpapi Summary|Ashen Empires login fails |PixelMine Ashen Empires | |Launcher login fails | |(server-side ASP.NET code | |can't handle more than 5 | |host adapter MAC addresses | |returned from | |GetAdaptersInfo in auth | |request) Ever confirmed|0 |1
--- Comment #12 from Anastasius Focht focht@gmx.net --- Hello Liam,
I found the problem - it's not even a Wine bug.
Additionally to the authentication info (username, password and some other thing I couldn't quickly identify), the MAC addresses from all host network adapters are encoded in the 'POST' request.
The launcher uses GetAdaptersInfo() API to fetch the adapters info. It filters out all MIB_IF_TYPE_LOOPBACK type adapters and converts the MAC addresses from the remaining adapters to hex-strings before encoding the whole POST content.
Unfortunately there seems to be a hard limit on the server-side ASP.NET code (request handler) which just discards the requests if too many addresses found. The 'HTTP/1.1 400 Bad Request' was not really helpful, I had to do some testing to figure out the limit. Up to 5 adapter addresses are allowed until it responds with error code 400. Many Linux machines are multi NIC/homed and in my case 7 adapter addresses (including virtual NIC's) were being sent with the request.
After limiting it to 5 adapters by changing iphlpapi (or at runtime with the debugger), the login worked.
As already said, this is not the fault of Wine but a server side limit. Some guy writing the ASP.NET server code didn't think to deep about this (probably a matter of pay hehe).
You could modify Wine code to limit the number of adapter info structures returned by iphlpapi.GetAdaptersInfo() but I would advise against it because this influences Wine's behaviour globally, potentially affecting other software.
Options:
1) Notify the vendor and hoping for a fix on their side
2) Limit the number of 'seen' adapters locally with Linux tools (if/ifconfig)
3) Patch the installer itself.
This works (tested) but unfortunately triggers the auto-update functionality of the launcher each time (checksum). The patch would be reverted after restart unless more measures are taken - which qualifies for hacking.
In general the launcher works pretty fine with builtins. There was no native override needed - another testimony that Wine evolved.
Regards
http://bugs.winehq.org/show_bug.cgi?id=28268
--- Comment #13 from Liam Dawe liamdawe@gmail.com --- So there is no way for Wine to work with this game without the user editing something basically?
http://bugs.winehq.org/show_bug.cgi?id=28268
--- Comment #14 from Anastasius Focht focht@gmx.net --- Hello Liam,
--- quote --- So there is no way for Wine to work with this game without the user editing something basically? --- quote ---
yes, it won't work out of the box unless the vendor fixes the server side handling of the auth request to allow for more adapter MAC addresses.
Not sure why they need to collect this data .. maybe for identifying/banning purpose (knowledgeable people can easily circumvent this anyway).
Regards
https://bugs.winehq.org/show_bug.cgi?id=28268
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #15 from joaopa jeremielapuree@yahoo.fr --- Anatasius, don't you think this bug should be close as WONTFIX?
https://bugs.winehq.org/show_bug.cgi?id=28268
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID URL|http://www.ashenempires.com |https://web.archive.org/web |/download.aspx |/20140826105045/http://www. | |pixelminegames.com/download | |s/Pixel%20Mine%20Installer. | |exe
--- Comment #16 from Anastasius Focht focht@gmx.net --- Hello folks,
resolving 'INVALID' here.
The issue is still present on the ASP server-side scripts. One can use any (invalid) user/pass on login page to test - just the POST data matters here.
With two NICs:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files (x86)/Pixel Mine
$ WINEDEBUG=+wininet wine ./PixelMineLauncher.exe ... 0009:trace:wininet:build_request_header Adding custom header L"Host" (L"login.pixelminegames.com") 0009:trace:wininet:build_request_header Adding custom header L"Content-Length" (L"160") 0009:trace:wininet:build_request_header Adding custom header L"User-Agent" (L"Pixel Mine Launcher Launcher / 2.9") 0009:trace:wininet:build_request_header Adding custom header L"Cookie" (L"ASP.NET_SessionId=51noijucz5xjufzlp2j45n45") 0009:trace:wininet:HTTP_HttpSendRequestW Request header -> L"POST /OOB.ashx HTTP/1.0\r\nHost: login.pixelminegames.com\r\nContent-Length: 160\r\nUser-Agent: Pixel Mine Launcher Launcher / 2.9\r\nCookie: ASP.NET_SessionId=51noijucz5xjufzlp2j45n45\r\n\r\n" 0009:trace:wininet:HTTP_HttpSendRequestW full request -> "POST /OOB.ashx HTTP/1.0\r\nHost: login.pixelminegames.com\r\nContent-Length: 160\r\nUser-Agent: Pixel Mine Launcher Launcher / 2.9\r\nCookie: ASP.NET_SessionId=51noijucz5xjufzlp2j45n45\r\n\r\n\xbd\x11\x1b\x1fl\x1dh\x1bj\x19\x01\x07w\x05" 0009:trace:wininet:HTTP_GetResponseHeaders --> 0009:trace:wininet:read_line returning "HTTP/1.1 200 OK" 0009:trace:wininet:HTTP_GetResponseHeaders version [L"HTTP/1.1"] status code [L"200"] status text [L"OK"] 0009:trace:wininet:HTTP_ProcessHeader --> L"Status": L"200" - 0xa0000000 ... --- snip ---
With three NICs:
--- snip --- 0009:trace:wininet:build_request_header Adding custom header L"Host" (L"login.pixelminegames.com") 0009:trace:wininet:build_request_header Adding custom header L"Content-Length" (L"194") 0009:trace:wininet:build_request_header Adding custom header L"User-Agent" (L"Pixel Mine Launcher Launcher / 2.9") 0009:trace:wininet:build_request_header Adding custom header L"Cookie" (L"ASP.NET_SessionId=nuvmnrmyf5iq5j55omqlj145") 0009:trace:wininet:HTTP_HttpSendRequestW Request header -> L"POST /OOB.ashx HTTP/1.0\r\nHost: login.pixelminegames.com\r\nContent-Length: 194\r\nUser-Agent: Pixel Mine Launcher Launcher / 2.9\r\nCookie: ASP.NET_SessionId=nuvmnrmyf5iq5j55omqlj145\r\n\r\n" 0009:trace:wininet:HTTP_HttpSendRequestW full request -> "POST /OOB.ashx HTTP/1.0\r\nHost: login.pixelminegames.com\r\nContent-Length: 194\r\nUser-Agent: Pixel Mine Launcher Launcher / 2.9\r\nCookie: ASP.NET_SessionId=nuvmnrmyf5iq5j55omqlj145\r\n\r\n\x86*.(Y\x16e\x14g\x12\x14\x10b\x1e\x1d\x17\x1do\x1bh\x19\x07\x07\x0b\x05q\x13\x01\x02\x0f\n\x0c\x0e"... 0009:trace:wininet:HTTP_GetResponseHeaders --> 0009:trace:wininet:read_line returning "HTTP/1.1 200 OK" 0009:trace:wininet:HTTP_GetResponseHeaders version [L"HTTP/1.1"] status code [L"200"] status text [L"OK"] 0009:trace:wininet:HTTP_ProcessHeader --> L"Status": L"200" - 0xa0000000 --- snip ---
With four NICs:
--- snip --- 0009:trace:wininet:build_request_header Adding custom header L"Host" (L"login.pixelminegames.com") 0009:trace:wininet:build_request_header Adding custom header L"Content-Length" (L"228") 0009:trace:wininet:build_request_header Adding custom header L"User-Agent" (L"Pixel Mine Launcher Launcher / 2.9") 0009:trace:wininet:build_request_header Adding custom header L"Cookie" (L"ASP.NET_SessionId=ojiiiijhmhbdxa45nlv4ko3x") 0009:trace:wininet:HTTP_HttpSendRequestW Request header -> L"POST /OOB.ashx HTTP/1.0\r\nHost: login.pixelminegames.com\r\nContent-Length: 228\r\nUser-Agent: Pixel Mine Launcher Launcher / 2.9\r\nCookie: ASP.NET_SessionId=ojiiiijhmhbdxa45nlv4ko3x\r\n\r\n" 0009:trace:wininet:HTTP_HttpSendRequestW full request -> "POST /OOB.ashx HTTP/1.0\r\nHost: login.pixelminegames.com\r\nContent-Length: 228\r\nUser-Agent: Pixel Mine Launcher Launcher / 2.9\r\nCookie: ASP.NET_SessionId=ojiiiijhmhbdxa45nlv4ko3x\r\n\r\n{\xd7\xd1\xd5\xa2\xd3\xa2\xd1\xac\xdf\xdb\xdd\xa9\xdb\xda\xd2\xc6\xb2\xc4\xb5\xc2\xc2\xc0\xce\xce\xbc"... 0009:trace:wininet:HTTP_GetResponseHeaders --> 0009:trace:wininet:read_line returning "HTTP/1.1 200 OK" 0009:trace:wininet:HTTP_GetResponseHeaders version [L"HTTP/1.1"] status code [L"200"] status text [L"OK"] 0009:trace:wininet:HTTP_ProcessHeader --> L"Status": L"200" - 0xa0000000 --- snip ---
With more than five NICs:
--- snip --- 0009:trace:wininet:build_request_header Adding custom header L"Host" (L"login.pixelminegames.com") 0009:trace:wininet:build_request_header Adding custom header L"Content-Length" (L"296") 0009:trace:wininet:build_request_header Adding custom header L"User-Agent" (L"Pixel Mine Launcher Launcher / 2.9") 0009:trace:wininet:build_request_header Adding custom header L"Cookie" (L"ASP.NET_SessionId=is4cj255jiv3mm55dum4semj") 0009:trace:wininet:HTTP_HttpSendRequestW Request header -> L"POST /OOB.ashx HTTP/1.0\r\nHost: login.pixelminegames.com\r\nContent-Length: 296\r\nUser-Agent: Pixel Mine Launcher Launcher / 2.9\r\nCookie: ASP.NET_SessionId=is4cj255jiv3mm55dum4semj\r\n\r\n" 0009:trace:wininet:HTTP_HttpSendRequestW full request -> "POST /OOB.ashx HTTP/1.0\r\nHost: login.pixelminegames.com\r\nContent-Length: 296\r\nUser-Agent: Pixel Mine Launcher Launcher / 2.9\r\nCookie: ASP.NET_SessionId=is4cj255jiv3mm55dum4semj\r\n\r\n\xd2~z|\rz\tx\x0bf`d\x16baka\x1bo\x1cmkkgi%GUVSVPR_[\.Z\X+FDOD@CC@KNN]KMHN\xb7\xb2\xb5\xb0\xb3\xb2"... 0009:trace:wininet:HTTP_GetResponseHeaders --> 0009:trace:wininet:read_line returning "HTTP/1.1 400 Bad Request" 0009:trace:wininet:HTTP_GetResponseHeaders version [L"HTTP/1.1"] status code [L"400"] status text [L"Bad Request"] 0009:trace:wininet:HTTP_ProcessHeader --> L"Status": L"400" - 0xa0000000 --- snip ---
$ sha1sum Pixel\ Mine\ Installer.exe 97cfde4e26f1144ca22c4dab745552ba985768d3 Pixel Mine Installer.exe
$ du -sh Pixel\ Mine\ Installer.exe 484K Pixel Mine Installer.exe
$ wine --version wine-5.0-rc2
Regards
https://bugs.winehq.org/show_bug.cgi?id=28268
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED CC| |nerv@dawncrow.de
--- Comment #17 from André H. nerv@dawncrow.de --- closing invalid