QJ.NET | Videos | Forums | iPhone | MMORPG | Nintendo DS | Wii | PlayStation 3 | PSP | Xbox 360 | PC | Downloads | Contact Us
Forums | Gaming News | Videos | Downloads | Today's Posts | Mark Forums Read | Chat | FAQ | Members List | Contact

QJ.net Game Discussion - PSP, Xbox, Wii, PS3, PSP Homebrew, and PSP Guides

Go Back   QJ.net Game Discussion - PSP, Xbox, Wii, PS3, PSP Homebrew, and PSP Guides > Developers Corner > PSP Development, Hacks, and Homebrew > PSP Development Forum
The above video goes away if you are a member and logged in, so log in now!

[Released] UltraPsarDumper v1

This is a discussion on [Released] UltraPsarDumper v1 within the PSP Development Forum forums, part of the PSP Development, Hacks, and Homebrew category; UltraPsarDumper is a simple application for Fat an Slims PSPs with custom firmware 3.9X m33. For instaling UltraPsarDumper extrack all ...

Reply
 
LinkBack Thread Tools
Old 06-05-2008, 08:58 AM   #1
 
Join Date: Jan 2008
Posts: 28
Trader Feedback: 0
Arrow [Released] UltraPsarDumper v1



UltraPsarDumper is a simple application for Fat an Slims PSPs with custom firmware 3.9X m33.
For instaling UltraPsarDumper extrack all the content of the .RAR archive and copie it in the folder MsRoot in the root of yous memory stick.
Using UltraPsarDumper is very simple, use the direction pad and select one of the options by pressing the X buttom.



This app is brought to you by Marce_82 and The Sixth Halcon,we hope, you really enjoy it!

Web-Site -> www.marce82projects.es

Download



Code:
   
   Thanks:                                                                           

   To PspPet, C+D, Dark_Alex, M33 and all past PSAR Dumper programmers.         
   To Team M33 (and so Dark_Alex) to have released Psar Dumper source code.      
   To HelldashX for 3.80 Psar Dumper.                                            
   To Red Squirrel 3.90 compatibility and to have released RsPsar_Dumper src.                                                 
   To Robert Metz for 3.80/3.90 Decryption.                                      
   To Blaky for 3.93 support and decryption.                                                      
   To PSPGen 3.95 Decryption.
_Hellin_ is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 06-05-2008, 09:40 AM   #2
 
soulburn's Avatar
 
Join Date: Sep 2007
Real First Name: soul
Location: Poland
Just Played: Dead Space
Posts: 36
Trader Feedback: 0
Default

ok, but what it does execpt all the stuff done by RS Psardumper?
In first look: nothing.

See no point of releasing it. If someone will add option to select firmware for any file, not only eboot.pbp, or to sort all the dumped files into proper directories (for example :\DUMP\390\DECRYPTED or :\DUMP\390\SIGNCHECKED) that would be usefull feature. Making apps with new gui and no new features is pointless.
soulburn is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 06-05-2008, 10:58 AM   #3

Avada Kedavra
 
Join Date: May 2007
Location: Spain
Posts: 703
Trader Feedback: 0
Default

Great,get rspardumper code & add a useless gui = new release.Lame,very lame.
Coolj is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 06-05-2008, 12:02 PM   #4
 
patrck_744's Avatar
 
Join Date: Nov 2007
Location: House
Posts: 300
Trader Feedback: 0
Default

This is so Gay, you added a GUI and that's it?
patrck_744 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 06-05-2008, 01:15 PM   #5
 
MiKeY188's Avatar
 
Join Date: Apr 2008
Location: Ireland
Posts: 979
Trader Feedback: 0
Default

Ok could you release source so i can look through this and RS Psar Dumper?
it looks good but i think ill stick with red squirrel's!
MiKeY188 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 06-05-2008, 02:43 PM   #6


Developer
 
Red_Squirrel's Avatar
 
Join Date: Nov 2007
Posts: 235
Trader Feedback: 0
Default

Eh no, Psar Dumper is under GPL license, you MUST release Source Code otherwise this is a real license violation
Red_Squirrel is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 06-05-2008, 03:46 PM   #7
 
MiKeY188's Avatar
 
