Jump to content

M@T

Member
  • Posts

    344
  • Joined

  • Last visited

Posts posted by M@T

  1. Actual stats are calculated using the Pokémon's base stats, his IV and his EV.

    Modifying the stats directly is possible only when the Pokémon is in the team, but it will be reset when deposited in the PC or when leveling up.

    Unfortunately, I don't know any code that would change the party Pokémon's stats, sorry.

  2. I think it is not due to the return values of the fake GTS server, but from the game making a copy of the Pokémon it sends in the GTS.

    When it recieves a Pokémon from SendPKM, it assumes it already sent something in the GTS before, and therefore, when it is traded (the Pokémon sent by SendPKM is seen as a trade by the game), the game tries to delete the backup it made of the Pokémon it believes having deposited.

    But, as it sent nothing to the GTS, it provokes an error.

    Also, I think that D&P don't make BSODs because they don't make backups of the Pokémon, which would explain the easy cloning glitch in these versions (the Pokémon are erased at the very end of the deposit process, so when one resets the game between the deposit and the save, there are two copies of the Pokémon, one was sent in the GTS, and the other was not erased from the save).

    These are only assumptions, maybe I am completely wrong.

    But strangely, it first gave me BSODs with Platinum, and now it works properly, I don't know why exactly, I think that it is due to me having deposited something in the real GTS (it began working fine after I did that).

    That could explain why some people have connection errors, and others do not.

  3. 1: I stay stuck on waiting for connection, and I read that you need to do other things that you need for this process, but I didn't download anything else. What is the problem?
    Well I opened GTS server, and I got a popup from Firewall, I clicked unblock, then it said waiting for connection.

    It says it is waiting for a connection because it waits for the DS to send a request.

    You need to download a DNS server too, I posted an automatically-configurable one several posts above.

    Finally, you must set up your DS' DNS server properly, as described here, with your local IP provided by the DNS server (the one in yellow if you use mine in version 0.3).

    2: How would I use this to find my SID?

    If you get it to work, you have to deposit one of your Pokémon in the fake GTS, it will be converted into a .pkm file.

    Then, simply open it with Pokesav to have your SID.

    ---------------

    Goldie, I didn't forget you, I just finished the multiple .PKM sender, go and see the attachment. :biggrin:

    To use it, place your .pkm and .bin files in the directory 'PKMs', they will be sent in alphabetic order (it loops when it reaches the end).

    You can also drag and drop a .pkm or a .bin file onto the .exe in order to make the program send this Pokémon only.

    Multiple_PKM_Sender_v0.3+src.zip

    Multiple_PKM_Sender_v0.3+src.zip

  4. That might be hard if you can't download anything...

    As sendpkm.py shows nothing of what is happening, you'll have to modify it a bit.

    Edit pokehaxlib.py with a text editor such as Notepad, and find this (in the middle of the file) :

    def dnsspoof():
     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]
     dnsserv=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
     dnsserv.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
     dnsserv.bind(("0.0.0.0",53))
     while True:
       r=dnsserv.recvfrom(512)
       s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
       s.connect(('4.2.2.2', 53))
       s.send(r[0])
       rr=s.recv(512)
       if "gamestats2" in rr: rr=rr[:-4]+me
       dnsserv.sendto(rr, r[1])

    Replace it by the following code, then save :

    def dnsspoof():
     s=socket.socket(); s.connect(("bash.org",80));
     me="".join(chr(int(x)) for x in s.getsockname()[0].split("."))
     ip=s.getsockname()[0]
     print "Please set your DS's DNS server to",ip
     print
     dnsserv=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
     dnsserv.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
     dnsserv.bind(("0.0.0.0",53))
     while True:
       r=dnsserv.recvfrom(512)
       print "Got a DNS query from",r[1][0]
       s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
       s.connect(('4.2.2.2', 53))
       s.send(r[0])
       rr=s.recv(512)
       if "gamestats2" in rr:
         rr=rr[:-4]+me
         print "Spoofing : gamestats2.gs.nintendowifi.net ->",ip
       dnsserv.sendto(rr, r[1])
       print "DNS response sent to",r[1][0]
       print

    That will make the script showing the DNS requests it gets and the responses it sends.

    If there is still nothing is showing up on in the console, then the problem comes from the port UDP 53.

    You may have to allow that specific port in the firewall in addition to python.exe.

    Your father isn't against copy/pasting, is he ? :redface:

  5. Oh I don't mean just the lack of security. I mean that anyone who knows how can query the GTS, get a list of PIDs then run them against return.asp or delete.asp and knock them off the GTS system. You don't even need to go through SSL.

    I know, but I was unsure of whether SSL handshake was mandatory.

    The contrary should be possible too : simulate an exchange between two IDs, to annoy someone who requests a lvl 9 Mew for example (he was probably trying to clone his Pokémon). :biggrin:

    In fact, you can search a Pokémon with search.asp, then call exchange.asp and finally exchange_finish.asp.

    I am currently attempting to figure out how exchanging works (it seems to be similar to post.asp, with 4 extra null-bytes at the end).

    I was wondering too, if the checks on whether the Pokémon you want to exchange matches the one that is requested is done on the game-side only (bad Pokémon are darkened), or if the GTS checks it too (which is certainly the case).

    If the GTS doesn't check it, one could eventually trade a Magikarp instead of a requested Arceus. :tongue:

    I did some checks with my copies of Pearl and Platinum. It seems the game doesn't delete them when sending them to the GTS so it just restores them.

    Yeah I did it too, there are several securities to prevent your Pokémon from being lost between time and space if something goes wrong.

    Also, if the game knows it sent nothing in the GTS, but the server says there is something, it provokes a communication error.

    One could try and call return.asp with random IDs between 1 and 2147483647, if the request is formatted properly, there sould not be any problem.

    But Nintendo will certainly notice it, and close the GTS or something similar. :\

  6. Lol no, there is no censorship or whatever.

    There are juste some limitations, such as the SSL handshake with nas.nintendowifi.net, but I think one can bypass it by connecting with his real DS first, and then use his ID to connect from a computer, but I don't have the time to test it yet.

  7. Did you try these codes ?

    Not infected by Pokérus :

    1206F04A 00002000

    1206F04E 000076B0

    Infected by Pokérus :

    1206F04A 00002001

    1206F04E 000076B0

    Cured from Pokérus :

    1206F04A 00002002

    1206F04E 000076B0

    Go to your PC, choose "Move Pokémon", and mark the Pokémon you want (it must be stored in the PC in order to work properly, not in the party).

  8. i was talking GUI. ive always had toubles with command line and i can guarentee that im not the only one, but im still gonna make a pkm downloader to make it much easier for some users :) and also, does your gts server actually send the pkm to the ds or is that bgged, cus if it does ill use the source and make a GUI for it and even make both work together

    maybe even set it up to work with pokesav

    I began making a GUI several days ago, but I don't have enough time, I'm very busy.

    Good luck then, especially for making it work with Pokésav (you can use codemonkey85's PokemonDSLib, it is really useful).

    I made 2 different GTS servers.

    The first one sends .PKMs to the DS, just like sendpkm.py, but a BSOD usually appears on the DS after using it (the same thing happens with every PKM senders I think).

    EDIT : I just used it 3 times, and it didn't give me a BSOD, hopefully it will (finally) work properly.

    EDIT² : It seems to work at 100% with Platinum, with several Pokémon, that's odd 'cuz I always had BSODs with sendpkm.py and my program is based on that Python script...

    The second one acts more like a real GTS server, you can deposit and retrive Pokémon, and every .PKM deposited is saved in a folder.

    You can then Pokesav your .PKM's and send them back to your game, everything without any flashcart, Action Replay nor save extractor.

    What does it mean if it tells me to set my ds DNS to 0.0.0.0?

    Cause every time I try it' date=' it does that. :/[/quote']

    What program are you using ?

  9. Version 0.3 of my GTS server is ready.

    I added several command-line parameters :

    /verbose (or simply /v) : makes the program more verbose (it describes every action done by the client).

    /log : logs the following actions : the servers starts, a Pokémon is deposited, a Pokémon is taken back.

    /logall : logs everything, just like the main console. If /verbose is used, the logs are more verbose too.

    /sortbyid : sorts the .PKMs in folders according to the client's game ID. Folder name is 'PKMs_[client's ID]' (without the brackets).

    /sortbyip : sorts the .PKMs in folders according to the client's IP address. Folder name is 'PKMs_[client's IP]'.

    If both /sortbyid and /sortbyip are specified, .PKMs are stored in a folder named 'PKMs_[client's ID]_[client's IP]'.

    /prompt : prompts whether you want to enable parameters above that are not set by command-line.

    Every parameter is case-insensitive, and can be prefixed with either '/', '-' or '/'.

    I also fixed some typos, and a probem with relative/absolute paths.

    I included 3 .BAT files to quickly use tags '/log', '/verbose' and '/prompt'.

    In the next version, I'll try to add the ability to send .PKMs, just like SendPKM, but I need to find out how to fix the BSOD issue first.

    EDIT : This program, as well as all my other programs, needs Microsoft .NET Framework 3.5 in order to run properly.

    You can find it here.

    Edit: ill even make a gui in vb if someone could help me port the python script to work as in a vb program

    You want to make a .PKM sender in VB ?

    I already made one in VB.NET 9.0, you can have look at the sources (it is included in the .ZIP file named GTS_Nuker).

    GTS_Server_v0.3+src.zip

    GTS_Server_v0.3+src.zip

×
×
  • Create New...