<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://dsibrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Deminx</id>
	<title>DSiBrew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://dsibrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Deminx"/>
	<link rel="alternate" type="text/html" href="https://dsibrew.org/wiki/Special:Contributions/Deminx"/>
	<updated>2026-05-04T00:07:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://dsibrew.org/w/index.php?title=DSiWare_VulnList&amp;diff=3481</id>
		<title>DSiWare VulnList</title>
		<link rel="alternate" type="text/html" href="https://dsibrew.org/w/index.php?title=DSiWare_VulnList&amp;diff=3481"/>
		<updated>2011-02-08T02:58:47Z</updated>

		<summary type="html">&lt;p&gt;Deminx: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This lists DSiWare that might have vulnerabilities, like strcpy or sprintf from savedata. If you know of DSiWare that has English-only string(high-scores, player name, high-scores that use username from system settings, etc) input, mention it on IRC EFNet #dsidev. Or contact yellowstar 6 at gmail dot com.&lt;br /&gt;
Before you contact anyone about your dsiware, please make sure your dsiware is _not_ listed on this page anywhere.&lt;br /&gt;
&lt;br /&gt;
It would be nice to target DSiWare that are listed under the DSi Shop most popular search: Nintendo would have a lot of difficultly removing DSiWare from that list without ticking off a lot of non-homebrewer customers. Targets not on that list will suffer the same fate as Sudoku,(removed quickly and patched less than a week) if exploits for those were released.&lt;br /&gt;
&lt;br /&gt;
DSiWare savedata is extracted and modified with these tools: https://github.com/neimod/dsi save_extract and save_adjust both require sd_key, but we will not redistribute this key.&lt;br /&gt;
&lt;br /&gt;
For these lists status &amp;quot;None&amp;quot; means code reversing engineering for the DSiWare wasn&#039;t started. Status &amp;quot;Started&amp;quot; means code reversing engineering for that DSiWare was started. Status &amp;quot;Done&amp;quot; means code reverse engineering was finished.&lt;br /&gt;
&lt;br /&gt;
== Total listed DSiWare ==&lt;br /&gt;
&lt;br /&gt;
Total DSiWare in below lists.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  List&lt;br /&gt;
!  Total&lt;br /&gt;
|-&lt;br /&gt;
|  Incomplete&lt;br /&gt;
|  10&lt;br /&gt;
|-&lt;br /&gt;
|  Done&lt;br /&gt;
|  11&lt;br /&gt;
|-&lt;br /&gt;
|  DSiWare which probably aren&#039;t exploitable&lt;br /&gt;
|  32&lt;br /&gt;
|-&lt;br /&gt;
|  Already have&lt;br /&gt;
|  2&lt;br /&gt;
|-&lt;br /&gt;
|  All total&lt;br /&gt;
|  55&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DSiWare with incomplete analysis ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Name&lt;br /&gt;
!  Input type(s)&lt;br /&gt;
!  Status&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  Academy: Tic-Tac-Toe&lt;br /&gt;
|  Player name&lt;br /&gt;
|  None&lt;br /&gt;
|  Has an UCS-2 player name.&lt;br /&gt;
|-&lt;br /&gt;
|  Advanced Circuits&lt;br /&gt;
|  Profile names&lt;br /&gt;
|  Started&lt;br /&gt;
|  Save slots are obfuscated, the algorithm is understood for all but the first save slot. The checksum calculation is unknown.&lt;br /&gt;
|-&lt;br /&gt;
|  Art Academy: First Semester&lt;br /&gt;
|  None?&lt;br /&gt;
|  None&lt;br /&gt;
|  Has some ASCII strings in savedata, but they seem to be from the game binary not user input?&lt;br /&gt;
|-&lt;br /&gt;
|  Army Defender&lt;br /&gt;
|  High-scores&lt;br /&gt;
|  Started&lt;br /&gt;
|  Has ASCII strings for high-scores, but the checksum is unknown.&lt;br /&gt;
|-&lt;br /&gt;
|  Crystal Monsters&lt;br /&gt;
|  Player name&lt;br /&gt;
|  Started&lt;br /&gt;
|  Has ASCII player name.&lt;br /&gt;
|-&lt;br /&gt;
|  Field Runners&lt;br /&gt;
|  High-Scores&lt;br /&gt;
|  Started&lt;br /&gt;
|  The xml .plist the game uses for storing savedata contains high-scores strings.&lt;br /&gt;
|-&lt;br /&gt;
|  Frogger Returns&lt;br /&gt;
|  High-Scores&lt;br /&gt;
|  Started&lt;br /&gt;
|  Has ASCII high-scores.&lt;br /&gt;
|-&lt;br /&gt;
|  Guitar Rock Tour&lt;br /&gt;
|  High-Scores&lt;br /&gt;
|  Started&lt;br /&gt;
|  Has ASCII high-scores.&lt;br /&gt;
|-&lt;br /&gt;
|  Legends of Exidia&lt;br /&gt;
|  Player name&lt;br /&gt;
|  Started&lt;br /&gt;
|  Has ASCII player name.&lt;br /&gt;
|-&lt;br /&gt;
|  UNO&lt;br /&gt;
|  Player name and high-scores&lt;br /&gt;
|  Started&lt;br /&gt;
|  Has ASCII text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DSiWare with finished analysis ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Name&lt;br /&gt;
!  Input type(s)&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  5 in 1 Solitaire&lt;br /&gt;
|  Profile names&lt;br /&gt;
|  Game didn&#039;t crash with a long profile string.&lt;br /&gt;
|-&lt;br /&gt;
|  Airport Mania: Non Stop Flights&lt;br /&gt;
|  High-Scores&lt;br /&gt;
|  Has ASCII high-scores with null terminated strings. string bugs only corrupted the display, making the game unplayable.&lt;br /&gt;
|-&lt;br /&gt;
|  Arcade Hoops Basketball&lt;br /&gt;
|  High-Scores, names via settings&lt;br /&gt;
|  Has ASCII high-scores with null terminated strings, no string bugs.&lt;br /&gt;
|-&lt;br /&gt;
|  Bookworm&lt;br /&gt;
|  High-scores and word list&lt;br /&gt;
|  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. )&lt;br /&gt;
|-&lt;br /&gt;
|  Dark Void Zero&lt;br /&gt;
|  High-Scores&lt;br /&gt;
|  No limit on length of drawn record names, no vuln with high-scores. Although this game can be crashed it isn&#039;t exploitable.&lt;br /&gt;
|-&lt;br /&gt;
|  Dracula&lt;br /&gt;
|  No manual input&lt;br /&gt;
|  Savedata contains ASCII high-scores from DSi username, and ASCII perks/powerups.  High-scores doesn&#039;t have string bugs.&lt;br /&gt;
|-&lt;br /&gt;
|  Escapee Go&lt;br /&gt;
|  None&lt;br /&gt;
|  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&#039;t exploitable.&lt;br /&gt;
|-&lt;br /&gt;
|  Paul&#039;s Shooting Adventure&lt;br /&gt;
|  High-Scores&lt;br /&gt;
|  Records are entered when you complete the game, names are ASCII strings null-terminated. Not exploitable.&lt;br /&gt;
|-&lt;br /&gt;
|  Primrose&lt;br /&gt;
|  High-scores&lt;br /&gt;
|  Has English-only high-scores and a trivial checksum, not exploitable.&lt;br /&gt;
|-&lt;br /&gt;
|  Sudoku&lt;br /&gt;
|  Player name&lt;br /&gt;
|  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]].&lt;br /&gt;
|-&lt;br /&gt;
|  Rayman&lt;br /&gt;
|  Player name&lt;br /&gt;
|  No overflow, with a long string the game only displays one extra character.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DSiWare that probably don&#039;t have vulnerabilities ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Name&lt;br /&gt;
!  Input type(s)&lt;br /&gt;
!  Description&lt;br /&gt;
|-&lt;br /&gt;
|  24/7 Solitaire&lt;br /&gt;
|  None&lt;br /&gt;
|  No high-scores or string input.&lt;br /&gt;
|-&lt;br /&gt;
|  Absolute Reversi&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings in savedata.&lt;br /&gt;
|-&lt;br /&gt;
|  A Little Bit of... All-Time Classics: Card Classics&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings&lt;br /&gt;
|-&lt;br /&gt;
|  A Little Bit of... All-Time Classics: Family Games&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings&lt;br /&gt;
|-&lt;br /&gt;
|  A Little Bit of... All-Time Classics: Strategy Games&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings&lt;br /&gt;
|-&lt;br /&gt;
|  Aquia: Art Style Series&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings&lt;br /&gt;
|-&lt;br /&gt;
|  Birds &amp;amp; Beans&lt;br /&gt;
|  No strings&lt;br /&gt;
|  No strings in savedata.&lt;br /&gt;
|-&lt;br /&gt;
|  Boom Boom Squaries&lt;br /&gt;
|  No strings&lt;br /&gt;
|  No strings in savedata.&lt;br /&gt;
|-&lt;br /&gt;
|  Bomberman Blitz&lt;br /&gt;
|  Name&lt;br /&gt;
|  Has UCS-2 strings.&lt;br /&gt;
|-&lt;br /&gt;
|  Brain Age Express: Arts &amp;amp; Letters&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings in savedata.&lt;br /&gt;
|-&lt;br /&gt;
|  Brain Age Express: Math&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings in savedata.&lt;br /&gt;
|-&lt;br /&gt;
|  Dictionary 6 in 1&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings in savedata.&lt;br /&gt;
|-&lt;br /&gt;
|  Dr. Mario Express&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings.&lt;br /&gt;
|-&lt;br /&gt;
|  Earthworm Jim&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings.&lt;br /&gt;
|-&lt;br /&gt;
|  Extreme Hangman&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings in savedata.&lt;br /&gt;
|-&lt;br /&gt;
|  FIZZ&lt;br /&gt;
|  High-scores&lt;br /&gt;
|  Savedata contains ASCII high-scores, but all the high-scores are contained in the same string without a null terminator. A vuln is unlikely.&lt;br /&gt;
|-&lt;br /&gt;
|  Gene Labs&lt;br /&gt;
|  None&lt;br /&gt;
|  Small savedata with no strings.&lt;br /&gt;
|-&lt;br /&gt;
|  Glory Days - Tactical Defense&lt;br /&gt;
|  No strings&lt;br /&gt;
|  Saves only scores not strings.&lt;br /&gt;
|-&lt;br /&gt;
|  Metal Torrent&lt;br /&gt;
|  Player name&lt;br /&gt;
|  Uses a UCS-2 string.&lt;br /&gt;
|-&lt;br /&gt;
|  My Notebook: Blue&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings.&lt;br /&gt;
|-&lt;br /&gt;
|  Mighty Flip Champs&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings.&lt;br /&gt;
|-&lt;br /&gt;
|  My Exotic Farm&lt;br /&gt;
|  Player name&lt;br /&gt;
|  Not exploitable, there&#039;s a 0x01 byte immediately after the string not null-terminated.&lt;br /&gt;
|-&lt;br /&gt;
|  Paper Airplane Chase&lt;br /&gt;
|  None&lt;br /&gt;
|  The size of both files in the savedata are only 8 bytes, no strings.&lt;br /&gt;
|-&lt;br /&gt;
|  PiCOPiCT: Art Style series&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings.&lt;br /&gt;
|-&lt;br /&gt;
|  PiCTOBiTS: Art Style series&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings.&lt;br /&gt;
|-&lt;br /&gt;
|  Pyoro&lt;br /&gt;
|  None&lt;br /&gt;
|  16-byte savedata no strings.&lt;br /&gt;
|-&lt;br /&gt;
|  Photo Clock&lt;br /&gt;
|  None&lt;br /&gt;
|  Small savedata, no strings at all.&lt;br /&gt;
|-&lt;br /&gt;
|  Photo Dojo&lt;br /&gt;
|  Handwritten character name via stylus&lt;br /&gt;
|  Savedata only contains .jpg files and some tiny &amp;quot;save&amp;quot;/&amp;quot;info&amp;quot; files.&lt;br /&gt;
|-&lt;br /&gt;
|  Shantae: Risky&#039;s Revenge&lt;br /&gt;
|  None&lt;br /&gt;
|  Has 3 save slots but no string input.&lt;br /&gt;
|-&lt;br /&gt;
|  Starship Defense&lt;br /&gt;
|  None&lt;br /&gt;
|  No strings.&lt;br /&gt;
|-&lt;br /&gt;
|  Tetris Party Live&lt;br /&gt;
|  None&lt;br /&gt;
|  Zero text input.&lt;br /&gt;
|-&lt;br /&gt;
|  WarioWare: Snapped&lt;br /&gt;
|  None&lt;br /&gt;
|  No high-scores or string input.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DSiWare that were already obtained for analysis ==&lt;br /&gt;
Do not contact us about the DSiWare in this list, we already have them. We had these for ages, and never managed to find any vulns.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!  Name&lt;br /&gt;
!  Text format&lt;br /&gt;
|-&lt;br /&gt;
|  Flipnote Studio&lt;br /&gt;
|  UCS-2&lt;br /&gt;
|-&lt;br /&gt;
|  Mario Vs. Donkey Kong: Minis March Again&lt;br /&gt;
|  UCS-2&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Deminx</name></author>
	</entry>
</feed>