Join Date: Apr 2008
Location: Ireland
Posts: 979
Trader Feedback: 0
Default

lol is this program using the source of red squirrel? if so you must release source and rename the application!
MiKeY188 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 06-05-2008, 07:14 PM   #8
 
maxexcloo's Avatar
 
Join Date: Feb 2008
Location: Australia
Posts: 390
Trader Feedback: 0
Default

The GUI is nice but you haven't really added anything new...

Also, release the source.
maxexcloo is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 06-06-2008, 06:53 AM   #9
 
Join Date: Jan 2008
Posts: 28
Trader Feedback: 0
Arrow

Sorry, just wanted to give a touch graphic at psardumper, sorry

code that has been used in the psardumper


Code:
            
            ****************************************************************************************
            *                                                                                      *
            *    Thanks:                                                                           *
            *                                                                                      *
            *        To PspPet, C+D, Dark_Alex, M33 and all past PSAR Dumper programmers.          *
            *        To Team M33 (and so Dark_Alex) to have released Psar Dumper source code.      *
            *        To HelldashX for 3.80 Psar Dumper.                                            *
            *        To Red Squirrel 3.90 compatibility and to have released RsPsar_Dumper src.    *
            *        To Robert Metz for 3.80/3.90 Decryption.                                      *
            *        To Blaky for 3.93 support and decryption.                                     *
            *        To PSPGen 3.95 decryption.                                                    *
            *                                                                                      *  
            ***************************************************************************************/
            

#include <pspsdk.h>
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspctrl.h>
#include <psppower.h>
#include <pspsuspend.h>

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <stdarg.h>

#include <libPsarDumper.h>
#include <pspdecrypt.h>
#include <psputility_sysparam.h>


