kakaroto / SWProxy

Summoners War Data Extractor and Parser
GNU Lesser General Public License v3.0
164 stars 86 forks source link

Unable to sync. (Again) #83

Open lucia9096 opened 8 years ago

lucia9096 commented 8 years ago

So is it just me or we can't sync the swproxy with the game again prior to the latest application?

daddyrubin commented 8 years ago

@knifesk said > If you double tap the home screen as soon as the "Connecting to game server" message appears and then switch to settings and set the proxy up, everything works as expected

This lets the proxy run for me but it does not create the files.

lucia9096 commented 8 years ago

So it does connects but the files are not created. Anyone else has the same issue?

ghost commented 8 years ago

yes seems ios is broken

lucia9096 commented 8 years ago

How about android?

Xzandro commented 8 years ago

Android works fine.

daddyrubin commented 8 years ago

i guess i'll have to charge my Tab3 to get the files until it is updated :(

knifesk commented 8 years ago

@daddyrubin then try a moment early.. It works for me... I have to do it several times to get it to work.. the problem is that you're setting the proxy a little late, as the monsters and rune request is already finished

daddyrubin commented 8 years ago

@knifesk Thanks. I was able to get it to work. There is a split second between when it says "Downloading necessary information...." and when it says "Connecting to game server..." that it goes blank. I was able to turn the proxy on at that time and it worked. Hope this helps anyone else.

davidwang2000 commented 8 years ago

This used to work for me but it is broken since the last update.

goku-ssj commented 8 years ago

Does not work for me either since the new game patch. any news?

CnoteLA commented 8 years ago

Yeah, Im not able to get the files generated. It starts up normally and then just hangs endlessly.

Bithnar commented 8 years ago

Same here. It gets to the Touch To Start then just hangs

kupoback commented 8 years ago

Same here does not work. Any other methods to try and get this to upload, besides manually? I really need some help on my account, and don't want to upload everything manually.

fperegrinvs commented 8 years ago

everybody using ios or any android user having this issue ?

kupoback commented 8 years ago

iOS 9.3.2

rolares commented 8 years ago

iOS 8.1.2; same issue of having the proxy work just fine, logs activity as normal - all except for generating optimizer.json and other files.

skroll commented 8 years ago

I was able to get it using daddyrubin's advice. If it doesn't generate the rune information, you gotta be a little bit quicker. It sucks, but it's the only way at the moment for it to work.

Looks like they're detecting a proxy somehow.

fperegrinvs commented 8 years ago

Sadly I don't have an IOS to test this.

skroll commented 8 years ago

I have a feeling that SW is using the CFProxySupport API to check if a proxy is set.

https://developer.apple.com/library/ios/documentation/CoreFoundation/Reference/CFProxySupport/index.html

Since iOS provides a way to check, they're probably actively trying to prevent it.

kupoback commented 8 years ago

No combination of turning proxy on when "Getting Friends List" or "Connecting to Game Server" as it gets to "Touch to Start" and hangs up trying to connect to the game. I've even tried 0.97 to see if that'll do anything either as that was the last working version for me.

fperegrinvs commented 8 years ago

@skroll given that com2us recently changed the crypto key a new update with proxy detection is likely. Could you test this configuring/using a regular proxy and checking if game is ok ?

c2uwillbanme commented 8 years ago

@lstern I can confirm that with a fresh Squid install on a Centos 6.5 server that acts as my home gateway its working... Maybe the proxy modifies the HTTP headers and they are able to detect this specific proxy?

image

edit1: Just checking the Log... I think this is the source of the problems...

1461616849.885 32123 10.0.0.149 TCP_MISS/200 5857 CONNECT 169452.engine.mobileapptracking.com:443 - DIRECT/54.164.196.101 -

an http verb that this proxy is probably not interpreting

In my squid log I can see this CONNECT and then some GET/POST calls... In my swproxy log I can see this CONNECT and then the log ends...

So, I think the problem may be that this proxy doesnt support CONNECT

edit2: but if the CONNECT verb is the problem then why is android working ok?

edit3: tried changing proxys port from 8080 to squid default port and it still doesn't work

skroll commented 8 years ago

@lstern Just used another proxy, and it worked just fine. I was able to sniff out the requests/responses, which I fed through the decryption routine and was able to get the raw JSON just fine. Didn't have to jump through hoops to get it to work.

kupoback commented 8 years ago

