Jump to content


  • Posts

  • Joined

  • Last visited


10 Good

About codename_B

  • Birthday 03/05/1990
  1. If it helps, here's a whole bunch of bulbasaur. bulba_1..pkm bulba_6..pkm bulba_2..pkm bulba_4..pkm bulba_3..pkm bulba_5..pkm bulba_0..pkm
  2. http://projectpokemon.org/wiki/Pokemon_Black/White_NDS_Structure I assume you are referring to that? Yeah, I've got some model files to work from and it works fine for those but it appears to be arranged in a different block shuffling manner to what I'm able to figure out. Again, could just be me... I'm getting completely nonsensical PID values when I try to read them from the byte[] array. Where pid: is in the unencryped 50 odd bytes prior to the encrypted .pkm and ppid: is what I'm trying to make sense of. I've also tried reversing the byte[] order, just to see if it's just me being silly about reading it right, and that was equally unhelpful.
  3. A little work on result.asp?data=WHATEVER data length is 444 bytes 0x00-0x03 checksum 0x04-0x07 pid 0x08-0x09 data-length (minus headers) 0x0A game version 0x0B always "0x02" The rest is unknown, but a lot of it can be blank. Here are some pastes of some data captures (if you feel like having a go at deciphering it yourself) with excess padding (the rest of the 444 bytes) stripped off.
  4. That's really not answering the question of how to go about decrypting the 220 bytes I have. (I'm also not sure if I've got them the right way round for decryption so feel free to flip em about as you see fit)
  5. I've attached a 220-byte .pkm file that I've gotten from a search. I'm not 100% sure of the format this is in but from what I've been able to deduce the rest of the bytes up till this are GTS specific and padding, so this is the data that will return a valid pokemon. Feel free to put in some input, or ask any questions! I'm going to put this to bed for now, and take another look at it some time in the future. a..pkm
  6. Here are the data return lengths for various numbers of results, I'll attach data if anyone wants it. 338 byte result I'm working on this flipped, as I find it easier to think of things little-endian... So what we've got is first 40 bytes String checksum Last 2 bytes 0x00 and 0x01 ALWAYS (signals end of stream I guess!)
  7. Took another look at this with fresh eyes today, it is literally the sum of all bytes, xor-ed with 0x2db842b2 and then flipped. Totally obvious now that you look at it. Not the cleanest code ever, but it works and that'll do for now.
  8. Working on a way to search the GTS, I'm still stuck on the final integer. If anyone is good at spotting the patterns between numbers, please feel free to lend a hand! To get these values, I've done a fair bit of looking at everything and I've got a fairly decent map of where everything is - I just need a process to generate the last number in this now! (or the first depending on what way around you look at the problem)
  9. Just starting from scratch and thinking about things backwards here, don't mind me. 5th Gen GTS Research (Searching) Pid: 326390047 Query: LbhDTB9RdBMHAAAA9QEDAAAABw== Decoded: 2d b8 43 4c 1f 51 74 13 07 00 00 00 f5 01 03 00 00 00 07 Reversed: 07 00 00 00 03 01 f5 00 00 00 07 13 74 51 1f 4c 43 b8 2d (read in reverse order) results (max 0x07): 0x07 location?: 0x00 level range to: 0x00 level range from: 0x00 gender: 0x03 species: 0x01 0xf5 data-length: 0x00 0x00 0x00 0x07 (always 8) pid: 0x13 0x74 0x51 0x1f unknown: 0x4c 0x43 0xb8 0x2d
  10. Ok, I'm currently at a loss as to the first 4 bytes, someone feel free to enlighten me ;D
  11. data=LbhAPnQLnBYHAAAAiQIDW2QABw== decoded=2db8403e740b9c16070000008902035b640007 where 2db8403e740b9c16070000008902035b640007 these bytes represent the level-ranges of the requested pokemon
  12. data=LbhAPnQLnBYHAAAAiQIDW2QABw== decoded=2db8403e740b9c16070000008902035b640007 where 2db8403e740b9c16070000008902035b640007 these bytes represent the id of the requested pokemon
  13. Little update: data=LbhD8XQLnBYHAAAAAQADAAAABw== decoded=2d b8 43 f1 74 0b 9c 16 07 00 00 00 01 00 03 00 00 00 07 The pid is these bytes here: 2d b8 43 f1 74 0b 9c 16 07 00 00 00 01 00 03 00 00 00 07 as opposed to what is said in the OP
  • Create New...