Skip to content

Commit

Permalink
implement anti-libcrypt
Browse files Browse the repository at this point in the history
  • Loading branch information
JoseAaronLopezGarcia committed Jul 28, 2024
1 parent 2a015cc commit ceaf5a8
Show file tree
Hide file tree
Showing 3 changed files with 258 additions and 1 deletion.
2 changes: 1 addition & 1 deletion core/popcorn/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
TARGET = popcorn

OBJS = main.o icon.o
OBJS = main.o libcrypt.o icon.o

all: $(TARGET).prx
INCDIR = $(ARKROOT)/common/include
Expand Down
252 changes: 252 additions & 0 deletions core/popcorn/libcrypt.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,252 @@
#include <pspkernel.h>

struct mw {
char *discid;
uint32_t mw;
};

struct mw magic_words[] = {
{"_SCES_00311", 34730},
{"_SCES_01431", 25927},
{"_SCES_01444", 48452},
{"_SCES_01492", 53610},
{"_SCES_01493", 6522},
{"_SCES_01494", 43686},
{"_SCES_01495", 3671},
{"_SCES_01516", 17654},
{"_SCES_01517", 44677},
{"_SCES_01518", 39975},
{"_SCES_01519", 13899},
{"_SCES_01564", 52929},
{"_SCES_01695", 35306},
{"_SCES_01700", 18199},
{"_SCES_01701", 50334},
{"_SCES_01702", 26410},
{"_SCES_01703", 34879},
{"_SCES_01704", 52786},
{"_SCES_01763", 2415},
{"_SCES_01882", 45924},
{"_SCES_01909", 59272},
{"_SCES_01979", 3485},
{"_SCES_02004", 50231},
{"_SCES_02005", 37175},
{"_SCES_02006", 30036},
{"_SCES_02007", 59014},
{"_SCES_02028", 39636},
{"_SCES_02029", 9910},
{"_SCES_02030", 9177},
{"_SCES_02031", 54053},
{"_SCES_02080", 40416},
{"_SCES_02104", 29771},
{"_SCES_02105", 41841},
{"_SCES_02181", 32132},
{"_SCES_02182", 43213},
{"_SCES_02184", 7772},
{"_SCES_02185", 29924},
{"_SCES_02222", 42232},
{"_SCES_02264", 3646},
{"_SCES_02269", 30215},
{"_SCES_02290", 4823},
{"_SCES_02365", 7388},
{"_SCES_02366", 54984},
{"_SCES_02367", 38566},
{"_SCES_02368", 23591},
{"_SCES_02369", 56357},
{"_SCES_02430", 45401},
{"_SCES_02431", 30834},
{"_SCES_02432", 5038},
{"_SCES_02433", 46347},
{"_SCES_02487", 31440},
{"_SCES_02488", 35215},
{"_SCES_02489", 9706},
{"_SCES_02490", 3948},
{"_SCES_02491", 61467},
{"_SCES_02544", 14871},
{"_SCES_02545", 43372},
{"_SCES_02546", 14218},
{"_SCES_02834", 59176},
{"_SCES_02835", 13978},
{"_SLES_00017", 58040},
{"_SLES_00995", 35761},
{"_SLES_01041", 25367},
{"_SLES_01226", 999},
{"_SLES_01241", 58131},
{"_SLES_01301", 46882},
{"_SLES_01362", 27814},
{"_SLES_01545", 42318},
{"_SLES_01715", 42228},
{"_SLES_01733", 45165},
{"_SLES_01906", 5357},
{"_SLES_01907", 49390},
{"_SLES_01943", 28775},
{"_SLES_02024", 7025},
{"_SLES_02025", 51790},
{"_SLES_02026", 4463},
{"_SLES_02027", 14947},
{"_SLES_02061", 35509},
{"_SLES_02071", 10037},
{"_SLES_02080", 40416},
{"_SLES_02081", 26679},
{"_SLES_02082", 27019},
{"_SLES_02083", 38093},
{"_SLES_02084", 17597},
{"_SLES_02086", 5876},
{"_SLES_02112", 44868},
{"_SLES_02113", 22679},
{"_SLES_02118", 28080},
{"_SLES_02207", 14956},
{"_SLES_02208", 29097},
{"_SLES_02209", 9942},
{"_SLES_02210", 25389},
{"_SLES_02211", 6743},
{"_SLES_02292", 34546},
{"_SLES_02293", 47749},
{"_SLES_02328", 16162},
{"_SLES_02329", 40248},
{"_SLES_02330", 57405},
{"_SLES_02354", 25833},
{"_SLES_02355", 19174},
{"_SLES_02395", 43689},
{"_SLES_02396", 42346},
{"_SLES_02402", 43578},
{"_SLES_02529", 44400},
{"_SLES_02530", 31779},
{"_SLES_02531", 44216},
{"_SLES_02532", 7229},
{"_SLES_02533", 60042},
{"_SLES_02538", 25427},
{"_SLES_02558", 54752},
{"_SLES_02559", 22293},
{"_SLES_02560", 56104},
{"_SLES_02561", 60037},
{"_SLES_02562", 15764},
{"_SLES_02563", 19299},
{"_SLES_02572", 14684},
{"_SLES_02573", 21859},
{"_SLES_02681", 7367},
{"_SLES_02688", 29544},
{"_SLES_02689", 57810},
{"_SLES_02698", 7325},
{"_SLES_02700", 10200},
{"_SLES_02704", 28958},
{"_SLES_02705", 19117},
{"_SLES_02706", 7857},
{"_SLES_02707", 44337},
{"_SLES_02708", 24260},
{"_SLES_02722", 46730},
{"_SLES_02723", 4080},
{"_SLES_02724", 52884},
{"_SLES_02733", 46605},
{"_SLES_02754", 8129},
{"_SLES_02755", 22807},
{"_SLES_02756", 57462},
{"_SLES_02763", 30886},
{"_SLES_02766", 38991},
{"_SLES_02767", 43845},
{"_SLES_02768", 40296},
{"_SLES_02769", 12510},
{"_SLES_02824", 45957},
{"_SLES_02830", 25276},
{"_SLES_02831", 1502},
{"_SLES_02839", 51993},
{"_SLES_02857", 24330},
{"_SLES_02858", 15898},
{"_SLES_02859", 9566},
{"_SLES_02860", 42898},
{"_SLES_02861", 51420},
{"_SLES_02862", 50129},
{"_SLES_02965", 46792},
{"_SLES_02966", 52897},
{"_SLES_02967", 29274},
{"_SLES_02968", 58646},
{"_SLES_02969", 60513},
{"_SLES_02975", 31377},
{"_SLES_02976", 25927},
{"_SLES_02977", 47245},
{"_SLES_02978", 23315},
{"_SLES_02979", 12106},
{"_SLES_03061", 3198},
{"_SLES_03062", 45261},
{"_SLES_03189", 19404},
{"_SLES_03190", 28943},
{"_SLES_03191", 27285},
{"_SLES_03241", 31618},
{"_SLES_03242", 42856},
{"_SLES_03243", 10097},
{"_SLES_03244", 5527},
{"_SLES_03245", 1495},
{"_SLES_03324", 52529},
{"_SLES_03489", 37039},
{"_SLES_03519", 47892},
{"_SLES_03520", 38520},
{"_SLES_03521", 64288},
{"_SLES_03522", 51982},
{"_SLES_03523", 12540},
{"_SLES_03530", 37872},
{"_SLES_03603", 23241},
{"_SLES_03604", 6510},
{"_SLES_03605", 61778},
{"_SLES_03606", 50644},
{"_SLES_03607", 35387},
{"_SLES_03626", 20259},
{"_SLES_03648", 26937},
{"_SLES_12080", 40416},
{"_SLES_12081", 26679},
{"_SLES_12082", 27019},
{"_SLES_12083", 38093},
{"_SLES_12084", 17597},
{"_SLES_12328", 19180},
{"_SLES_12329", 40248},
{"_SLES_12330", 56835},
{"_SLES_12558", 54752},
{"_SLES_12559", 22293},
{"_SLES_12560", 56104},
{"_SLES_12561", 60037},
{"_SLES_12562", 15764},
{"_SLES_12965", 41427},
{"_SLES_12966", 38705},
{"_SLES_12967", 55574},
{"_SLES_12968", 21583},
{"_SLES_12969", 25691},
{"_SLES_22080", 40416},
{"_SLES_22081", 26679},
{"_SLES_22082", 27019},
{"_SLES_22083", 38093},
{"_SLES_22084", 17597},
{"_SLES_22328", 28883},
{"_SLES_22329", 40248},
{"_SLES_22330", 9067},
{"_SLES_22965", 28098},
{"_SLES_22966", 51315},
{"_SLES_22967", 6581},
{"_SLES_22968", 16847},
{"_SLES_22969", 26166},
{"_SLES_32080", 40416},
{"_SLES_32081", 26679},
{"_SLES_32082", 27019},
{"_SLES_32083", 38093},
{"_SLES_32084", 17597},
{"_SLES_32965", 7877},
{"_SLES_32966", 13777},
{"_SLES_32967", 21709},
{"_SLES_32968", 50717},
{"_SLES_32969", 59587},
};

