DSiWare VulnList: Difference between revisions
No edit summary |
|||
| (26 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
== Total listed DSiWare == | == Total listed DSiWare == | ||
| Line 22: | Line 9: | ||
|- | |- | ||
| Incomplete | | Incomplete | ||
| | | 16 | ||
|- | |- | ||
| Done | | Done | ||
| | | 27 | ||
|- | |- | ||
| DSiWare which probably aren't exploitable | | DSiWare which probably aren't exploitable | ||
| Line 85: | Line 72: | ||
| None | | None | ||
| Has ASCII strings. It's unlikely this can be exploited, seems to crash /w out-of-bounds array-index. | | Has ASCII strings. It's unlikely this can be exploited, seems to crash /w out-of-bounds array-index. | ||
|- | |- | ||
| Crystal Monsters | | Crystal Monsters | ||
| Line 106: | Line 88: | ||
| Has ASCII string but the checksum is unknown. | | Has ASCII string but the checksum is unknown. | ||
|- | |- | ||
| | | Jelly Car 2 | ||
| High | | High Score name | ||
| | | None | ||
| | | Uses ASCII player name for time scores; It's unlikely this can be exploited, seems to crash /w out-of-bounds array-index. | ||
|- | |- | ||
| Lets golf | | Lets golf | ||
| Line 140: | Line 112: | ||
| None | | None | ||
| Has ASCII strings. | | Has ASCII strings. | ||
|} | |} | ||
| Line 163: | Line 130: | ||
| High-Scores | | High-Scores | ||
| Has ASCII high-scores with null terminated strings. string bugs only corrupted the display, making the game unplayable. | | Has ASCII high-scores with null terminated strings. string bugs only corrupted the display, making the game unplayable. | ||
|- | |||
| Academy: Checkers | |||
| Profile names | |||
| Game didn't crash with a long profile string. | |||
|- | |- | ||
| Arcade Hoops Basketball | | Arcade Hoops Basketball | ||
| Line 179: | Line 150: | ||
| High-scores and word list | | High-scores and word list | ||
| Has ASCII null-terminated high-score list names and null-terminated word list strings. ( No crash, just nice very high scores, and very long words displayed. ) | | Has ASCII null-terminated high-score list names and null-terminated word list strings. ( No crash, just nice very high scores, and very long words displayed. ) | ||
|- | |||
| Crazy Sudoku | |||
| Profile names/Data File | |||
| The ASCII player name or the game data aren't exploitable. This game can still be crashed. | |||
|- | |- | ||
| Dark Void Zero | | Dark Void Zero | ||
| Line 186: | Line 161: | ||
| Digger Dan & Kaboom | | Digger Dan & Kaboom | ||
| Player name | | Player name | ||
| | | The ASCII player names aren't exploitable, but the save is <10KB anyway. | ||
|- | |- | ||
| Dracula | | Dracula | ||
| Line 195: | Line 170: | ||
| None | | None | ||
| Has high-scores without names, scores are ASCII null-terminated strings. Managed to semi-crash this, but system reset still worked so this probably isn't exploitable. | | Has high-scores without names, scores are ASCII null-terminated strings. Managed to semi-crash this, but system reset still worked so this probably isn't exploitable. | ||
|- | |||
| Fieldrunners | |||
| High-Scores | |||
| The xml, ".plist", in the game is used for storing savadata which contains high-score strings. Using a very large string crashes the game leading it to stack buffer overflow. The game has already been exploited through [https://github.com/yellows8/dsi/tree/master/exploits/fieldrunhax fieldrunnerhax]. | |||
|- | |- | ||
| Frogger Returns | | Frogger Returns | ||
| High-Scores | | High-Scores | ||
| Has ASCII high-scores. strcpys to a static buffer from savedata, unknown if this is exploitable but there's only <10KB free space available(way too low for a payload) so meh. | | Has ASCII high-scores. strcpys to a static buffer from savedata, unknown if this is exploitable but there's only <10KB free space available(way too low for a payload) so meh. | ||
|- | |||
| Guitar Rock Tour | |||
| High-Scores | |||
| Has ASCII high-score strings stored in the savedata. Using a very long excessive string can crash the game to lead into a stack smash. This game was successfully exploited through [https://github.com/yellows8/dsi/tree/master/exploits/grtpwn grtpwn]. | |||
|- | |||
| Legends of Exidia | |||
| Player name | |||
| Has ASCII player name stored in the savadata. Using an extensive long string will cause a stack smash to saved registers and can eventually be exploited through [https://github.com/yellows8/dsi/tree/master/exploits/exidiahax exidiahax]. | |||
|- | |- | ||
| Mario Calculator | | Mario Calculator | ||
| Line 215: | Line 202: | ||
| High-scores | | High-scores | ||
| Has English-only high-scores and a trivial checksum, not exploitable. | | Has English-only high-scores and a trivial checksum, not exploitable. | ||
|- | |||
| Rayman | |||
| Player name | |||
| No overflow, with a long string the game only displays one extra character. | |||
|- | |- | ||
| Soul of Darkness | | Soul of Darkness | ||
| Line 224: | Line 215: | ||
| Has ASCII player name for each of the 3 save slots. Game was crashed with an excessively long player name. The game has already been exploited through [[Sudokuhax]]. | | Has ASCII player name for each of the 3 save slots. Game was crashed with an excessively long player name. The game has already been exploited through [[Sudokuhax]]. | ||
|- | |- | ||
| | | Telegraph Sudoku & Kakuro | ||
| | | Profile name | ||
| No overflow, with a | | No overflow, the game slot acts as if things are normal, only gives you a lot of completion stars | ||
|- | |||
| The Legend of Zelda: Four Swords Anniversary | |||
| Savedata filesize | |||
| The game has 2 savefiles. When one savefile fails to load (larger than a usual savefile), the game loads the backup save and will continue load without any errors. That being said, one can crash the game with a larger game filesize to attack the heap and successfully overwrite the stack registers including the pointer counter. The game has already been exploited through [https://github.com/yellows8/dsi/tree/master/exploits/4swordshax 4swordshax]. | |||
|- | |||
| UNO | |||
| Profile names | |||
| Has ASCII Player name each for of the 5 save slots. The game was crashed with a very large player name which overwritten the stack registers including the pointer counter. The game was successfully exploited which is known as [https://github.com/ChampionLeake/UNO-pwn UNO*pwn]. | |||
|- | |||
| WordSearcher | |||
| Player name & WordSearch Board | |||
| Has ASCII strings (profile or slot names) and has plaintext crossword levels. No overflows with a large string nor a bigger crossword board resulting thus, not exploitable | |||
|} | |} | ||
| Line 244: | Line 247: | ||
| Absolute Reversi | | Absolute Reversi | ||
| None | | None | ||
| No strings in savedata. | | No strings in savedata, not enough space for payload anyways.(payload exceeds the free space by ~6KB) | ||
|- | |- | ||
| A Little Bit of... All-Time Classics: Card Classics | | A Little Bit of... All-Time Classics: Card Classics | ||
| Line 356: | Line 359: | ||
| FIZZ | | FIZZ | ||
| High-scores | | High-scores | ||
| Savedata contains ASCII high-scores, but all the high-scores are contained in the same string without a null terminator. | | Savedata contains ASCII high-scores, but all the high-scores are contained in the same string without a null terminator. Can't be crashed at all, no payload space anyways. | ||
|- | |- | ||
| Flipper | | Flipper | ||
| Line 460: | Line 463: | ||
| Tetris Party Live | | Tetris Party Live | ||
| None | | None | ||
| Zero text input. | | Zero text input, not enough payload space anyway. | ||
|- | |- | ||
| WarioWare: Snapped | | WarioWare: Snapped | ||
| Line 490: | Line 493: | ||
|- | |- | ||
| Opera | | Opera | ||
| | | The savedata is private NAND-only, no savedata is copied to SD card. | ||
|} | |} | ||