• Steam recently changed the default privacy settings for all users. This may impact tracking. Ensure your profile has the correct settings by following the guide on our forums.

PSNabler FINAL by Smokin and RedHate

Uhh, ahhh, ohhhh, yesyesyes, harder! gimmigimmigimmi....

Oh, this DRAAAMAAA again....

You girls never learn, rite?
From your recent comparison "who's e-***** is longer" I can tell: you all have none.

Now, cut the crap, engage grouphug and do constructive stuff.

Thaaank youuu....

:argh:
 
what drama? did i miss something here? i was just replying to the thread...

dont let this turn into an argument anyone! im not ANGRY @ anyone im not that kinda person about a little bit of code <3 happy times
 
the only thing that erks me just a bit about this thread is the fact dude just said he did it because he wanted to know, but then he POSTED it (saying and doing are different things). wick wicka wack.

Yes, but I also said that
I felt that people should be able to make their own patches and now they have the needed information.
That was after I had reversed it. So I posted that code with the intention of allowing interoperability and letting others improve on your plugin. I apologize if it violated you :-P

Also I could've posted the whole thing but I went for the essentials instead :-P
 
no sweat, like i said if i wasnt such a lazy jagoff i coulda done it right... but you kinda peaked my interest here...

if you get bored n wanna figure out another one hack this lol see if you can get the nitePR elf outta this... i wrote this plugin to stash encrypted plugin's into but dunno how secure it is, my knowledge of bullshit is limited...

Download redscrypted.prx from Sendspace.com - send big files the easy way

you dont have to if you're not interested.. just for fun :P
 
Code:
#include <stdio.h>
#include <assert.h>

#define SIZE 0xC40A

unsigned char key1[7] = { 0xD4, 0xCA, 0x6D, 0x85, 0x90, 0x85, 0xA6 };
unsigned char key2[4] = { 0xF1, 0x0E, 0xC4, 0x6A };
unsigned char key3[3] = { 0xEB, 0xAC, 0x8D };
unsigned char key4[7] = { 0xDC, 0x1E, 0xA9, 0x1F, 0x3C, 0x65, 0x6B };

void Decrypt(unsigned char* buf, unsigned int len)
{
	if(len == 0) return;
	
	unsigned int idx = 0;
	unsigned char key1_idx = 0;
	unsigned char key2_idx = 0;
	unsigned char key3_idx = 0;
	unsigned char key4_idx = 0;
	unsigned int result;
	
	while(idx < len)
	{
		result = buf[idx];
		result ^= ~key1[key1_idx];
		result ^= ~key2[key2_idx];
		result ^= ~key3[key3_idx];
		result ^= ~key4[key4_idx];
		
		key1_idx++;
		if(key1_idx >= 7) key1_idx = 0;
		
		key2_idx++;
		if(key2_idx >= 4) key2_idx = 0;
		
		key3_idx++;
		if(key3_idx >= 3) key3_idx = 0;
		
		key4_idx++;
		if(key4_idx >= 7) key4_idx = 0;

		buf[idx] = (unsigned char)result;
		idx++;
	}
}

int main(int argc, char** argv)
{
	FILE* fd = fopen("redscrypted.prx", "rb");
	assert(fd != NULL);
	
	fseek(fd, 0x620, SEEK_SET);
	
	unsigned char* buf = (unsigned char*)malloc(SIZE);
	assert(buf != NULL);

	fread(buf, SIZE, 1, fd);
	fclose(fd);
	
	Decrypt(buf, SIZE);
	
	fd = fopen("out.bin", "wb");
	fwrite(buf, SIZE, 1, fd);
	fclose(fd);
}

Decrypts the same way as the PSP does. Checked with psplink ie. loaded prx, called the decryption function with the same arguments as the PRX would pass and dumped the buffer.
 
Not really. I'm not an expert on obfuscation :-)
 
Back
Top