int searchMagicWord(char* discid){
int lower = 0;
int upper = (sizeof(magic_words)/sizeof(magic_words[0]))-1;

while (lower < upper-1){
int cmp1 = strcmp(magic_words[lower].discid, discid);
int cmp2 = strcmp(magic_words[upper].discid, discid);
if (cmp1 == 0) return magic_words[lower].mw;
else if (cmp2 == 0) return magic_words[upper].mw;
int half = (upper-lower)/2;
int cmp3 = strcmp(magic_words[lower+half].discid, discid);
if (cmp3 == 0) return magic_words[lower+half].mw;
else if (cmp3 < 0) lower += half;
else upper -= half;
}
return 0;
}
5 changes: 5 additions & 0 deletions core/popcorn/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,11 @@ static int myIoRead(int fd, unsigned char *buf, int size)
sceIoLseek(fd, pos+size, PSP_SEEK_SET);
if (strncmp(magic, "PSISOIMG", 8) == 0){
memcpy(buf+0x20, custom_config, config_size);
int mw = searchMagicWord(buf);
if (mw != 0){
mw ^= 0x72D0EE59;
memcpy(buf+0xeb0, &mw, sizeof(mw));
}
}
break;
}
Expand Down

0 comments on commit ceaf5a8

Please sign in to comment.