@skroll What do you mean by used another proxy? As opposed to 8080?

skroll commented 8 years ago

@lstern No, I mean I used an entirely different proxy tool besides SWProxy.

goku-ssj commented 8 years ago

and this tool is...?

skroll commented 8 years ago

Ah sorry, it was Charles Proxy: https://www.charlesproxy.com/

fperegrinvs commented 8 years ago

@skroll seems like a bug in the SW Proxy code, the code kakaroto got from https://github.com/abhinavsingh/proxy.py maybe you could isolate and send me the faulty request so I can replay it here and try to fix the bug

skroll commented 8 years ago

@lstern Sure, where should I send it?

fperegrinvs commented 8 years ago

@skroll http://expirebox.com/

skroll commented 8 years ago

Oh, putting a file up is no problem, I just don't want to send all my SW requests/responses (i'm assuming some login info is sent) to the world. Have an address I can send it to?

geeyummy commented 8 years ago

I tried everything but its not working with ios.

TuiKiken commented 8 years ago

Maybe this will help you:

2016-04-28 20:48:13,624: proxy - INFO - 192.168.1.3:57472 - GET summonerswar-eu.com2us.net:80/api/location_c2.php - 200 OK - 331 bytes
2016-04-28 20:48:14,265: proxy - ERROR - Exception while receiving from connection client <socket._socketobject object at 0x1096e67c0> with reason error(54, 'Connection reset by peer')
Traceback (most recent call last):
  File "/Users/TuiKiken/Downloads/SWProxy-0.99.1/proxy.py", line 266, in recv
    data = self.conn.recv(bytes)
error: [Errno 54] Connection reset by peer
fperegrinvs commented 8 years ago

@TuiKiken no, this is a common error related to connection drops.

fperegrinvs commented 8 years ago

@c2uwillbanme

image

There's no mobileapptracking request on android But the None:None/device/registered request is strange

Nacheen81 commented 8 years ago

@lstern

Same thing on my system for iOS.


2016-04-30 16:26:46,650: SWPlugin - INFO - Loaded 5 plugins 2016-04-30 16:26:46,652: proxy - INFO - Starting server on 10.0.1.45, port 8080 2016-04-30 16:27:00,057: proxy - INFO - xxx.xxx.xxx.xxx:40716 - GET app-adforce.jp:80/ad//p/tmck?_app=2504&_bundle_id=com.com2us.smon.normal.freefull.apple.kr.ios.universal&_bv=2.1.1&_model=iPhone7%2C2&_os_ver=9.2.1&_sdk_ver=v2.15.2g - 200 OK - 488 bytes 2016-04-30 16:27:04,672: proxy - INFO - xxx.xxx.xxx.xxx:39410 - POST activeuser.qpyou.cn:80/gateway.php - 200 OK - 527 bytes 2016-04-30 16:27:04,689: proxy - INFO - xxx.xxx.xxx.xxx:38329 - POST push.qpyou.cn:80/api/agree/v1/get.php - 200 OK - 330 bytes 2016-04-30 16:27:05,236: proxy - INFO - xxx.xxx.xxx.xxx:33685 - POST push.qpyou.cn:80/api/register.php - 200 OK - 283 bytes 2016-04-30 16:27:05,239: proxy - INFO - xxx.xxx.xxx.xxx:38120 - POST activeuser.qpyou.cn:80/gateway.php - 200 OK - 463 bytes 2016-04-30 16:27:05,269: proxy - INFO - xxx.xxx.xxx.xxx:48319 - POST push.qpyou.cn:80/api/register.php - 200 OK - 283 bytes 2016-04-30 16:27:07,090: proxy - INFO - xxx.xxx.xxx.xxx:48943 - GET summonerswar-gb.com2us.net:80/api/location_c2.php - 200 OK - 331 bytes 2016-04-30 16:27:07,534: proxy - INFO - xxx.xxx.xxx.xxx:37100 - POST summonerswar-gb.com2us.net:80/api/server_status_c2.php - 200 OK - 287 bytes 2016-04-30 16:27:08,031: proxy - INFO - xxx.xxx.xxx.xxx:43838 - POST summonerswar-gb.com2us.net:80/api/version_info_c2.php - 200 OK - 1613 bytes 2016-04-30 16:27:08,311: proxy - INFO - xxx.xxx.xxx.xxx:33423 - GET image-glb.qpyou.cn:80/smon/hub_dist/res/download_2.00.86.inf - 200 OK - 983 bytes 2016-04-30 16:27:10,034: proxy - INFO - xxx.xxx.xxx.xxx:33696 - GET image-glb.qpyou.cn:80/smon/hub_dist/banapplist/banapplist.dat - 200 OK - 1524 bytes 2016-04-30 16:27:12,222: proxy - INFO - xxx.xxx.xxx.xxx:41539 - POST None:None/device/registered - None None - 0 bytes 2016-04-30 16:28:29,670: proxy - INFO - Closing server socket


