bob_dole
2013-08-15 02:46:41
Recently SWIM has been attempting to somewhat reverse engineer the PokerStars client. Now it is possible that this doesn't even qualify as reverse engineering as the desired task is somewhat simple. SWIM's goal is to intercept PokerStars communication with their servers, more specifically in an attempt to find out what variables are sent to login, along with possible responses and what they indicate. Sounds simple enough?
SWIM also thought it would be as simple as monitoring his network for outgoing packets which would hopefully contain which server ip & port the client connects to along with the login file location and data (GET, POST, etc.) that is sent to attempt a login. Well after 30 minutes of attempting to install various sniffers (Wireshark mainly, took forever to install WinPCap plugin as I had an old version from 2007 on my computer which prevented a new installation. SWIM bought his/her computer in 2011 but did eventually find the culprit, a wi-fi adapter), SWIM discovered that the server used SSL and needed a valid certificate. It turns out there is an option in WireShark that allows you to enter the RSA key which will then automatically decode all HTTPS packets sent out.
Ok, so simple enough right? SWIM then proceeded to do some intense Googling and attempted to use OllyDBG to decode the Client to find the RSA key which he/she could then use to decode packets via WireShark. He/she found what they thought was the RSA key and put it into WireShark, but after failed results gave up an hour later.
SWIM then discovered that the PokerStars client allows you to configure a proxy server so decided to give that a shot. He/she opened their Simba socket server from a while ago and attempted to turn it into a proxy and output all data that passed through the proxy. This worked perfectly up until it attempted to connect to a server on port 443 (SSL) and failed to do so. SWIM tried connecting to this server on a seperate client socket program but Simba doesn't support many advanced/multi-threaded features that other socket controls do, which resulted in a 'connection reset' error every time.
SWIM has a few more ideas but decided to post for any answers here before proceeding with those ideas. If anyone has some feedback, experience or a ridiculously easy way of doing this that SWIM overlooked, please do post here so I can forward the message on to SWIM.
On a somewhat unrelated note, SWIM did manage to intercept packets to/from his/her RuneScape bots while running WireShark. The contents were obviously nothing exploitable but were in plain-text and quite interesting.
SWIM also thought it would be as simple as monitoring his network for outgoing packets which would hopefully contain which server ip & port the client connects to along with the login file location and data (GET, POST, etc.) that is sent to attempt a login. Well after 30 minutes of attempting to install various sniffers (Wireshark mainly, took forever to install WinPCap plugin as I had an old version from 2007 on my computer which prevented a new installation. SWIM bought his/her computer in 2011 but did eventually find the culprit, a wi-fi adapter), SWIM discovered that the server used SSL and needed a valid certificate. It turns out there is an option in WireShark that allows you to enter the RSA key which will then automatically decode all HTTPS packets sent out.
Ok, so simple enough right? SWIM then proceeded to do some intense Googling and attempted to use OllyDBG to decode the Client to find the RSA key which he/she could then use to decode packets via WireShark. He/she found what they thought was the RSA key and put it into WireShark, but after failed results gave up an hour later.
SWIM then discovered that the PokerStars client allows you to configure a proxy server so decided to give that a shot. He/she opened their Simba socket server from a while ago and attempted to turn it into a proxy and output all data that passed through the proxy. This worked perfectly up until it attempted to connect to a server on port 443 (SSL) and failed to do so. SWIM tried connecting to this server on a seperate client socket program but Simba doesn't support many advanced/multi-threaded features that other socket controls do, which resulted in a 'connection reset' error every time.
SWIM has a few more ideas but decided to post for any answers here before proceeding with those ideas. If anyone has some feedback, experience or a ridiculously easy way of doing this that SWIM overlooked, please do post here so I can forward the message on to SWIM.
On a somewhat unrelated note, SWIM did manage to intercept packets to/from his/her RuneScape bots while running WireShark. The contents were obviously nothing exploitable but were in plain-text and quite interesting.