PSP_MODULE_INFO("PsarDumper_Prx", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(0);


#define FIRM_VERSIONS 4

static u8 g_dataPSAR[20399999] __attribute__((aligned(64))); 
static u8 g_dataOut[3000000] __attribute__((aligned(0x40)));
static u8 *g_dataOut2;   


int uscita, ret;

char versione[64];
char firm_version[] = { '3','.','8','0','3','.','9','0','3','.','9','3','3','.','9','5' };

enum
{
	MODE_ENCRYPT_SIGCHECK,
	MODE_ENCRYPT,
	MODE_DECRYPT,
};

int unload_loader(void)
{
	SceModule *mod;
	SceUID modid;

	int ret = 0;
	int status;

	mod = sceKernelFindModuleByName("PsarDumper_Prx");

	if(mod != NULL)
	{
		modid = mod->modid;
		ret = sceKernelStopModule(modid, 0, NULL, &status, NULL);
		if(ret >= 0)
		{
			ret = sceKernelUnloadModule(modid);
		}
	}

	return 0;
}

int build_args(char *args, const char *execfile, int argc, char **argv)
{
	int loc = 0;
	int i;

	strcpy(args, execfile);
	loc += strlen(execfile) + 1;
	for(i = 0; i < argc; i++)
	{
		strcpy(&args[loc], argv[i]);     
		printf("Arg %i => %s\n", i, argv[i]);
		loc += strlen(argv[i]) + 1;
	}

	return loc;
}

int loadStartModule(const char *name, int argc, char **argv)
{
	SceUID modid;
	
	int status;
	char args[128];
	int len;

	modid = sceKernelLoadModule(name, 0, NULL);
	if(modid >= 0)
	{
		len = build_args(args, name, argc, argv);
		modid = sceKernelStartModule(modid, len, (void *) args, &status, NULL);
	}

	return modid;
}

void salir()
{
        sceKernelExitGame();
}

void texto_inicio(void)
{
        pspDebugScreenClear();
        pspDebugScreenSetBackColor(0x000000);
        pspDebugScreenPrintf("\n\n\n\n\n\n\n\n\n\n");
        pspDebugScreenSetBackColor(0xFFFFFF);
        pspDebugScreenPrintf("\n");
        pspDebugScreenSetBackColor(0x999999);
        pspDebugScreenPrintf("\n\n\n\n\n");
        pspDebugScreenPrintf("                          - PLEASE WAIT -\n");
        pspDebugScreenPrintf("\n\n\n");
        pspDebugScreenSetBackColor(0xFFFFFF);
        pspDebugScreenPrintf("\n");
        pspDebugScreenSetBackColor(0x000000);
}

void crear_carpetas(void)
{
        sceIoMkdir("ms0:/PsarDumper", 0777); 
        sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck", 0777); 
        sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash0", 0777);       
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/ipls", 0777);
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/data", 0777);
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/dic", 0777);
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/font", 0777);
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/kd", 0777);
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/vsh", 0777);
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/data/cert", 0777);
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/kd/resource", 0777);
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/vsh/etc", 0777);
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/vsh/module", 0777);
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/vsh/resource", 0777);
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash1", 0777);  
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash1/dic", 0777);  
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash1/gps", 0777);
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash1/net", 0777);   
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash1/registry", 0777);   
	sceIoMkdir("ms0:/PsarDumper/Encrypt_Sigcheck/Flash1/vsh", 0777); 
}

int ReadFile(char *file, int seek, void *buf, int size)
{
	SceUID fd = sceIoOpen(file, PSP_O_RDONLY, 0);
	if (fd < 0)
		return fd;

	if (seek > 0)
	{
		if (sceIoLseek(fd, seek, PSP_SEEK_SET) != seek)
		{
			sceIoClose(fd);
			return -1;
		}
	}

	int read = sceIoRead(fd, buf, size);
	
	sceIoClose(fd);
	return read;
}

int WriteFile(char *file, void *buf, int size)
{
	SceUID fd = sceIoOpen(file, PSP_O_WRONLY | PSP_O_CREAT | PSP_O_TRUNC, 0777);
	
	if (fd < 0)
	{
		return fd;
	}

	int written = sceIoWrite(fd, buf, size);

	sceIoClose(fd);
	return written;
}

static char com_table[0x4000];
static int comtable_size;

static char _1g_table[0x4000];
static int _1gtable_size;

static char _2g_table[0x4000];
static int _2gtable_size;

static int FindTablePath(char *table, int table_size, char *number, char *szOut)
{
	int i, j, k;

	for (i = 0; i < table_size-5; i++)
	{
		if (strncmp(number, table+i, 5) == 0)
		{
			for (j = 0, k = 0; ; j++, k++)
			{
				if (table[i+j+6] < 0x20)
				{
					szOut[k] = 0;
					break;
				}

				if (!strncmp(table+i+6, "flash", 5) &&
					j == 6)
				{
					szOut[6] = ':';
					szOut[7] = '/';
					k++;
				}
				else if (!strncmp(table+i+6, "ipl", 3) &&
					j == 3)
				{
					szOut[3] = ':';
					szOut[4] = '/';
					k++;
				}
				else
				{				
					szOut[k] = table[i+j+6];
				}
			}

			return 1;
		}
	}

	return 0;
}

static int FindReboot(u8 *input, u8 *output, int size)
{
	int i;

	for (i = 0; i < (size - 0x30); i++)
	{
		if (memcmp(input+i, "~PSP", 4) == 0)
		{
			size = *(u32 *)&input[i+0x2C];

			memcpy(output, input+i, size);
			return size;
		}
	}

	return -1;
}

static void ExtractReboot(int mode, char *loadexec, char *reboot, char *rebootname)
{
	int s = ReadFile(loadexec, 0, g_dataOut, sizeof(g_dataOut));

	if (s <= 0) return;
	
	if (mode != MODE_DECRYPT)
	{
		if (mode == MODE_ENCRYPT_SIGCHECK)
		{
			memcpy(g_dataOut2, g_dataOut, s);
			pspSignCheck(g_dataOut2);

			if (WriteFile(loadexec, g_dataOut2, s) != s)
			{               
				salir(loadexec);
			}
		}
			
		s = pspDecryptPRX(g_dataOut, g_dataOut2, s);
		if (s <= 0)
		{    
			salir(loadexec);
		}

		s = pspDecompress(g_dataOut2, g_dataOut, sizeof(g_dataOut));
		if (s <= 0)
		{       
			salir(loadexec);
		}
	}

	s = FindReboot(g_dataOut, g_dataOut2, s);
	if (s <= 0)
	{    
		salir(rebootname);
	}

	s = pspDecryptPRX(g_dataOut2, g_dataOut, s);
	if (s <= 0)
	{    
		salir(rebootname);
	}

	s = pspDecompress(g_dataOut, g_dataOut2, sizeof(g_dataOut));
	if (s <= 0)
	{     
		salir(rebootname);
	}

	if (WriteFile(reboot, g_dataOut2, s) != s)
	{                    
		salir(reboot);
	}   
	 
}

static char *GetVersion(char *buf)
{
	char *p = strrchr(buf, ',');
	if (!p) return NULL;
	return p+1;
}

int main(void)
{
	unload_loader();
        int mode=0, s;
    
        uscita = 0;
	u8 pbp_header[0x28];
	
	pspDebugScreenInit();
    
        int firm = 0;
    
 	    if (sceKernelDevkitVersion() < 0x02070110)
	    {
		    salir();
            }

	    SceUID mod = pspSdkLoadStartModule("libpsardumper.prx", PSP_MEMORY_PARTITION_KERNEL);
	    if (mod < 0)
	    {        
		    salir(mod);
	    }

	    mod = pspSdkLoadStartModule("pspdecrypt.prx", PSP_MEMORY_PARTITION_KERNEL);
	    if (mod < 0)
	    {      
	            salir(mod);
	    }
       
  	    ret = pspDecryptCode_Start();
  	
	    if(sceKernelDevkitVersion() >= 0x03080010)
	    {
		 if(ret == 2); else if(ret == 1); else if(!ret); else;
	    }
	        
	    mode = MODE_ENCRYPT_SIGCHECK; // change mode

            if (uscita==1)
            {         
                    salir();
            }
    
	    sceKernelVolatileMemLock(0, (void *)&g_dataOut2, &s);
    
            texto_inicio();
    
	    if (ReadFile("ms0:/EBOOT.PBP", 0, pbp_header, sizeof(pbp_header)) != sizeof(pbp_header))
	    {
		    salir();
	    }
    
            int cbFile;

	    cbFile = ReadFile("ms0:/EBOOT.PBP", *(u32 *)&pbp_header[0x24], g_dataPSAR, sizeof(g_dataPSAR));
	     
	    if (cbFile <= 0)
	    {                      
		    salir();
	    }
	     
	    else if (cbFile == sizeof(g_dataPSAR))
	    {                  
	            salir();
            }
    

            if (memcmp(g_dataPSAR, "PSAR", 4) != 0)
            {                              
                    salir();  		
            }
   
	    if (pspPSARInit(g_dataPSAR, g_dataOut, g_dataOut2) < 0)
	    {                                  
    	            salir();
  	    }

            crear_carpetas();      
            sceKernelDelayThread(50000); 
            
            int i;
	    for(i = 0; i < FIRM_VERSIONS;i++)
	    {
		   if(memcmp(&firm_version[i*4],GetVersion((char *)g_dataOut+0x10),4) == 0)
		   {
			  firm = 1;
		          break;
		   }
	    }   
    
            while (1)
   	    {
	  	   char name[128];
	  	   int cbExpanded;
	  	   int pos;
	  	   int signcheck;

	  	   int res = pspPSARGetNextFile(g_dataPSAR, cbFile, g_dataOut, g_dataOut2, name, &cbExpanded, &pos, &signcheck);

	  	   if (res < 0)
		   {                    
		           salir(pos);
	           }
		  
	           else if (res == 0) 
		   {
			   break;
		   }
		
		   if (!strncmp(name, "com:", 4) && comtable_size > 0)
		   {
			    if (!FindTablePath(com_table, comtable_size, name+4, name))
			    {                                              
			             salir(name);
			    }
		   }

		   else if (!strncmp(name, "01g:", 4) && _1gtable_size > 0)
		   {
			    if (!FindTablePath(_1g_table, _1gtable_size, name+4, name))
			    {                                              
				      salir(name);
			    }
		   }

		   else if (!strncmp(name, "02g:", 4) && _2gtable_size > 0)
		   {
			    if (!FindTablePath(_2g_table, _2gtable_size, name+4, name))
			    {                                             
				      salir(name);
			    }
		   }
		
		   pspDebugScreenClear();
                   pspDebugScreenSetBackColor(0x000000);
                   pspDebugScreenPrintf("\n\n\n\n\n\n\n\n\n\n");
                   pspDebugScreenSetBackColor(0xFFFFFF);
                   pspDebugScreenPrintf("\n");
                   pspDebugScreenSetBackColor(0x999999);
                   pspDebugScreenPrintf("\n\n\n\n\n");
	           pspDebugScreenPrintf("  Extracting >>> %s\n", name);
	           pspDebugScreenPrintf("\n\n\n");
	           pspDebugScreenSetBackColor(0xFFFFFF);
                   pspDebugScreenPrintf("\n");
                   pspDebugScreenSetBackColor(0x000000);
    	  
		   char* szFileBase = strrchr(name, '/');
		
		   if (szFileBase != NULL) szFileBase++;  

		   else szFileBase = "err.err";

		   if (cbExpanded > 0)
		   {
			char szDataPath[128];
			
			if (!strncmp(name, "flash0:/", 8))
			{
                             sprintf(szDataPath, "ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/%s", name+8);
			}

			else if (!strncmp(name, "flash1:/", 8))
			{
		             sprintf(szDataPath, "ms0:/PsarDumper/Encrypt_Sigcheck/Flash1/%s", name+8);
			}

			else if (!strcmp(name, "com:00000"))
			{
				 comtable_size = pspDecryptTable(g_dataOut2, g_dataOut, cbExpanded,firm);
							
				 if (comtable_size <= 0)
				 {                                    
					salir();
				 }

				 if (comtable_size > sizeof(com_table))
				 {
					salir();
				 }

				 memcpy(com_table, g_dataOut2, comtable_size);
                                 strcpy(szDataPath, "ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/ipls/common_files_table.bin");
			}
					
			else if (!strcmp(name, "01g:00000"))
			{
				_1gtable_size = pspDecryptTable(g_dataOut2, g_dataOut, cbExpanded,firm);
							
				if (_1gtable_size <= 0)
				{
					salir();
				}

				if (_1gtable_size > sizeof(_1g_table))
				{
					salir();
				}

				memcpy(_1g_table, g_dataOut2, _1gtable_size);
                                strcpy(szDataPath, "ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/ipls/fat_files_table.bin");
			}
					
			else if (!strcmp(name, "02g:00000"))
			{
				_2gtable_size = pspDecryptTable(g_dataOut2, g_dataOut, cbExpanded,firm);
							
				if (_2gtable_size <= 0)
				{
					salir(_2gtable_size);
				}

				if (_2gtable_size > sizeof(_2g_table))
				{
					salir();
				}

				memcpy(_2g_table, g_dataOut2, _2gtable_size);						
				strcpy(szDataPath, "ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/ipls/slim_files_table.bin");
			}

			else
			{
                                 sprintf(szDataPath, "ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/ipls/%s", strrchr(name, '/') + 1);
			}
		
			if (signcheck && mode == MODE_ENCRYPT_SIGCHECK && (strcmp(name, "flash0:/kd/loadexec.prx") != 0)&& (strcmp(name, "flash0:/kd/loadexec_02g.prx") != 0))
			{
				pspSignCheck(g_dataOut2);
			}

			if ((mode != MODE_DECRYPT) || (memcmp(g_dataOut2, "~PSP", 4) != 0))
			{
				if (strstr(szDataPath, "ipl") && strstr(szDataPath, "2000"))
				{
					cbExpanded = pspDecryptPRX(g_dataOut2, g_dataOut, cbExpanded);
					if (cbExpanded <= 0)
					{                                      

					}

					else
					{
						memcpy(g_dataOut2, g_dataOut, cbExpanded);
					}							
				}
						
				if (WriteFile(szDataPath, g_dataOut2, cbExpanded) != cbExpanded)
	                        {
					salir(szDataPath);
					break;
				}
			}

			if ((memcmp(g_dataOut2, "~PSP", 4) == 0) && (mode == MODE_DECRYPT))
			{
				int cbDecrypted = pspDecryptPRX(g_dataOut2, g_dataOut, cbExpanded);

				if (cbDecrypted > 0)
				{
					u8* pbToSave = g_dataOut;
					int cbToSave = cbDecrypted;
                          
					if ((g_dataOut[0] == 0x1F && g_dataOut[1] == 0x8B) ||
						memcmp(g_dataOut, "2RLZ", 4) == 0 || memcmp(g_dataOut, "KL4E", 4) == 0) 
					{
						int cbExp = pspDecompress(g_dataOut, g_dataOut2, sizeof(g_dataOut));
						
						if (cbExp > 0)
						{
							pbToSave = g_dataOut2;
							cbToSave = cbExp;
						}

					}
        			
					if (WriteFile(szDataPath, pbToSave, cbToSave) != cbToSave)
					{
						salir(szDataPath);
					}
				}

				else
				{
					salir();
				}
			}

			else if (strncmp(name, "ipl:", 4) == 0)
			{
                                sprintf(szDataPath, "ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/ipls/part1_%s", szFileBase);
                        
				int cb1 = pspDecryptIPL1(g_dataOut2, g_dataOut, cbExpanded);
				if (cb1 > 0 && (WriteFile(szDataPath, g_dataOut, cb1) == cb1))
				{
					int cb2 = pspLinearizeIPL2(g_dataOut, g_dataOut2, cb1);
				        sprintf(szDataPath, "ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/ipls/part2_%s", szFileBase);
							
					WriteFile(szDataPath, g_dataOut2, cb2);
					
					int cb3 = pspDecryptIPL3(g_dataOut2, g_dataOut, cb2);
					sprintf(szDataPath, "ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/ipls/part3_%s", szFileBase);
					
					WriteFile(szDataPath, g_dataOut, cb3);
				}
			}
		}

		else if (cbExpanded == 0)
		{                 

		}

		scePowerTick(0);
	}

      ExtractReboot(mode, "ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/kd/loadexec.prx", "ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/reboot.bin", "reboot.bin");
      ExtractReboot(mode, "ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/kd/loadexec_02g.prx", "ms0:/PsarDumper/Encrypt_Sigcheck/Flash0/reboot_02g.bin", "reboot_02g.bin");

      scePowerTick(0);
      salir();
    
      return 0;
}

int module_stop()
{
   return 0;
}

the PRX libpsardumper and pspdecrytp, are the same as the psardumper.
eboot the code is a simple graphical menu, does not contain functions of psardumper, only the burden of PRX.
sorry, just wanted to help.

Last edited by _Hellin_; 06-06-2008 at 01:53 PM..
_Hellin_ is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 06-06-2008, 07:46 AM   #10
 
MiKeY188's Avatar
 
Join Date: Apr 2008
Location: Ireland
Posts: 979
Trader Feedback: 0
Default

it's ok man lol if you only added the gfx! but you should rename the application

Last edited by MiKeY188; 06-06-2008 at 02:06 PM..
MiKeY188 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 06-06-2008, 01:56 PM   #11
 
Join Date: Jan 2008
Posts: 28
Trader Feedback: 0
Default

Sorry if anyone got angry with me or with the app... The purpose of this app is to have a nice look of PSAR dumper...
RS: Sorry, I forgot to do that, here, on the top of this msg is the source code.
About the name of the app... I called it "ultrapsardumper" because it is with gfx menu, but it is indiferent for me, if you want I can change it to ultrarspsardumer, or give me a name to put in
_Hellin_ is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 06-06-2008, 05:34 PM   #12
 
MiKeY188's Avatar
 
Join Date: Apr 2008
Location: Ireland
Posts: 979
Trader Feedback: 0
Default

I wasn't so what angry lol i thought what you did was take his source and just added gfx to the program. But it is using psppet's psardumper so i don't think you'll have to rename the application lol.
Also i was a bit angry because i thought you used his source and it is licensed thats why i asked for source
MiKeY188...
MiKeY188 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply

Tags
released , ultrapsardumper

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off



All times are GMT -8. The time now is 05:37 PM.



Use of this Web site constitutes acceptance of the TERMS & CONDITIONS and PRIVACY POLICY
Copyright © 2009, QJ.NET. All Rights Reserved.
Contact Us