Antwort schreiben  Thema schreiben 
Verfasser Nachricht
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #1
xPSP  [TUT-2] Binarys fürs TIFF Exploit

Hi alle zusammen!
Also wie versprochen, hier ist ein kleines Tutorial wie man Binarys für ein TIFF Exploit (in diesem Fall das 5.03 Eggsploit) codet.
Vieles habe ich wörtlich aus dem Mercury Tutorial übernommen, da viele Sachen ähnlich sind.
In diesem Tut werde ich versuchen euch zu zeigen, wie man ein kleines Hello World für ein TIFF Exploit codet.

Danke an:
- MaTiaz: Für das Easter TIFF Eggsploit, das vor fast einem Jahr releast wurde (An Ostern Tongue)
- Total_Noobs für die nette Erklärung zu den Funktions Imports^^
- Raiden1996: Für die großartige Hilfe in Sachen Function Imports und MIPS Programmierung Smile
- Die Entwickler des PSPSDKs
- Nem! Ohne ihn hätte es vielleicht nie eine PSP Szene gegeben!
- Alle anderen Devs (Booster, Dark_AleX, Fanjita, ...)

Ihr braucht:
- Eine PSP mit Firmware 5.03 und das TIFF Exploit
- Das MinPSPw, Cygwin oder einen anderen PSP Compiler
- Ihr solltet C können
- Grundwissen in MIPS (nur als Empfehlung)
- Sehr, sehr viel Zeit und Geduld

Ich empfehle auch dringenst einen 2. MemoryStick zu haben, nachdem ich viel mit dem TIFF umhergecodet habe, hat bei mir ChickHEN (ja, diesmal ChickHEN, nicht das TIFF)
so lange nicht mehr funktioniert (es hat nur noch einen Teil des Waves angezeigt, der Rest des Screens wurde schwarz, genauso wie wenn man versucht nen nicht funzenden NID
zu importieren) bis ich den MS gewechselt habe, dann ist es wieder perfekt gegangen Wink

Also, dann mal los Tongue

Wir erstellen uns irgendwo aufm Desktop einen Ordner. In dem Ordner erstellen wir unsere main.c:

Code:
int main(void);

void _start(void) __attribute__ ((section (".text.start")));
void _start(void)
{
    main();
}


Die Erklährung:

Jeder der MIPS kann weiß, dass der Hauptspeicher in verschiedene Sektionen aufgeteilt ist (z.B. ".data" für Variablen und ".text" für Funktionen).
Wenn das Exploit geladen wird, wird die Sektion ".text.start" ausgeführt. Durch diese Zeile weiß der Compiler, wo der Ausführbare Bereich beginnt.
Warum es _start sein muss, erklähr ich später.

Code:
#define SCREEN_WIDTH    512
#define SCREEN_HEIGHT      272
#define LINESIZE           512
#define CMAX_X             60
#define CMAX_Y             38
#define FRAMESIZE          0xAA000

#define INDEX_BLACK        10
#define INDEX_WHITE        1
#define INDEX_PINK        2
#define INDEX_RED        3
#define INDEX_BLUE        4
#define INDEX_GREEN        5
#define INDEX_YELLOW    6
#define INDEX_CYAN        7
#define INDEX_GRAY        9
#define INDEX_DARKGREEN    0
#define RANDOM            rand()%9

unsigned char *vramtop=(unsigned char *)0x04000000;
unsigned long drawframe;

unsigned char *GetVramAddr(unsigned long x, unsigned long y)
{
    return vramtop + (drawframe?FRAMESIZE:0) + x*4 + y*LINESIZE*4 + 0x40000000;
}

unsigned long colours[11] =
{
    0x00008800L,
    0x00FFFFFFL,
    0x00FF00FFL,
    0x000000FFL,
    0x00FF0000L,
    0x0000FF00L,
    0x0000FFFFL,
    0x00FFFF00L,
    0x00FFFF88L,
    0x00888888L,
    0x00000000L
};