I was able to connect and successfully export the data by following the directions provided by @daddyrubin

If I can provide additional logs or test options, I'm happy to assist.

duduweizmann commented 8 years ago

Sorry to get here without helping in any way. But do we have any outlook on when the problem will be solved? Saturday we have rune removal and I would love to have this working... Thanks...

daddyrubin commented 8 years ago

If you follow my instructions above you can get it to work. Just double tap the home button and turn on the proxy right before it shows connecting to server. It may take a few attempts but it works.

kupoback commented 8 years ago

@daddyrubin I've tried this many times but it simply does not work at all.

duduweizmann commented 8 years ago

@daddyrubin same for me. It simply does not work.

Nacheen81 commented 8 years ago

It took several Artemis for me. But in got the timing right and it can work... I just successfully synced my data this morning to make sure it still worked.

shorrockin commented 8 years ago

Was in the same boat. The work around refused to work, until it did. So there is a timing you can get to generate the files, but it's tricky.

mockfake commented 8 years ago

I tried this a number of times and couldn't get it to work, but tried the older PCAP approach and uploaded that file to Swarfarm -- also to no avail. Finally gave up and logged in with an Android device that I had been using for an alt account, it's working like a charm. The proxy would "work" fine for my iPhone, but I simply couldn't get the timing down to have it generate the rune data.

kupoback commented 8 years ago

Ok, so let me get this clear.

You start the game, and as soon as it says "Connecting to game server", you then double click home screen to bring up the Alt - Tab of iOS and turn the proxy on in settings. Am I understanding this right? Cuz, 70 times of trying this, I keep getting "Network connection error" over and over and over again.

gzhou01 commented 8 years ago

Thanks! Got it to work with this. The key is to double tab the home right before it shows "Connecting to game server...". The timing to do this should be right after "Downloading necessary information...". As daddyrubin mentioned, it should be blank for a second before it shows "Connecting to game server..."

Nacheen81 commented 8 years ago

Yes. That's correct.

edit - my apologies for my short tempered rant. I obviously went overboard and have retracted my comments.

kakaroto commented 8 years ago

@thatrandomguyo1 Yes, to be clear, this is still an ongoing issue a month later in an open source program for which you could contribute the fix yourself if you wanted to, instead of asking for it on a silver platter. And yes, to be clear this is still an ongoing issue that only happens on iDevices which none of the developers seem to have, and yes, to be clear, this is still an ongoing issue in a program that gives something to the community without asking for anything in return, and which took time out of the developer's free time to develop and for which you're not supposed to expect any obligations from the developer's part. Thank you for your feedback.

skroll commented 8 years ago

I have a solution to this but I don't know the best way to go about it. It's due to the proxy not supporting all methods, so there's a few solutions:

Fix the proxy lib in SWProxy. Pros: it's the lightest weight. Cons: not sure the code base lends itself to such modifications. I'm not much of a python guy (my professional background is C on embedded systems, Java on servers) to really go about this.

Use a more full fledged proxy lib. Pros: it's probably the easiest. Cons: it adds another dependency to the project, seems overkill for such a simple tool.

I've already been able to extract the rune data using a different proxy, then manually decrypting the results. It's definitely the proxy library here at work.

Any suggestions @

skroll commented 8 years ago

Btw the reason the CONNECT request is made is because of a https request. This is the mechanism for which regular http proxies hit https end points.

kupoback commented 8 years ago

@thatrandomguyo1 Yes, the issue is over 50 responses long, however as @kakaroto stated, the devs don't have the tools to debug. You must be patient in the matters of an open source, free to use at your own risk and benefits, for a resolution.

Stating that if you had the knowledge and would contribute, but wouldn't due to your unneeded comment and upset towards the community may be a godsend to these developers.

Do not insult people who are here to help the community, of their own time and will. They are not making a dime off this and CANNOT be expected to dedicate all their free time to a resolution. Especially if they don't have the tools.