Join Us and become a Member for a Verified Badge to access private areas with the latest PS4 PKGs.
Announcements       Thread starter SorenAlke       5      
Status
Not open for further replies.

SorenAlke

Developer
Senior Member
Contributor
for those of you who were fed lies by securom

yes there is a way to remove the crap securom burns into your computer upon install

and yes theres a unlock key which is needed.

as you can see from the screenshot typical if else statement

that verifies and checks key's validity against string length via user input.
enjoy.

btw you have to go in memory if your planning on generating a legitimate unlock key
 

Attachments

  • Screenshot_7.png
    Screenshot_7.png
    125.7 KB · Views: 235
Guy named Pedro put this simple source out awhile ago, maybe this will help people get a foot in the right direction. It's dated so I shouldn't get into too much trouble for posting this :)
Just make sure the copy or ISO ALWAYS has the SAME Volume Name.
Securom 7,etc+, code available.
I can explain this if anyone needs me to :)

Code:
****************** Source code for supcomp ****************************

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <mem.h>
#define AREA 32768

FILE *f,*g;
unsigned char *b1,*b2;
char notfound[]="Can't open: %s\n";
char seekerror[]="Seek error: %s\n";
char readerror[]="Read error or end of file: %s\nAborting\n";
long l,cont,ofsrc,ofdest;

void uscita(void)
{
if (b1) free(b1);
if (b2) free(b2);
if (f) fclose(f);
if (g) fclose(g);
}

void main(int argc, char *argv[])
{
        if (atexit(uscita))
           {
           printf("Atexit error\n");
           exit(EXIT_FAILURE);
           }
    if (argc!=6)
           {
printf("Supcomp v1.0 by Pedro '98\n\n"
"Usage: supcomp <src> <dest> <offset src> <offset dest> <length>\n"
"Numbers may be in hex if prefixed by 0x\n\n"
"The program compares <length> bytes of <src> with the corresponding\n"
"bytes in <dest> starting from the specified offsets\n"
"Only differences are written to the output\n");
exit(EXIT_FAILURE);
           }
    if ((b1=(char *)malloc(AREA))==NULL) exit(EXIT_FAILURE);
    if ((b2=(char *)malloc(AREA))==NULL) exit(EXIT_FAILURE);
    if ((f=fopen(argv[1],"rb"))==NULL)
        {
        printf(notfound,argv[1]);
        exit(EXIT_FAILURE);
        }
    if ((g=fopen(argv[2],"rb"))==NULL)
        {
        printf(notfound,argv[2]);
        exit(EXIT_FAILURE);
        }
        ofsrc=strtol(argv[3],NULL,0);
        ofdest=strtol(argv[4],NULL,0);
    if (fseek(f,ofsrc,SEEK_SET))
        {
        printf(seekerror,argv[1]);
        exit(EXIT_FAILURE);
        }
    if (fseek(g,ofdest,SEEK_SET))
        {
        printf(seekerror,argv[2]);
        exit(EXIT_FAILURE);
        }
        if ((l=strtol(argv[5],NULL,0))==0)
        {
        printf("Wrong length\n");
        exit(EXIT_FAILURE);
        }
    while (l)
        {
        long letti,i;

        if (l>=AREA) letti=AREA;
        else letti=l;
        if (fread(b1,1,letti,f)!=letti)
            {
            printf(readerror,argv[1]);
            exit(EXIT_FAILURE);
            }
        if (fread(b2,1,letti,g)!=letti)
            {
            printf(readerror,argv[2]);
            exit(EXIT_FAILURE);
            }
                for (i=0;i<letti;i++)
                    {
                    if (b1!=b2)
                       {
                       printf("%.8lx %.2x - %.8lx %.2x\n",cont+ofsrc+i,
                          (unsigned int)b1,cont+ofdest+i,(unsigned int)b2);
                       }
                    }
        l-=letti;
                cont+=letti;
        }
    exit(EXIT_SUCCESS);
}

****************** Source code for supwrite ****************************

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <mem.h>
#define AREA 32768

FILE *f,*g;
unsigned char *b1;
char notfound[]="Can't open: %s\n";
char seekerror[]="Seek error: %s\n";
char readerror[]="Read error or end of file: %s\nAborting\n";
char writeerror[]="Write error: %s\n";
long l,ofsrc,ofdest;

void uscita(void)
{
if (b1) free(b1);
if (f) fclose(f);
if (g) fclose(g);
}

void main(int argc, char *argv[])
{
        if (atexit(uscita))
           {
           printf("Atexit error\n");
           exit(EXIT_FAILURE);
           }
    if (argc!=6)
           {
printf("Supwrite v1.0 by Pedro '98\n\n"
"Usage: supwrite <src> <dest> <offset src> <offset dest> <length>\n"
"Numbers may be in hex if prefixed by 0x\n\n"
"The program writes <length> bytes of <src> to the corresponding\n"
"bytes in <dest> starting from the specified offsets\n");
exit(EXIT_FAILURE);
           }
    if ((b1=(char *)malloc(AREA))==NULL) exit(EXIT_FAILURE);
    if ((f=fopen(argv[1],"rb"))==NULL)
        {
        printf(notfound,argv[1]);
        exit(EXIT_FAILURE);
        }
    if ((g=fopen(argv[2],"rb+"))==NULL)
        {
        printf(notfound,argv[2]);
        exit(EXIT_FAILURE);
        }
        ofsrc=strtol(argv[3],NULL,0);
        ofdest=strtol(argv[4],NULL,0);
    if (fseek(f,ofsrc,SEEK_SET))
        {
        printf(seekerror,argv[1]);
        exit(EXIT_FAILURE);
        }
    if (fseek(g,ofdest,SEEK_SET))
        {
        printf(seekerror,argv[2]);
        exit(EXIT_FAILURE);
        }
        if ((l=strtol(argv[5],NULL,0))==0)
        {
        printf("Wrong length\n");
        exit(EXIT_FAILURE);
        }
    while (l)
        {
        long letti;

        if (l>=AREA) letti=AREA;
        else letti=l;
        if (fread(b1,1,letti,f)!=letti)
            {
            printf(readerror,argv[1]);
            exit(EXIT_FAILURE);
            }
        if (fwrite(b1,1,letti,g)!=letti)
            {
            printf(writeerror,argv[2]);
            exit(EXIT_FAILURE);
            }
        l-=letti;
        }
    exit(EXIT_SUCCESS);
}
sorry, I was a tool and needed to clean my code up :p
 
Status
Not open for further replies.
Back
Top