const unsigned char font[] =
{
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x30,0x78,0x78,0x30,0x30,0x00,0x30,0x00,
    0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00,
    0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00,
    0x30,0x7C,0xC0,0x78,0x0C,0xF8,0x30,0x00,
    0x00,0xC6,0xCC,0x18,0x30,0x66,0xC6,0x00,
    0x38,0x6C,0x38,0x76,0xDC,0xCC,0x76,0x00,
    0x60,0x60,0xC0,0x00,0x00,0x00,0x00,0x00,
    0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x00,
    0x60,0x30,0x18,0x18,0x18,0x30,0x60,0x00,
    0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00,
    0x00,0x30,0x30,0xFC,0x30,0x30,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x60,
    0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,
    0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00,
    0x7C,0xC6,0xCE,0xDE,0xF6,0xE6,0x7C,0x00,
    0x30,0x70,0x30,0x30,0x30,0x30,0xFC,0x00,
    0x78,0xCC,0x0C,0x38,0x60,0xCC,0xFC,0x00,
    0x78,0xCC,0x0C,0x38,0x0C,0xCC,0x78,0x00,
    0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x1E,0x00,
    0xFC,0xC0,0xF8,0x0C,0x0C,0xCC,0x78,0x00,
    0x38,0x60,0xC0,0xF8,0xCC,0xCC,0x78,0x00,
    0xFC,0xCC,0x0C,0x18,0x30,0x30,0x30,0x00,
    0x78,0xCC,0xCC,0x78,0xCC,0xCC,0x78,0x00,
    0x78,0xCC,0xCC,0x7C,0x0C,0x18,0x70,0x00,
    0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,
    0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x60,
    0x18,0x30,0x60,0xC0,0x60,0x30,0x18,0x00,
    0x00,0x00,0xFC,0x00,0x00,0xFC,0x00,0x00,
    0x60,0x30,0x18,0x0C,0x18,0x30,0x60,0x00,
    0x78,0xCC,0x0C,0x18,0x30,0x00,0x30,0x00,
    0x7C,0xC6,0xDE,0xDE,0xDE,0xC0,0x78,0x00,
    0x30,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x00,
    0xFC,0x66,0x66,0x7C,0x66,0x66,0xFC,0x00,
    0x3C,0x66,0xC0,0xC0,0xC0,0x66,0x3C,0x00,
    0xF8,0x6C,0x66,0x66,0x66,0x6C,0xF8,0x00,
    0xFE,0x62,0x68,0x78,0x68,0x62,0xFE,0x00,
    0xFE,0x62,0x68,0x78,0x68,0x60,0xF0,0x00,
    0x3C,0x66,0xC0,0xC0,0xCE,0x66,0x3E,0x00,
    0xCC,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00,
    0x78,0x30,0x30,0x30,0x30,0x30,0x78,0x00,
    0x1E,0x0C,0x0C,0x0C,0xCC,0xCC,0x78,0x00,
    0xE6,0x66,0x6C,0x78,0x6C,0x66,0xE6,0x00,
    0xF0,0x60,0x60,0x60,0x62,0x66,0xFE,0x00,
    0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0x00,
    0xC6,0xE6,0xF6,0xDE,0xCE,0xC6,0xC6,0x00,
    0x38,0x6C,0xC6,0xC6,0xC6,0x6C,0x38,0x00,
    0xFC,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00,
    0x78,0xCC,0xCC,0xCC,0xDC,0x78,0x1C,0x00,
    0xFC,0x66,0x66,0x7C,0x6C,0x66,0xE6,0x00,
    0x78,0xCC,0xE0,0x70,0x1C,0xCC,0x78,0x00,
    0xFC,0xB4,0x30,0x30,0x30,0x30,0x78,0x00,
    0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xFC,0x00,
    0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x30,0x00,
    0xC6,0xC6,0xC6,0xD6,0xFE,0xEE,0xC6,0x00,
    0xC6,0xC6,0x6C,0x38,0x38,0x6C,0xC6,0x00,
    0xCC,0xCC,0xCC,0x78,0x30,0x30,0x78,0x00,
    0xFE,0xC6,0x8C,0x18,0x32,0x66,0xFE,0x00,
    0x78,0x60,0x60,0x60,0x60,0x60,0x78,0x00,
    0xC0,0x60,0x30,0x18,0x0C,0x06,0x02,0x00,
    0x78,0x18,0x18,0x18,0x18,0x18,0x78,0x00,
    0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
    0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x78,0x0C,0x7C,0xCC,0x76,0x00,
    0xE0,0x60,0x60,0x7C,0x66,0x66,0xDC,0x00,
    0x00,0x00,0x78,0xCC,0xC0,0xCC,0x78,0x00,
    0x1C,0x0C,0x0C,0x7C,0xCC,0xCC,0x76,0x00,
    0x00,0x00,0x78,0xCC,0xFC,0xC0,0x78,0x00,
    0x38,0x6C,0x60,0xF0,0x60,0x60,0xF0,0x00,
    0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0xF8,
    0xE0,0x60,0x6C,0x76,0x66,0x66,0xE6,0x00,
    0x30,0x00,0x70,0x30,0x30,0x30,0x78,0x00,
    0x0C,0x00,0x0C,0x0C,0x0C,0xCC,0xCC,0x78,
    0xE0,0x60,0x66,0x6C,0x78,0x6C,0xE6,0x00,
    0x70,0x30,0x30,0x30,0x30,0x30,0x78,0x00,
    0x00,0x00,0xCC,0xFE,0xFE,0xD6,0xC6,0x00,
    0x00,0x00,0xF8,0xCC,0xCC,0xCC,0xCC,0x00,
    0x00,0x00,0x78,0xCC,0xCC,0xCC,0x78,0x00,
    0x00,0x00,0xDC,0x66,0x66,0x7C,0x60,0xF0,
    0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0x1E,
    0x00,0x00,0xDC,0x76,0x66,0x60,0xF0,0x00,
    0x00,0x00,0x7C,0xC0,0x78,0x0C,0xF8,0x00,
    0x10,0x30,0x7C,0x30,0x30,0x34,0x18,0x00,
    0x00,0x00,0xCC,0xCC,0xCC,0xCC,0x76,0x00,
    0x00,0x00,0xCC,0xCC,0xCC,0x78,0x30,0x00,
    0x00,0x00,0xC6,0xD6,0xFE,0xFE,0x6C,0x00,
    0x00,0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00,
    0x00,0x00,0xCC,0xCC,0xCC,0x7C,0x0C,0xF8,
    0x00,0x00,0xFC,0x98,0x30,0x64,0xFC,0x00,
    0x1C,0x30,0x30,0xE0,0x30,0x30,0x1C,0x00,
    0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x00,
    0xE0,0x30,0x30,0x1C,0x30,0x30,0xE0,0x00,
    0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};

