Homebrew för PlayStation Portable

Program skrivna för Playstation Portable (eller någon annan spelkonsol), brukar kallas för homebrew. För PSP finns ett stort utbud av dessa program. Bland annat spel, filhanterare, WiFi-applikationer, IR-sändarprogram med mera. För att dessa program som inte har blivit digitalt signerade av Sony skall kunna exekveras, krävs att konsolen använder sig av systemprogramvara 1,50 eller alternativt en inofficiell variant.

Upptäckten av homebrew
I april 2005 upptäcktes en metod på byggde på DNS-omdirigering av spelet Wipeout Pures innehållsnedladdningstjänst, så att vanliga HTML-sidor visades istället. Genom att använda sig av denna metod kombinerat med att gissa sig fram, kom hackare fram till att navigering till adresser som file:///disc0:/ tillåter användaren att komma åt filerna på UMD-skivor. På så vis upptäcktes konsolens exekverbara filformat, EBOOT-filen. Layouten av detta filformat offentliggjordes genom att använda sig av en dumpad avbildsfil av konsolens system-ROM och kunskapen som upptäckts från Wipeout Pure-skivan.

I maj månad samma år var konsolen som använde systemprogramvara 1.00 kapabel att exekvera osignerad kod packad i samma format som EBOOT.bin från Wipeout Pure-UMD:n, men från /PSP/GAME-mappen på ett Memory Stick. Detta betydde att konsolen kunde användas för att köra homebrewmjukvara, eftersom det inte fanns någon inbyggd mekanism som verifierade att koden hade signerats digitalt i den första systemprogramvaruversionen (på liknande sätt som det var med både Playstation och Playstation 2 - bristande säkerhet i de första revisionerna).

Dessutom är det möjligt att dumpa Universal Media Disc:ar genom att använda homebrewprogram. Dessa avbilder kan skrivas till ett Memory Stick Duo och exekveras därifrån. Dessa avbilder kommer då att bete sig på exakt samma sätt som om de vore fysiska UMD-skivor.

1.50 homebrew
I juni 2005 upptäcktes det att osignerad kod kunde köras på PSP med systemprogramvara 1.50. Denna upptäckt tillät tidigt köpta konsoler i USA att köra homebrew. Det utvecklades två sätt att kunna köra osignerad kod. Den tidigare av dem utnyttjade ett kryphål känt som "Swaploit" och den senare via den säkrare "KXPloit".

Swaploit
Swaploit släpptes den 15 juni 2005. Den skapades av en spansk grupp och bygger på att byta mellan två olika minneskort vid uppstartandet av spelet. Det har rapporterats att minneskort har försämrats då denna metod använts, men det har inte bekräftats.

KXploit
KXPloit utvecklades av en spanjor med alias Killer-X. KXPloit utnyttjar en felaktig användning av sprintffunktionen hos konsolen genom att ha en annan mapp, namngiven på samma sätt men med ett procenttecken efter filnamnet (till exempel game och game%). "Procentmappen" innehåller ingen data utöver bilder och en PARAM.SFO. Mappen utan procenttecknet innehåller bara en DATA.PSP omdöpt till EBOOT.PBP, vilken innehåller koden. Problemet med denna "exploit" var att korrupt data visas på minneskortet (precis som normal data gör). Detta beror på att PSP: bara programmet med en PARAM.SFO-fil i det, det vill säga filen inuti procentmappen. Mappen som endast består av programdata bedöms vara korrupt. Detta fick man emellertid snart bukt med genom att använda två trick. Ett utnyttjar FAT16-systemet på mineskortet och den andra involverar placeringen av "" före namnet på den korrupta mappen och "%" framför den normala mappen (den utan procenttecken). De båda tricken tar bort den korrupta datat eftersom mappen utan procenttecken numera är osynlig för PSP:n, men fortfarande tillåter EBOOT:en att exekveras. Det finns många verktyg som automatiskt gömmer det korrupta datat och organiserar alla installerade program.

No-KXploit Patch
Vissa användare av homebrew klagade på att ha dessa två mappar för programmet och att korrupta ikoner visades. Även om det finns sätt att gömma ikonerna så är det besvärligt. Ett homebrewprogram som kallas "No-KXploit patch", modifierade konsolens systemprogramvara i RAM-minnet, vilket tillät program som inte använde KXploit att exekveras direkt. No-KXploit patc-programmet har i sig självt använt "KXploit" för att tillåta exekvering av det.

Programmet modifierar inte systemprogramvaran permanent utan bara i RAM-minnet. Det som programmet gör, görs även av inofficiella systemprogramvaror, vilka är designade för att köra homebrew-programvara.

1.51- och 1.52-homebrew 
Under lite över två år fanns det inga som helst metoder att köra homebrew på systemprogramvara 1.51 och 1.52. Båda dessa var väldigt säkra och det kom aldrig några hemmagjorda program för dessa versioner. Det fanns heller ingen möjlighet att nedgradera dessa systemprogramvaror förrän Sony släppte uppdateringen 2.00, vilken senare hackades vi en .tiff-säkerhetslucka i fotobiblioteken.

2.00-homebrew 
Huvuduppdateringen i systemprogramvara 2.00 var webbläsaren. I och med detta blev det möjligt att skriva program som kunde dra nytta av konsolens HTML-renderingsmöjligheter och dess nya möjlighet att ansluta till servrar på trådlösa nätverk.

Den 23 september 2005 upptäcktes ett kryphål i form av att osignerad kod (binärfil) kunde exekveras efter att buffertöverskridning i bildrenderingsbiblioteken åstadkommits. Metoden involverade att användaren öppnade en TIFF-fil i bildmappen. När man fick åtkomst till fotomenyn, var binärfilen laddad.

Två dagar senare släpptes det första "Hello World"-programmet. Storleken hos binärfilen var begränsad till 64kb och PSP:n kunde inte läsa okrypterade ELF-filer än, så vidare experiment krävdes innan någon form av homebrew-mjukvara kunde köras. En dag senare släpptes det första spelbara spelet som använder sig av kryphålet, som fick namnet "TIFF Pong 2.00".

En PSP-programutvecklare med alias Fanjita, skapade ett program kallat eLoader, vilket använder samma kryphål som "MPH Downgrader" och låter användaren köra osignerad programvara från en meny. Detta var ett alternativ till att nedgradera konsolen med "MPH Downgrader", vilket kunde vara riskabelt.

Kort därefter upptäcktes en ny TIFF-säkerhetslucka, vilken fungerar med alla systemprogramvaror upp till 2.80.

Referenser

Fotnoter

Webbkällor
  Engelska Wikipedias artikel: En äldre version som använts och en nyare version som använts
  Tyska Wikipedias artikel Playstation Portable
  Playstation Portables officiella webbplats: playstation.com/psp/
  PSP-vault: psp-vault.com
  Playstation.com PSP: playstation.com
  "Champagne Gold" källa:psp-vault.com
  Systemprogramvara 2.00 källa: psp.ign.com
  Portable TV källa: psp.ign.com

Tryckta källor
Playstation Portables handbok

Playstation Portable