View Full Version : GTS: website research
Pingouin7
May 16th, 2010, 08:09 PM
sendpkm started telling me to set DNS to 127.0.0.1 instead of 192.168.x.x
madaruwode
May 17th, 2010, 05:19 PM
DOWNLOAD:
HyperGTS 1.01
is a GTS-Server with included DNS written in C#. You will need a PC with Windows and the Microsoft .net-Framework (http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en) to run the application.
4472
Features:
A graphical user interface :biggrin:
Included DNS-Server, so no additional Software needed
Send a .pkm to a game
send all pkm from a folder to a game
receive pokemon from a game and save it as .pkm
send the PKMN that has been received (nice for cloning ;) )
Sourcecode included - feel free to read and use it - but be warned: it is a little bit messy
Thanks to all users that have posted their results and sourcecodes in this thread. You are great!
PS: Wouldn't it be better to create a thread where all GTS-Applications can be posted so it is easier to find the download?
Download HyperGTS now:
tornadod
May 17th, 2010, 06:42 PM
woah, this sounds really good. ill let you know if it works for me. tyvm:biggrin:
HyperGTS
PS: Wouldn't it be better to create a thread where all GTS-Applications can be posted so it is easier to find the download?
couldn't agree more haha
tornadod
May 17th, 2010, 07:45 PM
which IP should be in the hyperGTS? My DS' IP(10 higher than the computer's lan IP), or one of my computer's IPs? (when i look up my IP address on a website it gives me one, and then when i see the website for my router it shows the LAN IP, which is a completely different number)
M@T
May 17th, 2010, 08:36 PM
It looks really nice, good job. :biggrin:
I started making one, but I don't have the time to finish it. :\
kickhopper
May 18th, 2010, 01:30 AM
HyperGTS
is a GTS-Server with included DNS written in C#. You will need a PC with Windows and the Microsoft .net-Framework (http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en) to run the application.
4472
Features:
A graphical user interface :biggrin:
Included DNS-Server, so no additional Software needed
Send a .pkm to a game
send all pkm from a folder to a game
receive pokemon from a game and save it as .pkm
send the PKMN that has been received (nice for cloning ;) )
Sourcecode included - feel free to read and use it - but be warned: it is a little bit messy
Thanks to all users that have posted their results and sourcecodes in this thread. You are great!
PS: Wouldn't it be better to create a thread where all GTS-Applications can be posted so it is easier to find the download?
Thanks for this, works great so far. The only problem I have with it is that I can't expand the window at all, nothing major just kind of annoying. Lol
EDIT: Oh and the Start GTS button doesn't turn into a Stop GTS button like the DNS button does.
madaruwode
May 18th, 2010, 02:52 AM
Thx for your replies, all suggestions how to make HyperGTS better are welcome!
The IP has to be the one of the computer on which HyperGTS is running.
I have made the window fixed size because I havn't configured everything to expand like it should and it wasn't my highest priority to implement it. I hope this is ok for you :)
The GTS isn't stoppable because I havn't managed to stop the backgroundworker when it is waiting for a connection... I hope I can fix this soon, until then you will have to restart the whole app, sorry.
AngelSL
May 18th, 2010, 07:43 AM
Thx for your replies, all suggestions how to make HyperGTS better are welcome!
The IP has to be the one of the computer on which HyperGTS is running.
I have made the window fixed size because I havn't configured everything to expand like it should and it wasn't my highest priority to implement it. I hope this is ok for you :)
The GTS isn't stoppable because I havn't managed to stop the backgroundworker when it is waiting for a connection... I hope I can fix this soon, until then you will have to restart the whole app, sorry.
Hi, fellow C# developer. :)
It'd be easier if I could talk to you on MSN or IRC (something live) so you can respond instantly.. but..
Here, try this as a solution to 'havn't managed to stop the backgroundworker when it is waiting for a connection'.
private void BGW_GTS_DoWork(object sender, DoWorkEventArgs e)
{
BGW_GTS.ReportProgress(1, "GTS started...");
Socket serv = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
serv.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);
try
{
serv.Bind(new IPEndPoint(IPAddress.Any, 80));
}
catch (System.Net.Sockets.SocketException)
{
BGW_GTS.ReportProgress(1, "Server could not be started (Port 80 already used)");
return;
}
serv.Listen(50);
List<Socket> clients = new List<Socket>();
SocketAsyncEventArgs saea = new SocketAsyncEventArgs();
bool readyToContinueAccept = true;
EventHandler<SocketAsyncEventArgs> clientAccepted = (sendr, eventargs) => // True Async request handling.
{
readyToContinueAccept = true; // AcceptAsync finished.
if (eventargs.SocketError != SocketError.Success)
return; // did the AcceptAsync succeed? if not, quit.
Socket client = eventargs.AcceptSocket; // get the new Socket (duh)
ThreadPool.QueueUserWorkItem(si =>
{
try
{
clients.Add(client);
asyncReq(client);
} catch
{
} finally
{
if (clients.Contains(client))
clients.Remove(client);
client.Close();
}
});
};
saea.Completed += clientAccepted;
Action continueAccept = () =>
{
saea.AcceptSocket = null;
if (!serv.AcceptAsync(saea))
{ // AcceptAsync completed synchronously, call ClientAccepted
clientAccepted(null, saea);
}
};
while(true)
{
if(!BGW_GTS.CancellationPending)
{
if(readyToContinueAccept) // has the previous AcceptAsync finished?
{
// if yes, launch another
readyToContinueAccept = false;
continueAccept();
} // if not, wait 30 ms and check again
} else
{
// cancellation pending
break; // let's quit
}
Thread.Sleep(30);
}
foreach(Socket client in clients)
{
if(client.Connected) client.Close();
}
serv.Close(); // this will call clientAccepted with saea.SocketError != SocketError.Success. It will do nothing.
/*while (!BGW_GTS.CancellationPending)
{
SocketAsyncEventArgs saea = new SocketAsyncEventArgs();
saea.
serv.AcceptAsync(new SocketAsyncEventArgs {})
Socket client = serv.Accept();
try
{
clients.Add(client);
asyncReq(client);
}
catch
{
} finally
{
if(clients.Contains(client)) clients.Remove(client);
client.Close(); // Because asyncReq just sends the response, and then returns, so might as well close the socket?
}
}*/
}
madaruwode
May 18th, 2010, 08:32 AM
I have just uploaded HyperGTS 1.01!
New features:
GTS can now be stopped (and started again of course)
resizeable window
small bugfixes
If you have any problems or suggestions please let me know!
ReignOfComputer
May 19th, 2010, 03:55 AM
Very nice, madaruwode. How does the cloning work on this anyway? And are you able to make it create a .txt log file?
madaruwode
May 19th, 2010, 06:18 AM
How does the cloning work on this anyway?
Start HyperGTS with "Send Pokemon" not checked, and "Reject Pokemon" and "Send after receive" checked. Then go to the GTS, upload a Pokemon (the game will say you can't send the Pokemon to the GTS but ist is already on your computer), exit the GTS and enter again, you will receive the Pokemon you have uploaded before. You can exit and enter as often as you want, you will receive the Pokemon every time you enter. If you want to clone another Pokemon just upload it and from now on this Pokemon will be sent to you.
And are you able to make it create a .txt log file?
Sure this will be possible but why do you need it? HyperGTS is made for just a single user at once, so I havn't implemented a logfile.
ReignOfComputer
May 19th, 2010, 10:55 AM
Ah, thanks. And I like log files as I always log my stuff. Makes me seem more organized I guess :/
Pingouin7
May 20th, 2010, 09:33 PM
I wish this let us bypass the Classic/Premier Ribbon limit.
And this is the first time I find a program with an Help function that actually helps.
M@T
May 21st, 2010, 03:34 AM
I wish this let us bypass the Classic/Premier Ribbon limit.
No GTS server can do that, as it is checked by the game before sending the Pokémon.
Poryhack
May 21st, 2010, 10:41 AM
No GTS server can do that, as it is checked by the game before sending the Pokémon.
I wonder if the official server also checks it server-side though, in case the check were disabled on the client side. I'm sure it would be quite possible to disable with a code or ROM hack.
M@T
May 21st, 2010, 03:03 PM
Yeah, I think it would be possible, but I'm not good enough with all this ASM stuff.
The server can reject the Pokémon by responding 0x000C to post.asp and exchange.asp requests, but I don't know what it rejects actually.
Maybe Pokémon that are obviously hacked, and maybe some events too.
ReignOfComputer
May 22nd, 2010, 04:13 PM
Is it possible to block certain IPs from connecting?
chinedu11
May 24th, 2010, 03:03 AM
HyperGTS 1.01
is a GTS-Server with included DNS written in C#. You will need a PC with Windows and the Microsoft .net-Framework (http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en) to run the application.
4472
Features:
A graphical user interface :biggrin:
Included DNS-Server, so no additional Software needed
Send a .pkm to a game
send all pkm from a folder to a game
receive pokemon from a game and save it as .pkm
send the PKMN that has been received (nice for cloning ;) )
Sourcecode included - feel free to read and use it - but be warned: it is a little bit messy
Thanks to all users that have posted their results and sourcecodes in this thread. You are great!
PS: Wouldn't it be better to create a thread where all GTS-Applications can be posted so it is easier to find the download?
WOW Thankyou SOOOO Much. This app is like WOW. Its Awesome. now i can start a new game AND keep all my old pokemon. Thanks soo much for this. all we need is a guide on how to set all of this up from scratch so my friends can use it.
madaruwode
May 24th, 2010, 05:17 PM
Is it possible to block certain IPs from connecting?
If you are talking about HyperGTS: It would be possible but it is made for a single user so why do you want that?
all we need is a guide on how to set all of this up from scratch so my friends can use it.
What exactly do you need to know?
chinedu11
May 24th, 2010, 06:07 PM
If you are talking about HyperGTS: It would be possible but it is made for a single user so why do you want that?
What exactly do you need to know?
Like I know how to set your the Python gts thing and port forward 80 (and 53?). Is this the same thing except download and use this?
Darkangel_Nyx
May 29th, 2010, 01:39 AM
I have been using sendpkm (LordLandon's one) should I 'upgrade' to HyperGTS?
shinything
Jun 3rd, 2010, 01:26 PM
I have been using sendpkm (LordLandon's one) should I 'upgrade' to HyperGTS?
I didn't use LordLandon's sendpkm, but I will say that since madaruwode's HyperGTS builds on sendpkm and others, it is a very worthwhile install. I love it. Greatly simplifies so many things!
(In my experience, it didn't play well with Skype until I told Skype to stop hogging port 80).
Not sure if madaruwode is taking suggestions, but the ability to configure the port and to set the "working directory" or some such would be handy.
And kudos to everyone who contributed, absolutely love it!
madaruwode
Jun 3rd, 2010, 06:41 PM
Not sure if madaruwode is taking suggestions, but the ability to configure the port and to set the "working directory" or some such would be handy.
Sure I do :)
Which port do you want to configure? If the GTS isn't running on port 80 it won't work because the Game only connects to port 80.
Hannibal II
Jun 7th, 2010, 05:20 PM
I am not sure how to use HyperGTS. It does not open like sendpkm when I drop a pokemon file on it. Can someone give me some instrucions for the program?
madaruwode
Jun 8th, 2010, 01:17 PM
Just doubleclick it, it has a graphical user interface where you can choose which file to send and some more settings. To use HyperGTS you need Microsoft Windows and the .net framework v3.5 or higher.
Hannibal II
Jun 8th, 2010, 05:50 PM
where do you download the .net framework?
madaruwode
Jun 8th, 2010, 06:04 PM
Here is the link to the .net framework: http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en
(you could also find it in the post with the HyperGTS download)
Splittah
Jun 9th, 2010, 11:19 AM
Can a moderator sticky this? I'm sure no-one wants to lose it.
BeansNRice
Jun 10th, 2010, 09:28 AM
Hi there my HyperGTS doesn't seem to like my family computer. the DNS runs fine but my DS can't seem to connect to the GTS server in accordance to the logs
madaruwode
Jun 10th, 2010, 09:53 AM
Which IP does HyperGTS show? Is it the IP of the computer in your home network? Have you set the DNS of your DS to that IP? Are you running a desktop firewall that maybe blocks the connection?
BeansNRice
Jun 10th, 2010, 10:07 AM
yah i have the DNS set to the same IP as my home network on my DS and yes im running a firewall but it asked me whether or not to allow access to the program and i clicked allow access
BeansNRice
Jun 10th, 2010, 10:25 AM
and its still not working
madaruwode
Jun 10th, 2010, 11:11 AM
Try to disable your firewall, maybe it still blocks some connections. Don't forget to re-enable it after you tested HyperGTS!
BeansNRice
Jun 10th, 2010, 12:13 PM
tried that didn't work
madaruwode
Jun 10th, 2010, 01:36 PM
yah i have the DNS set to the same IP as my home network on my DS
And exactly the same IP is shown in the textbox of the DNS in HyperGTS?
Does the game show any error when you try to enter the GTS? The log of the DNS and the GTS show nothing?
BeansNRice
Jun 10th, 2010, 04:30 PM
yah the same DNS is in the box as is the IP of the computer and the DNS and the only error message i get is "Unable to connect to GTS... Disconnecting from Nintendo Wi-fi communications"
Hitakashi
Jun 11th, 2010, 05:53 AM
Do you have a static IP but with more then 1 PC on it? each PC may have a separate local IP which is what i had to use (cmd - ipconfig - IPv4 Address) is the DNS i had to use
BeansNRice
Jun 11th, 2010, 10:51 AM
This is the only computer on the network and yes i used ipconfig to get my IP and it is Static. plus it worked previously with my old laptop before the battery copped out and i dont feel like spending $100 to get a new one.
madaruwode
Jun 11th, 2010, 12:18 PM
Does one of the other GTS-programs like the sendpkm.py work?
BeansNRice
Jun 12th, 2010, 02:59 PM
nope i tryed both of them
chinedu11
Jun 12th, 2010, 08:01 PM
Try this
https://sites.google.com/site/pokencg/
and is port 80 open on your computer?
BeansNRice
Jun 13th, 2010, 02:08 PM
yes i opened port 80 and it still didn't work and no i dont need help from an online guild/station as with my other computer at my apartment im able to do it but im only there 3days out of the week
Hannibal II
Jun 16th, 2010, 05:00 PM
When I use HyperGTS it tells me it needs a program to open it with, and none of the programs I have for it work.
Hitakashi
Jun 18th, 2010, 07:09 PM
I'm wondering if in the future will this program be able to receive pokemon from our DS to the PC?
randomcouchpotato
Jun 19th, 2010, 04:17 PM
I'm wondering if in the future will this program be able to receive pokemon from our DS to the PC?
im pretty suire it already does
Tritlo
Jun 20th, 2010, 04:58 PM
I'm wondering if in the future will this program be able to receive pokemon from our DS to the PC?
It already does, just use the deposit feature when you're using the gts on the ds and HyperGTS stores it. Be sure to choose reject pokémon though, it saves a lot of hassle.
ASuch
Jun 24th, 2010, 07:51 PM
I was wondering if I could make a request....If you guys could make pretty much fake wifi connection for the GTS, don't you think that you would be able to make something similar where the DS connects to the program through Mystery Gift Wifi, and it would send you a Wonder Card?
Poryhack
Jun 25th, 2010, 11:00 AM
I was wondering if I could make a request....If you guys could make pretty much fake wifi connection for the GTS, don't you think that you would be able to make something similar where the DS connects to the program through Mystery Gift Wifi, and it would send you a Wonder Card?
They're not as similar as you'd think. The games use SSL to verify that they are connecting with the real Nintendo servers for mystery gift downloads (as well as most other online functions). For whatever reason, they don't use SSL with the GTS, and faking the server is as easy as redirecting traffic and running the right software.
In order to make a fake mystery gift server we would have to get a certificate that can pass whatever checks the games perform before finalizing the connection. Certificates can be made easily enough, but I'm not sure if it's possible to make one that can actually pass the tests.
AngelSL
Jun 25th, 2010, 09:58 PM
They're not as similar as you'd think. The games use SSL to verify that they are connecting with the real Nintendo servers for mystery gift downloads (as well as most other online functions). For whatever reason, they don't use SSL with the GTS, and faking the server is as easy as redirecting traffic and running the right software.
In order to make a fake mystery gift server we would have to get a certificate that can pass whatever checks the games perform before finalizing the connection. Certificates can be made easily enough, but I'm not sure if it's possible to make one that can actually pass the tests.
That would be pretty hard. We'd need to get a private key that matches the public key the DS has (either that or we figure out how to change the certificate in the ROM, but that would be pointless, since if you can load a hacked ROM, ...). (and no it's not possible to get a private key from a public key). Best chance we have is brute forcing the key.
http://en.wikipedia.org/wiki/Transport_Layer_Security#Security. The DS<->GTS would fall under the first few applications there.
siriusblack
Jun 26th, 2010, 03:36 AM
i am wodering if there is anyone who can possibly pm me and walk me though this i have downloaded the net 3.5 made sure port 80 is open and i can use sendpkm just fine so i am at a loss anyone willing to help would be greatly appreated
Deutscher
Jun 26th, 2010, 09:16 AM
Weird first post, I know, I know.
But I downloaded the HyperGTS and it works great.
The thing is, it has been said on this topic that it was only meant for a single user.
Is there any reason I shouldn't use this for other people?
I thought it would be a great way to give a friend a gift when we have different schedules, etc.
Thanks.
Poryhack
Jun 26th, 2010, 11:08 AM
That would be pretty hard. We'd need to get a private key that matches the public key the DS has (either that or we figure out how to change the certificate in the ROM, but that would be pointless, since if you can load a hacked ROM, ...). (and no it's not possible to get a private key from a public key). Best chance we have is brute forcing the key.
http://en.wikipedia.org/wiki/Transport_Layer_Security#Security. The DS<->GTS would fall under the first few applications there.
Are you sure the public key is hardcoded into the ROM? That would prevent them from ever changing the server's certificate right?
EDIT: You can probably disregard that. I'm still trying to get educated on SSL and I assumed you were talking about the server's public key. Now I see that the certificate is signed and you must've meant the signer's (Nintendo CA's) public key. So what the DS should/probably does check is that the certificate is signed by Ninty? Just wanna make sure I've got that right.
Janer1
Jun 26th, 2010, 08:32 PM
IS there any way to backup pokewalker courses and send them back to your ds? Im planning to restart game. I wanted to share but since Yellow forest isnt shareable i cant. looks like some people need to wok o ngetting the ssl Certifacte or make a fake one that it acts like the real one.
Chibicon
Jun 27th, 2010, 12:15 AM
So, how exactly do we use the HyperGTS to set up a custom download server?
I'm able to receive my own Pokemon using the DNS address that sendpkm gave me in HyperGTS.
Do I give out the DNS address to other people or what?
Neku_Namikaze
Jun 27th, 2010, 03:57 AM
Hello everyone.
I am new to the forum and I have a problem. It's embarrassing but I am a bit desperate and I hope you can help me.
You see, I exchanged a Empoleon with Hyper GTS, everything seemed normal until I checked the pokémon. It status and Lv are distorted plus it has a Ball Capsule stuck. I can not move it to the PC and I can not release it.
I checked the .pkm file and the configuration is correct, there should have been no error.
What I can do? Is there any way to remove the Ball Capsule, or delete that pokémon?
Antidote
Jun 27th, 2010, 04:12 AM
I've looked at some packets from the Mystery Gift/Wonder Card and i didn't see anything to lead me to believe that it's using SSL However it could be the software i'm using which is Wireshark.
Poryhack
Jun 27th, 2010, 11:34 AM
I've looked at some packets from the Mystery Gift/Wonder Card and i didn't see anything to lead me to believe that it's using SSL However it could be the software i'm using which is Wireshark.
You're doing something wrong. There will be a DNS query for dls1.nintendowifi.net; this is the mystery gift server. Shortly after that will be an SSLv3 handshake and then 2+ frames of encrypted application data.
Antidote
Jun 27th, 2010, 01:38 PM
It was the program i was using then because I didn't see the SSLv3 handshake. And trust me I looked at all the relevant packets.
It seems to miss a packet or two sometimes.
siriusblack
Jun 27th, 2010, 08:07 PM
can anyone tell me if tere is a way to by pass this event pokes no trading dealio i'd like to legit check some of my events i got it to work now i need to know if there is anyway to do this
Antidote
Jun 27th, 2010, 11:13 PM
You can't trade ANY pokemon with a special ribbon on it.
AngelSL
Jun 28th, 2010, 02:40 AM
Are you sure the public key is hardcoded into the ROM? That would prevent them from ever changing the server's certificate right?
EDIT: You can probably disregard that. I'm still trying to get educated on SSL and I assumed you were talking about the server's public key. Now I see that the certificate is signed and you must've meant the signer's (Nintendo CA's) public key. So what the DS should/probably does check is that the certificate is signed by Ninty? Just wanna make sure I've got that right.
My guess is that they do this: (as quoted from wikipedia)
# The client may use the certificate authority's (CA's) public key to validate the CA's digital signature of the server certificate. If the digital signature can be verified, the client accepts the server certificate as a valid certificate issued by a trusted CA.
# The client verifies that the issuing CA is on its list of trusted CAs.
Nintendo or GameFreak would thus be the 'trusted CA'.
Poryhack
Jun 28th, 2010, 11:25 AM
My guess is that they do this: (as quoted from wikipedia)
# The client may use the certificate authority's (CA's) public key to validate the CA's digital signature of the server certificate. If the digital signature can be verified, the client accepts the server certificate as a valid certificate issued by a trusted CA.
# The client verifies that the issuing CA is on its list of trusted CAs.
Nintendo or GameFreak would thus be the 'trusted CA'.
Alright, that's what I thought.
Trying to bruteforce a key seems to be a fools errand. What we should go after isn't SSL itself but GAMEFREAK's implementation of it. I have two ideas:
This first one is more just wishful thinking than anything, because it shouldn't work, but since its a DS game we're talking about and not a web browser I'll allow myself the glimmer of hope. The DS tells the server that it supports the cipher suites RSA_WITH_RC4_128_MD5 and RSA_WITH_RC4_128_SHA, and the genuine Nintendo server selects MD5. I wonder what would happen if a fake server sent back the default/non-encrypted cipher suite NULL_WITH_NULL_NULL as its selection. Any SSL implementation worth using would terminate the connection at this point, but there's not any guarantee that one of the pokemon games would. On the incredibly low chance that that works, we could send the DS an unmodified version of the real server's certificate and it would start sending data assuming that it's secure from everyone but the real server. Of course it wouldn't be though, and we could send replies back without worrying about keys.
The second one I believe is a very real possibility, but not without someone who can do some dissembler work to lay the foundation (not me lol). We know that the pokemon games use RNGs that aren't really all that random. In fact they're so predictable people abuse them all the time to get the PIDs and IVs they want. A "secure" RNG is critical to the effective use of SSL because the pre-master secret is nothing but a random number encrypted with the server's public key. We need that number decrypted on the server side, which should only be possible with the server's private key, but since we can probably predict what the number is via a program like RNG Reporter (but set up to figure out this new RNG of course, assuming it is even a different RNG) we have the rest of the connection at our fingertips.
Thoughts anyone?
AngelSL
Jun 28th, 2010, 06:46 PM
Alright, that's what I thought.
Trying to bruteforce a key seems to be a fools errand. What we should go after isn't SSL itself but GAMEFREAK's implementation of it. I have two ideas:
This first one is more just wishful thinking than anything, because it shouldn't work, but since its a DS game we're talking about and not a web browser I'll allow myself the glimmer of hope. The DS tells the server that it supports the cipher suites RSA_WITH_RC4_128_MD5 and RSA_WITH_RC4_128_SHA, and the genuine Nintendo server selects MD5. I wonder what would happen if a fake server sent back the default/non-encrypted cipher suite NULL_WITH_NULL_NULL as its selection. Any SSL implementation worth using would terminate the connection at this point, but there's not any guarantee that one of the pokemon games would. On the incredibly low chance that that works, we could send the DS an unmodified version of the real server's certificate and it would start sending data assuming that it's secure from everyone but the real server. Of course it wouldn't be though, and we could send replies back without worrying about keys.
The second one I believe is a very real possibility, but not without someone who can do some dissembler work to lay the foundation (not me lol). We know that the pokemon games use RNGs that aren't really all that random. In fact they're so predictable people abuse them all the time to get the PIDs and IVs they want. A "secure" RNG is critical to the effective use of SSL because the pre-master secret is nothing but a random number encrypted with the server's public key. We need that number decrypted on the server side, which should only be possible with the server's private key, but since we can probably predict what the number is via a program like RNG Reporter (but set up to figure out this new RNG of course, assuming it is even a different RNG) we have the rest of the connection at our fingertips.
Thoughts anyone?
The first way will never work (unless you use the hosts file to spoof the domain AND manage to get the DS to transmit unencrypted).
The second way is more plausible but we still need to get past the problem of certificate.
Poryhack
Jun 28th, 2010, 07:04 PM
The first way will never work (unless you use the hosts file to spoof the domain AND manage to get the DS to transmit unencrypted).
The second way is more plausible but we still need to get past the problem of certificate.
As for the first one, I thought it was a given that we have to redirect traffic to the local machine (or maybe a remote one eventually) for ANY solution. It's not hard to do. I do have my doubts that the DS won't crash or something when it is told by the server to use no encryption though.
And for the second one, I don't think we do. Correct me if I'm wrong but we should be able to send the certificate without any modifications. Because we already know what the decrypted pre-master secret is (via RNG prediction) there is no need for the server's private key to figure it out. After that the entire connection is ours because everything stems from the pre-master secret.
Antidote
Jun 28th, 2010, 11:08 PM
Exactly which means we now need to find someone willing to try the first method, I don't have the experience required to pull off such a trick however I'm sure someone here does.
As for the second method, it sounds like it'll be less complicated but still have more things that can go wrong. The first method is as simple as "It works or it doesn't"
AngelSL
Jun 29th, 2010, 07:47 AM
As for the first one, I thought it was a given that we have to redirect traffic to the local machine (or maybe a remote one eventually) for ANY solution. It's not hard to do. I do have my doubts that the DS won't crash or something when it is told by the server to use no encryption though.
And for the second one, I don't think we do. Correct me if I'm wrong but we should be able to send the certificate without any modifications. Because we already know what the decrypted pre-master secret is (via RNG prediction) there is no need for the server's private key to figure it out. After that the entire connection is ours because everything stems from the pre-master secret.
After doing more reading, I see what you mean - we figure out the premaster secret, and then just give the cert Nintendo uses.
Poryhack
Jun 29th, 2010, 12:06 PM
Exactly. =D
nicholas on IRC has said he might give the first method a shot. I'd like to try myself regardless, and I've been putting off solidly learning a programming language for too long. Not that writing something stupid like this would make it "solid" but it's a step in the right direction. Hopefully somebody can step in to help with the RNG because even if I were to start now I doubt I could figure that out in the foreseeable future. =/
AngelSL
Jun 29th, 2010, 08:02 PM
Exactly. =D
nicholas on IRC has said he might give the first method a shot. I'd like to try myself regardless, and I've been putting off solidly learning a programming language for too long. Not that writing something stupid like this would make it "solid" but it's a step in the right direction. Hopefully somebody can step in to help with the RNG because even if I were to start now I doubt I could figure that out in the foreseeable future. =/
I'm sure magical or someone else can figure out the RNG.
If not we can find someone who knows ARM assembly.. if not I'll see what I can do.
Method 1 should be easy: Packetlog the DS, then recreate that packetlog except screwing with the selected cipher. We'll need to see if Apache (I'm assuming the SSL part is HTTPS) works with it; if not we can try to write our own.
Antidote
Jul 2nd, 2010, 04:43 PM
Any luck on this?
dsdude
Jul 8th, 2010, 05:29 PM
Hi i am having some problems with fake gts programs every time i try to connect to the fake gts server it gives me error code:52100 on my ds no matter what gts program i use. any advice?
Antidote
Jul 11th, 2010, 04:25 PM
Check your firewall, you may need to disable it.
lolown
Jul 12th, 2010, 11:45 PM
I'm using HyperGTS and I inputted my computer's IP Address into the required spot. I've started the DNS and GTS. How do I find out what DNS I put into my DS?
Thanks!
dsdude
Jul 13th, 2010, 09:58 PM
Check your firewall, you may need to disable it.
I have allready tried it with firewall disabled but it still doesnt work:frown:
note:i have avast for firewall and virus protection
also i am using pokemon soulsliver
dsdude
Jul 13th, 2010, 10:00 PM
I'm using HyperGTS and I inputted my computer's IP Address into the required spot. I've started the DNS and GTS. How do I find out what DNS I put into my DS?
Thanks!
your computers ip address is what you put in for your dns on your ds
lolown
Jul 13th, 2010, 10:24 PM
your computers ip address is what you put in for your dns on your ds
I see.. How would I let other people use this GTS?
royalblood
Jul 13th, 2010, 10:31 PM
ur can try no-ip.org and open a domain that is forwarded to ur ip address...
lolown
Jul 13th, 2010, 10:40 PM
ur can try no-ip.org and open a domain that is forwarded to ur ip address...
Well, doesn't that cost money? Isn't there an easier way?
royalblood
Jul 14th, 2010, 01:10 AM
Well, doesn't that cost money? Isn't there an easier way?
no its free, i signed up for a free account, try it..
http://www.no-ip.com/newUser.php
dsdude
Jul 14th, 2010, 10:06 PM
I see.. How would I let other people use this GTS?
i heard that you use your routers external ip
shiny quagsire
Jul 14th, 2010, 11:22 PM
I asked the same question. But how would be use the free ip thing for this?
dsdude
Jul 15th, 2010, 12:15 PM
when i set my dns on my ds to the fake gts server on the hypergts in the dns log it shows the ds requesting conntest.nintendo.com 3 times then it quits and gives error code 52100 what if we were to set the hypergts dns to 208.111.34.248 which is the ip adress of the pokemon fan event center
dsdude
Jul 15th, 2010, 12:21 PM
this should be how we go public with our fake gts:
Going Public:
Find your external IP (of computer), have ports open, set DNS to external IP. Connect!
Using a chain of routers, with the DS and computer connecting to the exterior router does not work. (Interior router still blocks ports, no interwebs). Opening the interior would solve this, or just bypassing entirely.
Source:https://sites.google.com/site/pokencg/gtsemu
shiny quagsire
Jul 15th, 2010, 12:25 PM
What if a two routers are connected? Would that work? (One is wep for ds, one is wpa for computors)
How could we find an external IP of a computer?
dsdude
Jul 15th, 2010, 12:28 PM
does anyone know what the ip of the real gts is?:confused:
dsdude
Jul 15th, 2010, 12:32 PM
What if a two routers are connected? Would that work? (One is wep for ds, one is wpa for computors)
please explain more is one router using the other as a gateway?
dsdude
Jul 15th, 2010, 12:32 PM
What if a two routers are connected? Would that work? (One is wep for ds, one is wpa for computors)
please explain more is one router using the other as a gateway?
shiny quagsire
Jul 15th, 2010, 01:25 PM
Well, I have two routers. The wpa one has a cable from the lan port to the wep's wan port.
dsdude
Jul 15th, 2010, 03:47 PM
Well, I have two routers. The wpa one has a cable from the lan port to the wep's wan port.
so your wep routers internet is coming from your wpa router?
shiny quagsire
Jul 15th, 2010, 04:22 PM
yes, that's it
dsdude
Jul 15th, 2010, 05:17 PM
yes, that's it
it will probably not work because most likely it would be considered a chain of routers
it could work if you got an Ethernet router (not a wireless Ethernet router) and connecting each wireless router to the Ethernet router instead of the wep router connecting to the wpa router for internet
http://pavlovmedia.com/support/images/router.jpg
note: make sure when connecting a wireless router to a Ethernet router connect the wireless routers wan port to the lan port of the Ethernet router
xJordan360
Jul 21st, 2010, 03:22 PM
I need some help.
I'm trying to use hyperGTS but I keep getting error code 52100 (i think) i get about 30 seconds of green on the signal, then it goes red.
I input my computers IP address, made a static IP and forward ports 80 and 53, what do now?
I've tried every IP and DNS setting I found in cmd.
I'm lost.
Donreef
Jul 21st, 2010, 10:04 PM
Someone who can help me I'm Spanish but I want to install the Global Trade Senter on my host and domain please have if someone can help me by private message I want to install the system of Vlad please someone contact me by MP to see if I can get this system INSTALL Global Trade Senter and not do that with the little knowledge I had I would pass the data from the host and that for Mp
http://donreef.es/pokemon/gts/
I install all the part but I can not run the server ahcer have if anyone can help me by skype or msn or mp from here Forum:)
sblunix
Jul 22nd, 2010, 10:24 PM
I've tried messing with the code in a couple different programs but I always end up with it not working out.
Anyone able to have a working DNS Server host on port 53, and then a GTS/SendPKM instance running on port 8080 or port 81? I want to be able to distribute Pokemon, but I can't do it, AND my ISP/Router does not support the unblocking of port 80. I know how to set up an IP:80 -> MyIP:81 Redirect though.
So, can someone upload a working DNS/GTS Server that works on UDP53 and TCP81?
sblunix
Jul 23rd, 2010, 02:39 AM
My DS can connect to the fake DNS Server (using HyperGTS) and trade/receive fine when using local IP (192.168.1.64), but when I use my portforwarded public IP (70.238.128.xxx) I get through to the DNS Server, the Server gets the request, and (says it) sends reply, but my DS never gets passed conntest.nintendowifi.net. It then just gives me the generic 51000 or whatever error. Is this a router issue, what the hell?
ReignOfComputer
Jul 23rd, 2010, 03:08 AM
Using M@T's source, this Multiple Pokemon Sender listens on Port 81 instead of Port 80 (I think I did it right).
How do you do a IP:80 --> IP:81? I need to know lol :P
Linklegend
Aug 1st, 2010, 06:46 AM
What should be the DNS server name/IP when I open port 53 for it.
abrammazal
Aug 1st, 2010, 12:24 PM
The IP should be the local IP of the computer you will be running the server on. To get this, on the computer you will run the GTS open a command prompt and type in "ipconfig" (without quotes) and then it should say something like: IPv4 Adress ........................... 192.168.*.* <--- that is your local IP.
The server name does not matter at all. Just put something like gtspkm, it really doesn't matter.
Nickm65
Aug 16th, 2010, 02:17 PM
Hi everyone. i'm having a rather strange problem with hypergts. This has always worked before and has only just begun to completely not start at all. I extracted the hypergts.rar file and when i try to open hypergts.exe, it just doesnt work nothing pops up.
When i tried to use the modified version the same thing happened and when i tried to open the dns program for the modified hypergts, a black box flashed on my screen and the immediately closed. this is extremely bizzare, does anyone know whats wrong?
Israd
Aug 17th, 2010, 07:38 PM
Hello, I just registered to be able to ask for some help, also to congratulate you guys on this awesome achievement.
The thing is, whenever I try to send pokemon my DS gets to the fake GTS but then just disconnects, everything works perfectly when sending pokemon from my diamond to the fake GTS and when I take those pokemon back from the GTS to my DS, but whenever I try to use the "sendpkmn" utility it fails, the DS actually enters the fake GTS but then I get a bluescreen that says:
"A communication error has ocurred.
You will be returned to the title
screen.
Please press the A button."
then it takes me back to the title screen, and I don't get the pokemon.
I don't know what's going on, since the GTS works perfectly when using it to send pokemon from my DS to the fake GTS.
I get the error using either HyperGTS, sendpkmn.py or sendpkm.exe
I have my ports open and firewall exceptions.
sube
Sep 4th, 2010, 08:30 PM
i get an error code of 52101. what can i do to get into the gts? i am new at trying this. any help
i also show green for a few seconds and then it goes red, and gives me the error code
peteypie
Sep 5th, 2010, 06:34 AM
is this only for hg/ss or can it work on d/p too?
sube
Sep 5th, 2010, 02:31 PM
i get an error code of 52101. what can i do to get into the gts? i am new at trying this. any help
i also show green for a few seconds and then it goes red, and gives me the error code
drhannibal
Sep 18th, 2010, 11:37 AM
Hello, I'm new here
I also encountered several error, often 52100 ou such…
I eventually got in the code of pokehaxlib.py, and spotted mentions of 4.2.2.2. I checked, and it appears it's the DNS servers of Verizon, in the US. I supposed that was the origin of the errors, so I changed them to 8.8.8.8, the Google ones. And it worked way better (with pkmserver.py, the bypass is immediate, instead of resulting in several server failures, according to wireshark).
I wrote this bash script (for Linux) that browses a directory searching for pkm files and calls sendpkm.py on them.
It does not work as Vlad's pkmserver.py, it only send a bunch of files in a row (it is for lazy people like me who don't want to call sendpkm.py for each file :p . You still have to get out of the GTS and in again though)
It is a bash script, don't get fooled by the txt extension I had to use for the board.
theomen2
Sep 23rd, 2010, 04:54 PM
Just wondering whether anyone has managed to see whether HyperGTS (or sendpkm) works with Pokemon Black and White games. This would be great if it does lol.
Grovyle91
Sep 24th, 2010, 07:10 AM
Regarding the new Black & White GTS...
I've managed to get the details how the games and the server are communicating ;)
Which are the following:
Checksum is XORed with 0x2db842b2 instead of 0x4a3b2c1d
Hash is calculated from SHA1("HZEdGCzcGGLvguqUEKQN" + token) instead of "sAdeqWo3voLeC5r16DYv" + token
The request from the DS to the BW server is not encrypted (unlike the GRNG with the checksum as seed in DPPt)
Length of the request is 0x0E or 0x0F:
0x00 - 0x03: PID Trainer
0x04 - 0x07: Total length of the following statements
0x08 - 0x09: Pokémon ID
0x0A: Gender
0x0B: Min. Level
0x0C: Max. Level
0x0D: Unknown
0x0E: Total results
0x0F: Country
Host for BW is the same as DPPt: http://gamestats2.gs.nintendowifi.net/
Root directory is different: /syachi2ds/web/worldexchange/
Game ID of Black is 0x14, White is 0x15.
GTS return data is 296 bytes:
0x000 - 0x001: unknown (2 bytes)
0x002 - 0x0DD: Pokémon data (220 bytes)
0x0DE - 0x0ED: unknown (always zero?) (16 bytes)
0x0EE - 0x127: GTS specific data (58 bytes)
The only difference is:
0x20 - 0x21: Trainer ID
0x22 - 0x23: Secret ID
0x24 - 0x33: Trainer Name
For everything behind this point, add 0x02 to the DPPt server
Have fun with it!
Oh... if someone's interested, I've created a program which can search the GTS for a Pokémon like the game itself does. It's B&W compatible as well.
Grtzz!!
Grovyle91
P.S.: For anyone who's using my Mystery Gift Editor, I'm sorry I've been absent for the last six (?) months. Due some personal reasons I wasn't able to be online and fully working on the final version.
Necron N.N
Sep 24th, 2010, 10:13 PM
Regarding the new Black & White GTS...
I've managed to get the details how the games and the server are communicating ;)
Which are the following:
Checksum is XORed with 0x2db842b2 instead of 0x4a3b2c1d
Hash is calculated from SHA1("HZEdGCzcGGLvguqUEKQN" + token) instead of "sAdeqWo3voLeC5r16DYv" + token
The request from the DS to the BW server is not encrypted (unlike the GRNG with the checksum as seed in DPPt)
Length of the request is 0x0E or 0x0F:
0x00 - 0x03: PID Trainer
0x04 - 0x07: Total length of the following statements
0x08 - 0x09: Pokémon ID
0x0A: Gender
0x0B: Min. Level
0x0C: Max. Level
0x0D: Unknown
0x0E: Total results
0x0F: Country
Host for BW is the same as DPPt: http://gamestats2.gs.nintendowifi.net/
Root directory is different: /syachi2ds/web/worldexchange/
Game ID of Black is 0x14, White is 0x15.
GTS return data is 296 bytes:
First 220 bytes is Pokémon data
Following 16 bytes unknown (always zero?)
Last 58 bytes is GTS specific data
The only difference is:
0x20 - 0x21: Trainer ID
0x22 - 0x23: Secret ID
0x24 - 0x33: Trainer Name
For everything behind this point, add 0x02 to the DPPt server
Have fun with it!
Oh... if someone's interested, I've created a program which can search the GTS for a Pokémon like the game itself does. It's B&W compatible as well.
Grtzz!!
Grovyle91
P.S.: For anyone who's using my Mystery Gift Editor, I'm sorry I've been absent for the last six (?) months. Due some personal reasons I wasn't able to be online and fully working on the final version.
Great info :). So this should help to re write HyperGTS to work with B&W?
formlesstree4
Sep 25th, 2010, 02:49 PM
If the game sends an ID out, it can be used to do a switch inside the program to send the proper data.....but I dunno. We'll see.
Linklegend
Sep 26th, 2010, 04:14 AM
Awesome work Grovyle91 can't wait to try this!!!
This means Nintendo only did a graphical enhancement....interesting.
Necron N.N
Sep 26th, 2010, 04:55 PM
Awesome work Grovyle91 can't wait to try this!!!
This means Nintendo only did a graphical enhancement....interesting.
Actually, they only used the 3D effect in more areas than in the 4th gen (places like Stark Mountain, Olivine Lighthouse)
3D effects can be changed in 4th gen with AR
Grovyle91
Sep 27th, 2010, 02:08 AM
Actually, there needs to be a correction at the GTS return data...
The first two bytes have nothing to do with the Pokémon itself.
At 0x02 the Pokémon data starts. The rest follows. The length is still the same.
I've edited my post.
Grtzz!!
5P33DY1
Oct 22nd, 2010, 10:38 PM
I have a question;
Ok, so I use the multisender program, similar to the nuker, and I was wondering how you prevent a GTS ID from receiving the same pokemon more than once.
I'm planning on using this program for 4th gen games only at the moment, but this is probably an important step before i get this on the road...
Any help with this would be greatly appreaciated ^^
formlesstree4
Oct 26th, 2010, 09:09 PM
I have a question;
Ok, so I use the multisender program, similar to the nuker, and I was wondering how you prevent a GTS ID from receiving the same pokemon more than once.
I'm planning on using this program for 4th gen games only at the moment, but this is probably an important step before i get this on the road...
Any help with this would be greatly appreaciated ^^
I'd just keep track of the IP that connects.
Mascab37
Oct 26th, 2010, 09:57 PM
BUMP
Mascab37
Nov 9th, 2010, 10:42 PM
I'm too tired and not enough of a giant nerd to understand what all of this means. :confused: Can someone explain it for me?
M@T
Nov 11th, 2010, 06:31 AM
What do you want to know exactly?
adzos
Nov 12th, 2010, 07:13 AM
hey this might be old news guys
but im using hypergts and when i try to connect to my hg it says error 52101
i set my dns ip to 192.168.0.126
thats not my ip btw
what did i miss?
Vlad
Nov 19th, 2010, 09:45 AM
Figured I could post a updated GTS server tool, I haven't really gotten to test it out but in case someone else would like to I see no problem with that.
http://filebeam.com/63a3b2420920f2e2fdda5f52b4cd156d
You may wish to check the inside of the .jar archive for the python script to encode pkm files. The "README" contains some information -I guess better than none, right? :P
http://i51.tinypic.com/auczd2_th.png (http://i51.tinypic.com/auczd2.png)
Anyway I've looked into Black and White and I thank Grovyle91 for posting his findings on the thread, helps a lot bro! :) On the other hand it seems to kick you if you just use the same old way of fooling the game, perhaps they added a header field containing something the game checks for, so far it does not BSOD or do anything but just disconnect you when calling info.asp (not the first call but the 2nd, with it's hash and everything). I guess the response changed or something, we'll have to look into that eventually.
Nugg
Nov 23rd, 2010, 03:16 AM
How come when I try to send all the pkms in a folder, I get an error message after receiving just one pkm? (sorry, this is my firs ttime using this program, i just got rid of sendpkm lol), this only happened to my retail HG but didn't happen on my SS on my flashcart O.O
Kaphotics
Nov 23rd, 2010, 03:40 AM
Also another area to be looked into is how the Dream World delivers your Pokemon to your game.
That could be another way of receiving pokemon, ie waking them up you get a Pokemon back. In addition if you bring back Pokemon, that data might also be abusable.
M@T
Nov 23rd, 2010, 03:58 PM
How come when I try to send all the pkms in a folder, I get an error message after receiving just one pkm? (sorry, this is my firs ttime using this program, i just got rid of sendpkm lol), this only happened to my retail HG but didn't happen on my SS on my flashcart O.O
This is because you never connected to the real GTS before using SendPKM ; connect to Nintendo's official GTS once and it should work better afterwards.
Nugg
Nov 24th, 2010, 12:22 AM
This is because you never connected to the real GTS before using SendPKM ; connect to Nintendo's official GTS once and it should work better afterwards.
Okay, thanks :) Will try going on the official GTS. Love this program!
Splittah
Nov 25th, 2010, 05:45 AM
So there's going to be another 42 pages of GTS research for Black and White? :P
Scarface
Nov 30th, 2010, 08:23 PM
Figured I could post a updated GTS server tool, I haven't really gotten to test it out but in case someone else would like to I see no problem with that.
http://filebeam.com/63a3b2420920f2e2fdda5f52b4cd156d
You may wish to check the inside of the .jar archive for the python script to encode pkm files. The "README" contains some information -I guess better than none, right? :P
http://i51.tinypic.com/auczd2_th.png (http://i51.tinypic.com/auczd2.png)
Anyway I've looked into Black and White and I thank Grovyle91 for posting his findings on the thread, helps a lot bro! :) On the other hand it seems to kick you if you just use the same old way of fooling the game, perhaps they added a header field containing something the game checks for, so far it does not BSOD or do anything but just disconnect you when calling info.asp (not the first call but the 2nd, with it's hash and everything). I guess the response changed or something, we'll have to look into that eventually.
tried it out but doesnt work on d/p it just has the endless connecting message
JamesRN
Nov 30th, 2010, 09:06 PM
I try to send pokemon from folder (43 pkms) but it only sends the first 1 and goes to GTS' menu (DEPOSIT, SEEK, and EXIT) and nothing else happening.. Is there something I should do after the first pokemon is out?
M@T
Dec 1st, 2010, 02:27 PM
Disconnect from the GTS, then reconnect.
Vetle
Dec 13th, 2010, 08:36 AM
By disabling https i was able to capture the data sent to nas.nintendowifi.net
Log1:
POST /ac HTTP/1.0
Content-type: application/x-www-form-urlencoded
Host: nas.nintendowifi.net
User-Agent: Nitro WiFi SDK/2.2
HTTP_X_GAMECD: CPUE
Connection: close
Content-Length: 270
action=bG9naW4*&gsbrcd=&sdkver=MDAyMDAy&userid=MDk1Njc3MTk3NjUxNg**&passwd=NTcx&bssid=MDAxNGJmZDk1NjBi&apinfo=MDE6MDAwMDAwMC0wMA**&gamecd=Q1BVRQ**&makercd=MDE*&unitcd=MA**&macadr=MDAxYjdhNWU4YWRh&lang=MDE*&birth=MDkxZA**&devtime=MTAxMjEzMTQwOTA3&devname=VgBlAHQAbABlAA**
Reply1:
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 235
Date: Mon, 13 Dec 2010 13:10:00 GMT
Connection: close
Server: GameCube
challenge=T0hYWlRHQlk*&locator=Z2FtZXNweS5jb20*&retry=MA**&returncd=MDAx&token=TkRTdkExY0crUWtRUUthWGx3ZFBmbjZHU0dnNFZuV1Vy L1dhT3BLUHhzaXF4d3cvZzkrYVp6SEpLd3FrbGdsZ3lwYlp0ZV o4ZjBkWTc0UVcrbk5uRjJaVEE9PQ**&datetime=MjAxMDEyMTMxMzEwMDE*
Log2:
POST /ac HTTP/1.0
Content-type: application/x-www-form-urlencoded
Host: nas.nintendowifi.net
User-Agent: Nitro WiFi SDK/2.2
HTTP_X_GAMECD: CPUE
Connection: close
Content-Length: 270
action=bG9naW4*&gsbrcd=&sdkver=MDAyMDAy&userid=MDk1Njc3MTk3NjUxNg**&passwd=NTcx&bssid=MDAxNGJmZDk1NjBi&apinfo=MDE6MDAwMDAwMC0wMA**&gamecd=Q1BVRQ**&makercd=MDE*&unitcd=MA**&macadr=MDAxYjdhNWU4YWRh&lang=MDE*&birth=MDkxZA**&devtime=MTAxMjEzMTQxOTUy&devname=VgBlAHQAbABlAA**
Reply2:
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 235
Date: Mon, 13 Dec 2010 13:20:44 GMT
Connection: close
Server: GameCube
challenge=UjFTRkJPQVU*&locator=Z2FtZXNweS5jb20*&retry=MA**&returncd=MDAx&token=TkRTSHFSaWVKT1dKTmlOdzBmWnU4bER2Y1BDRnh4WWh2 S2hTZzFjUnAwdzhSOGxGemVhSDF3U1BYZlVRdi9PTWF5clMwYl RmenprSkRYaWNxa0QxajR3SWc9PQ**&datetime=MjAxMDEyMTMxMzIwNDU*
Log3:
POST /ac HTTP/1.0
Content-type: application/x-www-form-urlencoded
Host: nas.nintendowifi.net
User-Agent: Nitro WiFi SDK/2.2
HTTP_X_GAMECD: CPUE
Connection: close
Content-Length: 270
action=bG9naW4*&gsbrcd=&sdkver=MDAyMDAy&userid=MDk1Njc3MTk3NjUxNg**&passwd=NTcx&bssid=MDAxNGJmZDk1NjBi&apinfo=MDE6MDAwMDAwMC0wMA**&gamecd=Q1BVRQ**&makercd=MDE*&unitcd=MA**&macadr=MDAxYjdhNWU4YWRh&lang=MDE*&birth=MDkxZA**&devtime=MTAxMjEzMTQyOTQ3&devname=VgBlAHQAbABlAA**
Reply3:
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 235
Date: Mon, 13 Dec 2010 13:30:40 GMT
Connection: close
Server: GameCube
challenge=MlBQWlJNRjc*&locator=Z2FtZXNweS5jb20*&retry=MA**&returncd=MDAx&token=TkRTdHkzRGFEcVBGdk9IY0dkd2tDMWtoOEhBMzlGMWVR M1JkT3RuMWJQRUtuajV2RnlHY3V6OGVSTzRENFZtdFljdzVKTj NJV0U1ODVrTGF2QkRhSERBVHc9PQ**&datetime=MjAxMDEyMTMxMzMwNDA*
?pid=160846812
Im using Pokemon platinum, ssid is linksys using wep with the password 6E0C9157B3
could this be used for something useful?
Poryhack
Dec 13th, 2010, 01:12 PM
How did you disable HTTPS? I thought the games were hardcoded to use SSL in these cases.
Vetle
Dec 13th, 2010, 06:05 PM
By using a hex editor i replaced
ht tps://nas.nintendowifi.net/ac with
ht tp://nas.nintendowifi.net/ac + 00 byte at the end
the server itself has both http and https enabled and doesn't seem to care which one you use.
Poryhack
Dec 13th, 2010, 10:13 PM
Oh I see. Interesting that that works, too bad it doesn't with the wondercard server.
M@T
Dec 13th, 2010, 11:04 PM
Nice flaw in their implementation of HTTPS.
Data is base64-encoded with "=" replaced with "*", so it is easy to decode.
Too bad it doesn't work for the wondercard server, indeed; it would have been really helpful.
Here are the decoded requests/replies (\x00 is the null-byte):
Log1:
POST /ac HTTP/1.0
Content-type: application/x-www-form-urlencoded
Host: nas.nintendowifi.net
User-Agent: Nitro WiFi SDK/2.2
HTTP_X_GAMECD: CPUE
Connection: close
Content-Length: 270
action=login&gsbrcd=&sdkver=002002&userid=0956771976516&passwd=571&bssid=0014bfd9560b&apinfo=01:0000000-00&gamecd=CPUE&makercd=01&unitcd=0&macadr=001b7a5e8ada&lang=01&birth=091d&devtime=101213140907&devname=V\x00e\x00t\x00l\x00e\x00
Reply1:
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 235
Date: Mon, 13 Dec 2010 13:10:00 GMT
Connection: close
Server: GameCube
challenge=OHXZTGBY&locator=gamespy.com&retry=0&returncd=001&token=NDSvA1cG+QkQQKaXlwdPfn6GSGg4VnWUr/WaOpKPxsiqxww/g9+aZzHJKwqklglgypbZteZ8f0dY74QW+nNnF2ZTA==&datetime=20101213131001
Log2:
POST /ac HTTP/1.0
Content-type: application/x-www-form-urlencoded
Host: nas.nintendowifi.net
User-Agent: Nitro WiFi SDK/2.2
HTTP_X_GAMECD: CPUE
Connection: close
Content-Length: 270
action=login&gsbrcd=&sdkver=002002&userid=0956771976516&passwd=571&bssid=0014bfd9560b&apinfo=01:0000000-00&gamecd=CPUE&makercd=01&unitcd=0&macadr=001b7a5e8ada&lang=01&birth=091d&devtime=101213141952&devname=V\x00e\x00t\x00l\x00e\x00
Reply2:
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 235
Date: Mon, 13 Dec 2010 13:20:44 GMT
Connection: close
Server: GameCube
challenge=R1SFBOAU&locator=gamespy.com&retry=0&returncd=001&token=NDSHqRieJOWJNiNw0fZu8lDvcPCFxxYhvKhSg1cRp0w8 R8lFzeaH1wSPXfUQv/OMayrS0bTfzzkJDXicqkD1j4wIg==&datetime=20101213132045
Log3:
POST /ac HTTP/1.0
Content-type: application/x-www-form-urlencoded
Host: nas.nintendowifi.net
User-Agent: Nitro WiFi SDK/2.2
HTTP_X_GAMECD: CPUE
Connection: close
Content-Length: 270
action=login&gsbrcd=&sdkver=002002&userid=0956771976516&passwd=571&bssid=0014bfd9560b&apinfo=01:0000000-00&gamecd=CPUE&makercd=01&unitcd=0&macadr=001b7a5e8ada&lang=01&birth=091d&devtime=101213142947&devname=V\x00e\x00t\x00l\x00e\x00
Reply3:
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 235
Date: Mon, 13 Dec 2010 13:30:40 GMT
Connection: close
Server: GameCube
challenge=2PPZRMF7&locator=gamespy.com&retry=0&returncd=001&token=NDSty3DaDqPFvOHcGdwkC1kh8HA39F1eQ3RdOtn1bPEK nj5vFyGcuz8eRO4D4VmtYcw5JN3IWE585kLavBDaHDATw==&datetime=20101213133040
The "token" value in replies is another base64-encoded value preceded by "NDS".
It is raw data when decoded, like random bytes.
Vetle
Dec 14th, 2010, 09:55 AM
after removing the static "NDS" from the token, it can be decoded using any base64 decoder.
NDSHqRieJOWJNiNw0fZu8lDvcPCFxxYhvKhSg1cRp0w8R8lFze aH1wSPXfUQv/OMayrS0bTfzzkJDXicqkD1j4wIg==
>
HqRieJOWJNiNw0fZu8lDvcPCFxxYhvKhSg1cRp0w8R8lFzeaH1 wSPXfUQv/OMayrS0bTfzzkJDXicqkD1j4wIg==
>
1e a4 62 78 3f 3f 24 d8 3f c3 47 d9 bb c9 43 bd .¤bx??$Ř?ĂGŮ»ÉC˝
c3 c2 17 1c 58 3f f2 a1 4a 0d 0a 5c 46 3f 30 f1 ĂÂ..X?ňˇJ..\F?0ń
1f 25 17 37 3f 1f 5c 12 3d 77 d4 42 ff ce 31 ac .%.7?.\.=wÔB˙Î1¬
ab 4b 46 d3 7f 3c e4 24 35 e2 72 a9 03 d6 3e 30 «KFÓ.<ä$5âr©.Ö>0
22 "
-
action (client)
Using the GTS only "login" is used here.
gsbrcd (client)
not assigned to a value.
sdkver (client)
sdkver tells the server what version of the Nitro SDK the game is using in the following format:
XXXYYY
where 2.2 is
002002
bssid (client)
mac address of your router where ":" is removed. mac address:
00:14:bf:d9:56:0b
becomes
0014bfd9560b
apinfo (client)
In the wifi menu, there is 3 diffrent AP's you can set, it starts counting from 0. format used:
XX:0000000-00
example when connected to the middle AP
01:0000000-00
i think the wifi connector will be id 3 but im not sure.
gamecd (client)
identifies the card by its ID, for pokemon platinum this is
CPUE
makercd (client)
The id of the game maker.
Nintendo uses id
01
unitcd (client)
0 says a lot.
macadr (client)
Sends the mac address where ":" is removed. mac address:
00:1b:7a:5e:8a:da
becomes
001b7a5e8ada
lang (client)
Your language. English is
01
devname (client)
Your name, where each character is followed by a null byte
V\x00e\x00t\x00l\x00e\x00
devtime (client)
microsecounds since adventure start?
-
challenge (server)
8 bytes long, mixed with numbers and upper case letters. - does not seem to be used later. might be used to verify the server.
changes even if the request from the client stays the same.
locator (server)
gamespy.com - something to do with the user agent used when using the gts?
might be requesting gamespy.com/download using https
token (server)
"NDS" + base64(random) - does not seem to be used later. might be used to verify the server.
changes even if the request from the client stays the same.
datetime (server)
NOTE: GMT
datetime displays the date and time when the request was sent formated like this:
YYYYMMDDHHMMSS
example:
20101216003946
NOTE: encrypt values with base64
zxg
Dec 18th, 2010, 11:37 PM
Is there any way that a pokemon can be sent from a DS to the computer/server using a script like this?
Vetle
Dec 19th, 2010, 08:26 AM
http://code.google.com/p/ir-gts/
aquaguy34
Dec 19th, 2010, 07:40 PM
Just use Hypergts, it is able to send and recieve from the computer.
HyperDrill89
Jan 4th, 2011, 11:24 AM
just to be clear the Current HyperGTS/Sendpkm doesn't work on B/W but people are working on it
Paul2357
Jan 11th, 2011, 12:46 PM
I downloaded hypergts the other day. I looked up how to go about using it and gave it a shot. I have no problem getting my IP address and inputting it into the DNS box. All ports have been forwarded properly and I double checked to make sure I did it correctly. Also my firewall isn't interfering in any way. The only issue I'm having is with hypergts itself. I can start the DNS without a problem however it will not let me start the GTS. I don't know if I'm using something wrong or what but it's driving me nuts. Any help would be greatly appreciated.
M@T
Jan 11th, 2011, 05:23 PM
Is there any program such as Skype or a webserver running on your computer ?
Paul2357
Jan 16th, 2011, 12:02 PM
No I made sure everything was closed out and the processes were no longer running. Like I said everything works except for the start gts button.
HyperDrill89
Jan 30th, 2011, 11:30 PM
Is there any news on a Hyper GTS for Black / White?
Jinderox
Feb 4th, 2011, 04:29 AM
Is there any news on a Hyper GTS for Black / White?
I wish soon we have a server working, i have been waiting for 2 months already and nothing out.
Scarface
Feb 5th, 2011, 09:10 AM
I wish soon we have a server working, i have been waiting for 2 months already and nothing out.
There are people working on it, You really need to have some patience. It took years for them to crack it on 4th Gen, we're lucky as it is that we can even send pokemon to our games
jordsters
Feb 14th, 2011, 01:52 PM
Hi everyone !
I made two VB.NET console applications, one for the DNS Server part, and the other for the Pokémon sending part (fake GTS).
It was ready for quite a while, but I couldn't test it until Saturday.
Now it's been tested and it works well, I was able to send a Pokémon to a friend of mine across the Internet without problem.
I made the GTS server working with threads, so several connections are possible simultaneously.
It is mainly a copypasta of the Python script, but it can be easily improved and included in a window application.
For example, I was planning to make a GUI that would include the ability to make a list of Pokémon to send.
I attached a ZIP file containing the sources and the binaries of the two programs.
Thanks a lot for that. A friend of mine was looking for something like this.
Guurak
Feb 14th, 2011, 08:08 PM
Regarding the new Black & White GTS...
I've managed to get the details how the games and the server are communicating ;)
Which are the following:
Checksum is XORed with 0x2db842b2 instead of 0x4a3b2c1d
Hash is calculated from SHA1("HZEdGCzcGGLvguqUEKQN" + token) instead of "sAdeqWo3voLeC5r16DYv" + token
The request from the DS to the BW server is not encrypted (unlike the GRNG with the checksum as seed in DPPt)
Length of the request is 0x0E or 0x0F:
0x00 - 0x03: PID Trainer
0x04 - 0x07: Total length of the following statements
0x08 - 0x09: Pokémon ID
0x0A: Gender
0x0B: Min. Level
0x0C: Max. Level
0x0D: Unknown
0x0E: Total results
0x0F: Country
Host for BW is the same as DPPt: http://gamestats2.gs.nintendowifi.net/
Root directory is different: /syachi2ds/web/worldexchange/
Game ID of Black is 0x14, White is 0x15.
GTS return data is 296 bytes:
0x000 - 0x001: unknown (2 bytes)
0x002 - 0x0DD: Pokémon data (220 bytes)
0x0DE - 0x0ED: unknown (always zero?) (16 bytes)
0x0EE - 0x127: GTS specific data (58 bytes)
The only difference is:
0x20 - 0x21: Trainer ID
0x22 - 0x23: Secret ID
0x24 - 0x33: Trainer Name
For everything behind this point, add 0x02 to the DPPt server
Have fun with it!
Oh... if someone's interested, I've created a program which can search the GTS for a Pokémon like the game itself does. It's B&W compatible as well.
Grtzz!!
Grovyle91
P.S.: For anyone who's using my Mystery Gift Editor, I'm sorry I've been absent for the last six (?) months. Due some personal reasons I wasn't able to be online and fully working on the final version.
Could you post that program please? I am interested.
Sabresite
Mar 3rd, 2011, 03:20 AM
HyperGTS SCREWED UP MY GAME!!!
WTF (http://www.kleritec.net/WTF.jpg)
WTF2 (http://www.kleritec.net/WTF2.jpg)
*SIGH*
ReignOfComputer
Mar 3rd, 2011, 04:16 AM
HyperGTS SCREWED UP MY GAME!!!
WTF (http://www.kleritec.net/WTF.jpg)
WTF2 (http://www.kleritec.net/WTF2.jpg)
*SIGH*
Lol, it's your .pkm. Make sure they're party .pkms (236b), or download the Pokemon to your Storage, not Party.
Sabresite
Mar 3rd, 2011, 04:52 AM
I didn't know either of those... but I quickly realized it. Thanks to Kaphotics, I took my mew to the daycare center and fixed it.
ceolceol
Mar 4th, 2011, 11:21 AM
Should we start a new thread for Black/White GTS research?
ceolceol
Mar 6th, 2011, 10:13 PM
I'm getting B/W connections for pokemondpds/web/enc/lobby/checkProfile.asp in addition to the expected syachi2ds/web/*.asp requests, does anyone know what this could be used for?
Draaza
Mar 7th, 2011, 03:42 AM
Just dropping a little note because of a problem I had (and solved), so that others might not have the same problem:
GTS wouldn't start because port 80 was supposedly being used, netstat gave me PID4, and then tasklist gave me SYSTEM (not very useful).
Long story short, it was World Wide Web Publishing Service (W3SVC) that was occupying the port. Disabled the service and the GTS started - no problem.
While you may not be hosting any webpages or anything, you may not notice that service is running in the background (possibly the computer is second-hand and came with the OS installed already and the service was running, or you simply turned it on at some point by accident somehow), so might be worth checking for.
HyperDrill89
Mar 8th, 2011, 08:11 PM
any ETA given the progress so far sorry if i sound impatient
Icehawk78
Mar 10th, 2011, 08:47 AM
any ETA given the progress so far sorry if i sound impatient
Go look at the other thread.
HyperDrill89
Mar 10th, 2011, 12:19 PM
Go look at the other thread. url please
Kaphotics
Mar 10th, 2011, 12:32 PM
url please
It's in the same subforum as this thread (http://projectpokemon.org/forums/showthread.php?13834-5th-Gen-GTS-Research).
Powered by vBulletin™ Version 4.0.2 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.