void Fillvram(unsigned long color)
{
    unsigned char *vptr0;        
    unsigned long i;

    vptr0 = GetVramAddr(0, 0);

    for (i = 0; i < (FRAMESIZE/4); i++)
    {
        *(unsigned long *)vptr0 = color;
        vptr0 += 4;
    }
}

void PutChar(unsigned long x, unsigned long y, unsigned long color, unsigned long bgcolor, unsigned char ch, char drawfg, char drawbg, char mag)
{
    unsigned char *vptr0;
    unsigned char *vptr;
    const unsigned char *cfont;
    unsigned long cx, cy;
    unsigned long b;
    char mx, my;

    cfont = font + ch*8;

    vptr0=GetVramAddr(x, y);

    for (cy = 0; cy < 8; cy++)
    {
        for (my = 0; my < mag; my++)
        {
            vptr = vptr0;
            b = 0x80;
            for (cx = 0; cx < 8; cx++)
            {
                for (mx = 0; mx < mag; mx++)
                {
                    if ((*cfont&b) != 0)
                    {
                        if (drawfg) // Die Schrift selber, sollte aktiviert bleiben ;)
                        {
                            *(unsigned long *)vptr = color;
                        };
                    }
                    else
                    {
                        // Der Hintergrund, ich hab ihn in der Print() Funktion deaktiviert, wenn benötigt den vorletzten Param auf 1 stellen :)
                        if (drawbg)
                        {
                            *(unsigned long *)vptr = bgcolor;
                        };
                    };
                    vptr += 4;
                };
                b = b>>1;
            };
            vptr0 += LINESIZE*4;
        };
        cfont++;
    };
};

