Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by LordLandon

  1. Yes, the GTS is terribly insecure.. No, the last four bytes at the end of exchange aren't "null" they're the PID of the trainer you want to do the exchange with (remember? stateless.) Yes, you could fsck with the GTS and delete all the pokemon for the lulz - but the reason none of us have released client code (to work against the real GTS) is that we do not advocate it. At all. It's one thing to mess with your own game/server, it's another to go ruining the experience for everyone using the real GTS.
  2. Binary junk with the content-type header of text/html, at that q= my setup is simply dnsspoof substituting replies to gamestats2.gs with my IP, and mod_rewrite in lighttpd url.rewrite =("^/pokemon.+([?].*)" => "/gts.py$1") which rewrites all requests to /pokemon.* to, /gts.py which uses the requested_url environ variable to figure out what to do. I've got a fully working GTS server running there atm, with searching and trading, from within my regular wobserver C=
  3. If the DS can't access conntest, whatever you've got rigged up is terribly borked. (=
  4. That's not an error. Besides gamestats2, the DS connects to conntest, and nas. (The former to test that it has interweb, and the latter to do some sekrit magic voodoo that gives it a PID if it doesn't have one)
  5. If you want dnsspoof to do your public IP, replace s=socket.socket(); s.connect(("bash.org",80)); me="".join(chr(int(x)) for x in s.getsockname()[0].split(".")) print "Please set your DS's DNS server to",s.getsockname()[0] with import urllib2 ip=urllib2.urlopen("http://whatismyip.everdot.org/ip").read() me="".join(chr(int(x)) for x in ip.split(".")) print "Please set your DS's DNS server to",ip Easy!
  6. If it tells you or, sorry, but you're going to have to find the IP address of the computer yourself - you can look in your network properties (i think it's under some detailed tab). In the meantime, I'll see if there's a more reliable way of getting that IP.
  7. I don't have a mac, but that error is due to something already listening on port 80. See what you see if you go to http://localhost in your browser.
  8. Well, you found a limitation, but a different one - that .pkm is from a box, and consists of 136 bytes. Atm, the script only works with "party" pkm which consist of 236 bytes. I will fix this soon - sorry!
  9. Poryhack: Yes, thanks for the tip about 2.6 (= also, you can be my tester for using the wifi adapter: since it doesn't let you change the dns settings in your ds, it must be using the same settings that your computer uses - try changing the DNS server in your regular network settings. Pingouin7: I'm glad you're enjoying it! Be sure to post anything that causes it to break, so that it could be fixed.
  10. Great. Windows issues fixed - unzip the archive, and drag a .pkm or a .zip to sendpkm.py. I seem to have fixed platinum's communication error by making the script wait for the animation to finish before closing, as it seems the game still wants the socket open after that. I now also have sendpkm put together the 56 byte ending, or at least some of it. This fixes some nasty problems, especially in platinum which seem to be anti-cheating measures of some sorts. Nonetheless, it's still not perfect, and I would advise having a full party when you go to do this, because otherwise you'll end up wit
  11. Attached is a script that will allow you to send a .pkm to your game cart without any special hardware, through the GTS. In order to run, you need to have python installed on your machine which is freely available at python.org and should run on any OS. On linux, and osx the script needs superuser privileges because it needs to bind to two ports bellow 1024. I'm not sure, but on vista+ it might need to be run as admin. EDIT: It's been pointed out to me that it doesn't seem to work on windows after all |= I'll figure it out once I get access to a windows xp machine, but for now - sorry )= How
  12. hi. i'd like to request a .pkm with as many 0 bytes as possible in the encoded structure, but still importable into the game
  13. *high fives guested* for being the only one who's making any sense in this thread.
  14. So here's what I have as of now: because http is used for the communication, every time the DS wants to make a request from the server, (after the initial connect) the exchange is as follows: DS gets whateverpage.asp?pid=[pid], and the server returns a 32-byte string the DS then gets whateverpage.asp?pid=[pid]&hash=[40 byte hash of 32-byte string]&data=[encoded request] the pid is *not* wifiid dependent since it remained after i connected to wifi with a different DS. either way, it's gotta be in the save file somewhere. the hash is a hash of *only* the secret string the server sen
  15. Okay, so I changed my router's DNS server to resolve gamestats2.gs.nintendowifi.net to point to one of my computers. Had my DS happily connect to it, where a happy python script was waiting to intercept GTS traffic and redirect it to the REAL gamestats2. What I've found is that there are no ssl connections happening and I have niceish (nicer than a pcap, at any rate) dialogs between the DS and gamestats2. The pid seems to be a cart-specific number, probably one you get the first time you connect to wifi, it stays the same every time you reconnect. When doing searches, another GET param comes u
  • Create New...