void Print(unsigned long x, unsigned long y, unsigned long color, const char *str)
{
    while (*str != 0 && x < CMAX_X && y < CMAX_Y)
    {
        // Ich hab die Hintergrundfarbe deaktiviert
        PutChar(x*8, y*8, color, 0, *str, 1, 0, 1);
        str++;
        x++;
        if (x >= CMAX_X)
        {
            x = 0;
            y++;
        }
    }
}


Ja, die gleichen Funktionen wie im Mercury SDK, nur changeBuffer und initScreenAndCtrl können wir nicht unverändert benutzten, da wir kein SDK haben.
Die initScreenAndCtrl Funktion nennen wir in initScreen um, da es nur den Bildschirm initialisiert.

Code:
void changeBuffer(void)
{
    drawframe=(drawframe?0:1);
};

void initScreen(void)
{
    drawframe = 0;
    Fillvram(0x00000000);
    drawframe = 1;
    Fillvram(0x00000000);
};


So, jetzt der main Thread:

Code:
int main(void)
{
    int i;
    
    initScreen();
    for(i = 0; i < 11; i++)
    {
        Fillvram(colours[INDEX_BLACK]);
        changeBuffer();
    };


Mit der for-Schleife wird der Bildschirm 10 mal mit der Farbe Schwarz gefüllt, um VLF etc. wegzukriegen.

Code:
    i = 0;
    
    for(;;)
    {
        Print(0, 1, colours[INDEX_WHITE], "Hello World!");
        Print(0, 2, colours[i], "Das ist mein erstes Programm fuer ein TIFF Exploit!!!");
        Print(0, 3, colours[INDEX_GREEN], "Jetzt bin ich ein echter Profi >.>");
        changeBuffer();
        
        if(i > 9)
        {
            i = 0;
        }
        else
        {
            i++;
        };
    };
    
    return 0; // Wird hoffentlich nie ausgeführt ;)
};


Ich glaube es ist verständlich was dieser Code macht Wink

So, jetzt schliest ihr die main.c und erstellt die Datei linkfile.l.

Code:
OUTPUT_FORMAT("elf32-littlemips")
OUTPUT_ARCH(mips)

ENTRY(_start)

SECTIONS
{
  . = 0x08800000;
  .text.start : {
    *(.text.start)
  }
  .text : {
    *(.text)
  }
  .rodata : {
    *(.rodata)
  }
  .data : {
    *(.data)
  }
  .bss : {
    *(.bss)
  }
}


Hier ist es wichtig: Die TIFF Binary wird auf Addresse 0x08800000 geladen.
Ja, einige habe es richtig verstanden, das TIFF Eggsploit führt einen direkten Sprung in den Hauptspeicher aus.
Wenn du eine andere Addresse versuchst, wirst du nur einen Crash bekommen.
Hie wieder das Problem, warum das TIFF instabil ist: Die VSHBridge ändert mit ihren beschissenen Speicherbereichen, die auf Systemzeit basieren und
nichts anderes machen als wahllos die Addressen ändern, ändert diverse kodierte Addressen und der Sprung im Binary Code, der sich im TIFF befindet
springt irgendwo ins nirgendwo, und die Addresse 0x08800000 wird erst gar nicht erreicht.

Naja, zuletzt noch die makefile:

Code:
PSPSDK=$(shell psp-config --pspsdk-path)
PSPDEV=$(shell psp-config --pspdev-path)
INCLUDE=$(PSPSDK)/include

CC       = psp-gcc
CFLAGS   := -D PSP -I $(INCLUDE) -W -Wall -O2 -G0 -fno-pic -mno-abicalls -w -fomit-frame-pointer

ASM      = psp-as

all:
    $(PSPDEV)/bin/psp-gcc $(CFLAGS) -S main.c -o main.s
    $(PSPDEV)/bin/psp-as main.s -o main.o
    $(PSPDEV)/bin/psp-ld -T linkerfile.l main.o -o main.elf
    $(PSPDEV)/bin/psp-strip -s main.elf
    $(PSPDEV)/bin/psp-objcopy -O binary main.elf h.bin

clean:
    rm -rf *~ *.o *.elf *.bin *.s *.bin


Die original makefile einer klassischen Binary.

Gut... compile and see Tongue
Funktionen könnt ihr importieren, indem ihr einen Funktions Zeiger auf die Text Adresse der Paf.prx (die der binary als argument übergeben wird) + die Adresse der Funktion im Text Segment der Paf zeigen lasst.
Beispiel:

Code:
void (* blablabla) (void) = NULL;

void _start(int paf_addr)
{
    blablabla = (void *)paf_addr + 0xDEADBEEF;
};


Darauf geh ich jetzt aber nicht genauer ein, meistens crasht es nur.

Fehler bitte melden!

mfg, HacKmaN

Dieser Beitrag wurde zuletzt bearbeitet: 24.09.2010 13:20 von HacKmaN.

26.03.2010 18:46
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Cha0z (Jan-24-2011), MeRiDiaN (Jan-8-2011), WinterFrost (Nov-5-2010), pspbricker (Mar-26-2010), D!S (Mar-26-2010)
D!S
Legende
*****


Beiträge: 1.537
Gruppe: User
Registriert seit: Sep 2009

Status: Abwesend
Danke erhalten: 470
Beitrag: #2
RE: [TUT-2] Binarys fürs TIFF Exploit

Danke ;D

Ich hab schon drauf gewartet...

Klasse TuT!!!



26.03.2010 18:51
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
HacKmaN (Mar-26-2010)
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #3
xPSP  RE: [TUT-2] Binarys fürs TIFF Exploit

D!S :
Danke ;D

Ich hab schon drauf gewartet...

Klasse TuT!!!


Danke thumb

26.03.2010 19:06
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
pspbricker
Mod a.D.
*


Beiträge: 3.428
Gruppe: User
Registriert seit: May 2008

Status: Offline
Danke erhalten: 1641
Beitrag: #4
RE: [TUT-2] Binarys fürs TIFF Exploit

Noch ein schönes Tutorial !




Meine PS3 Games : Warhawk , NFS: Pro Street, Motorstorm ,Midnight Club LA, LittleBigPlanet, GTA4, Uncharted 2, Overlord, Killzone2, PES10, Battlefield ´43, Socom: Confrontation,


Forum Regeln Beachten! KEIN ISO Talk! KEINE Beleidigungen! KEINE illegalen Links!


26.03.2010 19:47
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
HacKmaN (Mar-26-2010)
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #5
xPSP  RE: [TUT-2] Binarys fürs TIFF Exploit

pspbricker :
Noch ein schönes Tutorial !


Danke! Ich hab mich ein bisschen drangesetzt und hoffe, dass es was geworden ist Tongue

26.03.2010 19:55
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xGames Exploit Hunting SkyleN 15 24.836 16.02.2015 09:01
Letzter Beitrag: fifanutri
xPSP Lua TIFF? fener98 2 1.142 07.08.2011 13:16
Letzter Beitrag: fener98
xPSP Kernel Exploit fener98 22 5.767 20.05.2011 17:57
Letzter Beitrag: PSP_Lord
xPSP Neuer Savegame Exploit by mrmrm Fly Destination 11 3.388 08.01.2011 18:43
Letzter Beitrag: Fly Destination
xPSP CODE_R3D hat vielleicht einen neuen Tiff-Exploit gefunden Mishka84 2 1.706 20.11.2010 20:07
Letzter Beitrag: Mishka84

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang