PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   PSP хакинг и девелопмент (https://www.pspx.ru/forum/forumdisplay.php?f=195)
-   -   Декриптовка IPL (https://www.pspx.ru/forum/showthread.php?t=86507)

rustot 13.02.2010 03:58

не хватает BCF00000-BCF00FFF для того чтобы раскриптовать IPL, вытащить из него тот самый main.bin. расковырял соответственно код ipl которые все это декриптует и распаковывает, знаю алгоритм, знаю все ключи, кроме того единственного что остался в BCF00000 от предзагрузчика

только дампер не должен пользоваться системными вызовами для доступа к файлам, потому-что в этот момент системы в памяти еще нет. в iplsdk для этого есть собственная либа с поддержкой fat32. то есть взять iplsdk, собрать кастомный ipl, проверить что он запускается. потом поправить его, вставив куда-нибудь вызов:

ms_save_file('ms0:/ipl/bcf_dump.bin, (const char*)0xBCF00000, 0x1000)

и запустить снова

ErikPshat 13.02.2010 04:12

Если у тебя нет IPL для сравнения, то я тебе щас их закину и напишу что и где находится.
Файл pspbtcnf.bin тоже находится в запакованном виде - это обычный текстовик. Его нужно распаковать, добавить строчки и назад запаковать.

Ну а ты сможешь реализовать это с iplsdk. И где его взять, я что-то у себя не нашёл?

Кстати, можешь пока посмотреть, как выглядет main.bin в проше 2.00: https://www.pspx.ru/forum/attachment....9&d=1263976309
Не знаю, хватит у тебя прав скачать с секретного отдела.

rustot 13.02.2010 04:34

так а я то что с этим всем буду делать? у меня же нет ломаной psp чтобы я мог на ней ipl собственного изготовления стартануть. старый main.bin мне ничем не поможет, тот кто его смог вытащить стопудово сдампил для этого BCF00000 но вот в открытый доступ не выложил

файлы которые стартуют из списка pspbtcnf.bin наверняка не являются нормальными приложениями, ты не можешь туда вписать какую-нибудь обычную тулзу, потому-что она попытается вызвать системные функции, а система еще не загружена. то есть туда надо вписывать такой файл который умеет напрямую с регистрами работать для записи во флэш. проще сам ipl поправить, там уже есть такие функции

iplsdk.7z я не помню где отдельно видел, но он есть например внутри этого архива - http://narod.ru/disk/13354518000/371...ndDump.7z.html (только архив огромный, 300 мег)

rustot добавил 13-02-2010 в 04:29
еще желательно перед дампом вставить код

REG32(0xBC100050) |= 0x7000
REG32(0xBC100078) |= 2
REG32(0xBE24000C) = 1
REG32(0xBE240000) |= 1
REG32(0xBC10007C) |= 1

это код из оригинального ipl, перед тем как он начинает читать из BFC00000, вполне возможно что этот код изменяет карту памяти и без него этот адрес не будет досупен

rustot добавил 13-02-2010 в 04:34
офигеть, только сейчас заметил, там уже есть этот код!

int main(void)
{
Kprintf("ENTER:%s\n",__title__);
...
ms_save_file(BIOS_FILE_NAME,(void *)0xbfc00000,0x1000);
}

то есть достаточно это дело запустить так как в ридмишке написано и на стике появится /psp_bios.bin, который мне и нужен

ErikPshat 13.02.2010 04:39

rustot, не понимаю, как ты что-то там ковыряешь. не имея прошитой PSP :D
Нужно ведь ещё проверять.

А этот архив-же мой и есть ))). Это я дампил все IPL-ы от своей PSP и выложил для тренировок. Ты отсюда наверное его стянул: https://www.pspx.ru/forum/showthread....352#post822352 И что, там есть iplsdk ))). Ща гляну.

А дампил main.bin от 2.00 тоже я. Зачем выкладывать в открытый доступ. У нас есть скрытый раздел для хакеров, так что мы там кое-какие секреты обсуждаем и выкладываем.

А ты-бы лучше зарегистрировался по нормальному, может тебе тоже туда дали бы доступ, т.к. я смотрю ты нехило в программировании и дизасме разбираешься. Хакер наверное каой-нибудь )))

rustot 13.02.2010 04:43

так я надеялся что ты сдампишь. мне прошитой psp не хватает только для этого, все остальное я сделаю без нее. уже готовый бинарник есть, нужно только запустить

зарегиться я не могу нормально там че то глючит, считает что мне 13 лет независимо от введеной даты

ErikPshat 13.02.2010 04:52

Ну ты мне тогда дай инструкции к действию, а то я уже подзабыл, что-где у меня лежит и о чём разговор ))). И лучше бы ты код, который нужно вставить сразу добавил бы в iplsdk, а я его сам скомпилю. А то мне нужно всё поднять и вникнуть поглубже.

rustot 13.02.2010 05:16

Декриптовка IPL
 
да не нужно ничего вставлять и компилить. в iplsdk есть каталог ML_BIOS_DUMPER и там лежит именно та прога которую нужно запустить, и она создаст файл /psp_boot.bin на флешке, который мне и нужен

судя по тому что написано в ридмишке, нужно установить кастомный ipl_ms.bin, так же как его ставят когда ломают, каким то там батником. потом pspboot.bin скопировать в ms0:/ipl/ipl.bin, загрузиться с нажатым LTRG (это я не понял что такое L+R что ли?

rustot добавил 13-02-2010 в 05:08
или как вариант прописать этот pspboot.bin в тот самый pspbtcnf.bin

rustot добавил 13-02-2010 в 05:16
вот мультилоадер с инсталяшкой http://dl.qj.net/download/psp-ms-multiloader-ipl.html. вот после его установки и надо будет подсунуть ipl.bin из iplsdk/ML_BIOS_DUMPER

ErikPshat 13.02.2010 05:22

rustot, я понял, о чём ты мне всё рассказывал. Всё это про изготовление комплекта Пандоры. Чтобы записать загрузчик в скрытую область на карту памяти. Щас я глянул эти sdk про LTRG, про pspboot.bin.
Это немного из другой оперы ))). Всё это я когда-то, года 2 назад, знал и юзал наизусть )

Но мысль вообще в правильном направлении.
А Пандора и TimeMachine сейчас делаются более современными методами.

Чтобы тебе более вникнуть в суть, то нужно посмотреть эту тему: https://www.pspx.ru/forum/showthread.php?t=77904
Там в "Способе №2. Для PSP с официальной прошивкой", залей себе файлы Пандоры на карту памяти. Они извлекаются из программы "PSPGrader".
Просто, для изучения. Это тебе наверняка поможет и натолкнёт на путь истинный. Ты посмотришь и сравнишь IPL на карте памяти с теми, которые я дампил из Nanda.
  1. Фактически это прошивка, которая запускается с карточки памяти.
  2. В папке ms0:/TM/DC8/ увидишь IPL-ы для Фатки и Слимки (ipl_01g.bin и ipl_02g.bin) - это почти такие-же, которые записываются в нанд кастомпрошивки 5.00 М33.
  3. И ещё там есть просто ipl.bin - это какой-то пред-IPL.
  4. Когда батарея запандорена, то идёт обращение к мультизагрузчику, как бы MBR в скрытой области карты памяти, он называется TM-IPL или раньше был Booster-IPL и есть ещё куча разновидностей. Он как раз не использует системные файлы, а работает на процессорном ассемблерном коде. Он реагирует на нажатую кнопку LTRG и при её обнаружении считывает путь из текстовика в файле ms0:/TM/config.txt, в котором записан исполняемый путь: L = "/TM/DC8/ipl.bin";
  5. После запуска ipl.bin, происходит элементарная проверка на модель PSP и в зависимости от модели происходит запуск одного из кастомных IPL - ipl_01g.bin или ipl_02g.bin.
  6. А они запускают файлы ms0:/kd/lfatfs.prx и ms0:TM/DC8/tmctrl500.prx, который запускает файл пандоры ms0:/TM/DC8/KD/resurrection.prx
    Из него вытекает всё меню Пандоры с вытекающими.
  7. Когда в меню Пандоры запускаешь пункт "Test M33", то через перезагрузку вызывается ipl_0xg.bin, в котором находится файл pspbtcnf.bin, после которого начинается официальный IPL, который запускает все кастомные файлы прошивки с карты памяти и официальную прошивку.
  8. Вот тут и происходит загрузка прошивки. В этот момент нужно дампить память.
А ещё лучше наверное экспериментировать с TimeMachine. В ней можно держать на карте несколько прошивок. И там немного по другому всё это работает.

Вот здесь полный набор PSP IPL SDK v0.5.

rustot 13.02.2010 14:06

Цитата:

Сообщение от ErikPshat (Сообщение 866961)
[*]Когда батарея запандорена, то идёт обращение к мультизагрузчику, как бы MBR в скрытой области карты памяти, он называется TM-IPL или раньше был Booster-IPL и есть ещё куча разновидностей. Он как раз не использует системные файлы, а работает на процессорном ассемблерном коде. Он реагирует на нажатую кнопку LTRG и при её обнаружении считывает путь из текстовика в файле ms0:/TM/config.txt, в котором записан исполняемый путь: L = "/TM/DC8/ipl.bin";

вот именно это и надо, поставить батарею, карту с мультизагрузчиком и подменить на ней ipl.bin на тот что лежит в iplsdk ML_BIOS_DUMPER. в той ссылке что ты дал только исходники, если нечем собирать то в той ссылке что я дал (300 меговой) он лежит уже собранный. с этим подмененным ipl мультизагрузчтик с нажатым LTRG сдампит память на карту и зависнет. ничего писать самому не надо, все уже готовое, только запустить

rustot добавил 13-02-2010 в 14:06
[QUOTE=ErikPshat;866961]Вот тут и происходит загрузка прошивки. В этот момент нужно дампить память.[/LIST]
нет, тут уже поздно, вся память перелопачена к этому моменту. надо чтобы сдампил ipl.bin запущенный из мультилоадера

ErikPshat 13.02.2010 23:21

Цитата:

Сообщение от rustot (Сообщение 867005)
подменить на ней ipl.bin на тот что лежит в iplsdk ML_BIOS_DUMPER

Даже лампочка карты не моргнула.

rustot 14.02.2010 06:16

Цитата:

Сообщение от ErikPshat (Сообщение 867090)
Даже лампочка карты не моргнула.

а мультилоадер именно тот, который из этого же комплекта iplsdk, 'by booster'? а то они разные вряд ли между собой совместимы по формату ipl.bin. чтобы биос дампер бустера запустить, видимо и мультилоадер бустера надо ставить

ErikPshat 14.02.2010 06:27

rustot, ага.

Всё разобрался. Пришлось изучать старые редми. Вроде всё восстановил в памяти. Это всё делалось старыми первыми тулзами по изготовлению Пандоры.

Я ведь по-началу всё пытался своей Пандоре DC8 скормить. Потом пытался TimeMachine, но в ответ тишина.

Потом всё-таки понял, что все эти причиндалы работали немного по другому в первых версиях Пандор.
В общем я опять вернулся на Пандору 3.80. Ведь сам-же писал и подготавливал её ))). Там мультизагрузчик другой и нужны вспомогательные файлы прошивки 1.50. В принципе от первой Пандоры, в 3.80 почти ничего не изменилось, только появился мультизагрузчик.

Короче я щас сижу на 5.00 М33 и у меня начинает что-то получаться. Получилось снять дамп BIOS. Но вот там есть ещё дампер main.bin, а он почему-то никак не реагирует.
Позже попробую с 6.20 снять. Но что-то говорилось, что там адресация сменилась?

rustot 14.02.2010 06:41

main.bin скорее всего не получится так халявски снять, дампер не пытается его распаковать, а пытается поймать момент когда он уже сам распаковался в памяти и наверное это сработает только с той версией прошивки, под которую он писался, а не с любой.

можешь попробовать заменить
patch_point = search_long_jump(0x040f0000,0x040f1000,0x04000000);
на
patch_point = search_long_jump(0x040ec000,0x040ed000,0x04000000);
может получится

но мне нужен только дамп биоса, main я вытащить тогда смогу сам без psp, с любой версии

rustot добавил 14-02-2010 в 06:41
ps. и наверное с заменой адресов тоже не получится. он пытается найти инструкцию J 0x400000, а там сейчас переход по регистру $R25 = 0x4000000, jr $R25

ErikPshat 14.02.2010 06:43

rustot, ну это понятно, что main.bin можно итак вычислить по 1F8B )).

Но вот Биос какой-то странно маленький выходит ровно на 4096 байт.
Хотя в самом конце чётко вижу надпись:
Copyright (C) 2004,2005 Sony Computer Entertainment Inc. All rights reserved

Ну я щас прошьюсь на 6.20 и скину тебе psp_bios.bin

rustot 14.02.2010 06:52

это не биос на самом деле. просто так назвали :) это просто служебные данные какие-то, оставленные в памяти pre_ipl. они используются только для вычисления ключа. gen_random(buf, 0x1000), for(i in 0..1023) buf[i] += bufBFC00000[i]. gen_key(buf, key). вот я и не могу получить key не зная что лежало в BFC00000

rustot добавил 14-02-2010 в 06:52
ps. и я думаю они будут одинаковы и для 1.0 и для 6.20, иначе бы прошивки не подходили к разным версиям материнок, а sony вынуждена совместимость держать

ErikPshat 14.02.2010 06:55

Вложений: 1
Вот пока глянь на Биос от 5.00. Правильно ли всё получилось?

rustot 14.02.2010 06:59

вроде все правильно, теперь пишу декриптовщик, как напишу выложу. с 6.20 стоит ковыряться только чтоб окончательно убедиться что под ней psp_bios.bin будет абсолютно тот же

ErikPshat 14.02.2010 07:14

rustot, ты был прав.

Снял биос от 6.20 и сравнил с 5.00 - они абсолютно идентичны!

rustot 14.02.2010 07:40

замечательно, значит распаковщик будет универсальным :) пока в лоб не получилось, стал смотреть внимательно - в алгоритме hmac_sha224 они похоже поменяли константы. извращенцы. придется пересматривать код внимательнее, я то просто увидел константы от sha224 и дальше в этот код не смотрел, думал стандарт

rustot 15.02.2010 14:53

аттачить мне не дает, так что исходник только, сможешь main.bin вытащить сам

Универсально пока не получилось, вот это для 6.20 подходит. там их почему-то 2 разных ipl с 2 разными main.bin - part2_nandipl_01g.bin и part2_nandipl_02g.ipl. может это для разных версий материнок разные грузятся

если перла нет, то ставишь http://strawberryperl.com/ и потом cpan Math::Random::MT

Код:

#!/usr/bin/perl -w
use strict;
use Math::Random::MT;
use Digest::SHA qw/sha224/;
use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ;

print("Use: $0 infile outfile\n"), exit unless @ARGV == 2;

my $ipl = load($ARGV[0]);

# this consts changed from version to version. todo - extracting from code

my @data = unpack 'I*', substr($ipl,0x2980,0x8180);
my $key1 = substr($ipl,0x2800,0x40);
my $key2 = substr($ipl,0x2840,0x40);

# get pre_ipl dependent key

my @psp_bios = unpack 'I*', load('psp_bios.bin');
my $gen = new Math::Random::MT(0xBFC00040);
my @buf = map {uint($psp_bios[$_] + $gen->rand(4294967296))} (0..1023);
my $key = hmac_sha224_modified(substr($ipl,0x2580,0x280), pack('I*',@buf))."\x00\x00\x00\x00";
my $sum = 0;
my @key = unpack 'C*', $key;
$sum = ($sum+$_) & 255 for @key;
if( $sum == ord(substr($ipl,0x28A0)) ) {
  my @key2 = unpack 'C*', substr($ipl, 0x2880, 32);
  $key[$_] ^= $key2[$_] for 0..31;
  $key = pack 'C*', @key;
}
$key = hmac_sha224_modified($key1, $key);

# decrypt

$gen = sfmt_init(unpack('I*',$key));
for( my $i = 0; $i < @data; $i += 7 ) {
  my @rnd = map {sfmt_gen($gen)} (1..16);
  my @xor = unpack 'I*', hmac_sha224_modified($key2, pack('I*',@rnd));
  for( my $j = 0; $j < 7 && $i+$j < @data; ++$j ) {
    $data[$i+$j] ^= $xor[$j];
  }
}

# decompress

gunzip \pack('I*', @data) => \my $unpacked or die "gunzip failed: $GunzipError\n";
open FO, ">$ARGV[1]";
binmode FO;
print FO $unpacked;
close FO;
print length($unpacked), "\n";

# hmac_sha224 with non-standard xor constants

sub hmac_sha224_modified
{
  my($key, $data) = @_;

  $key = sha224($key) if length($key) > 64;
  $key .= "\x00" x (64-length($key)) if length($key) < 64;
  $key = join '', map {chr($_ ^ 0x36)} unpack 'C*', $key;
  my $key2 = sha224($key.$data);
  $key = join '', map {chr($_ ^ 0x6A)} unpack 'C*', $key;
  return sha224($key.$key2);
}

# standard sfmt random generator. i've not found perl implementation

sub sfmt_init
{
  my(@seed) = @_;

  my @buf = map {0x8b8b8b8b} (1..0x270);
  my $count = @seed + 1 > 0x270 ? @seed + 1 : 0x270;
  unshift @seed, scalar(@seed);

  for(my $i = 0; $i < $count; ++$i) {
    my $r = $buf[$i % 0x270] ^ $buf[($i+306) % 0x270] ^ $buf[($i+0x26F) % 0x270];
    $r ^= ($r >> 27);
    {use integer; $r *= 1664525}
    $buf[($i+306)%0x270] = uint($buf[($i+306)%0x270] + $r);
    $r = uint($r + $i + ($seed[$i]||0));
    $buf[($i+317)%0x270] = uint($buf[($i+317)%0x270] + $r);
    $buf[$i % 0x270] = $r;
  }   

  my $i = $count % 0x270;
  for my $j (0..0x26F) {
    my $r = uint($buf[$i] + $buf[($i+306)%0x270] + $buf[($i+0x26F)%0x270]);
    $r ^= ($r >> 27);
    {use integer; $r *= 1566083941}
    $buf[($i+306)%0x270] ^= $r;
    $r = uint($r - $i);
    $buf[($i+317)%0x270] ^= $r;
    $buf[$i] = $r;
    $i = ($i + 1) % 0x270;
  }
  my @parity = (1,0,0,0x13c9e684);
  my $inner = 0;
  $inner ^= ($buf[$_] & $parity[$_]) for 0..3;
  $inner ^= $inner >> (1 << (4-$_)) for 0..4;
  $buf[0] ^= 1 unless $inner & 1;
  return [0x270,@buf];
}

sub sfmt_gen
{
  my($ctx) = @_;

  return $ctx->[++$ctx->[0]] if $ctx->[0] < 0x270;
  for(my $i = 0; $i < 0x270; $i += 4) {
    my $r1 = ($i + 0x268) % 0x270;
    my $r2 = ($i + 0x26C) % 0x270;
    my $pos1 = ($i + 488) % 0x270;
    my @x = unpack 'I*', "\x00".pack 'I*', @$ctx[($i+1)..($i+4)];
    my @y = unpack 'I*', substr(pack('I*', @$ctx[$r1+1..$r1+4]), 1)."\x00";
    $ctx->[$i+1] = $ctx->[$i+1] ^ $x[0] ^ (($ctx->[$pos1+1] >> 11) & 0xdfffffef) ^ $y[0] ^ ($ctx->[$r2+1] << 18);
    $ctx->[$i+2] = $ctx->[$i+2] ^ $x[1] ^ (($ctx->[$pos1+2] >> 11) & 0xddfecb7f) ^ $y[1] ^ ($ctx->[$r2+2] << 18);
    $ctx->[$i+3] = $ctx->[$i+3] ^ $x[2] ^ (($ctx->[$pos1+3] >> 11) & 0xbffaffff) ^ $y[2] ^ ($ctx->[$r2+3] << 18);
    $ctx->[$i+4] = $ctx->[$i+4] ^ $x[3] ^ (($ctx->[$pos1+4] >> 11) & 0xbffffff6) ^ $y[3] ^ ($ctx->[$r2+4] << 18);
  }
  return $ctx->[$ctx->[0] = 1];
}

sub uint
{
  my($v) = @_;

  $v += 4294967296 while $v < 0;
  $v -= 4294967296 while $v > 4294967296;
  return $v;
}

sub load
{
  open F, "<$_[0]" or die "Can't open $_[0]";
  binmode F;
  my $res = join '', <F>;
  close F;
  return $res;
}

rustot добавил 14-02-2010 в 20:46
вот на эти данные желательно напустить kirk, очень вероятно что на выходе будут искомые ключи

Код:

0xAA, 0x76, 0x91, 0xDC, 0xB1, 0x25, 0x49, 0x0D,
0x2B, 0x2F, 0x4B, 0x35, 0x13, 0xC7, 0x1B, 0x85,
0x28, 0x40, 0x4B, 0x2E, 0x87, 0xD9, 0xB2, 0xA5,
0xEB, 0x9F, 0x74, 0xF8, 0xBC, 0xDD, 0x51, 0x65,
0xB8, 0x93, 0x14, 0xFF, 0xA7, 0x82, 0xD0, 0xBB,
0xFC, 0x3F, 0x59, 0xD0, 0xA4, 0x70, 0xC6, 0xE4,
0xB7, 0xCA, 0x4E, 0x5D, 0x4A, 0x96, 0x7C, 0x48,
0x41, 0x55, 0xFE, 0xD8, 0xE8, 0x36, 0x77, 0xAE,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB1, 0xAD, 0x73, 0xC3, 0x34, 0xED, 0x51, 0x6B,
0x5F, 0x64, 0x8D, 0xC3, 0x76, 0x13, 0xEE, 0x2F,
0xFC, 0xE2, 0xE9, 0x85, 0xC9, 0x56, 0x0F, 0xE8,
0xCA, 0x61, 0x0F, 0xAF, 0x8E, 0x38, 0xDD, 0x43,
0x2A, 0x22, 0x03, 0x82, 0xE8, 0x2C, 0x1D, 0x73,
0xD2, 0x7C, 0x79, 0xB4, 0xDD, 0xC5, 0x70, 0x48,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

rustot добавил 15-02-2010 в 03:05
вот так выглядит стартовый код main.bin. в 0xBFC00000 лежат 256 байт положенные туда из ipl, после decrypt() они выглядят так как выше заквочено, а дальше идет kirk, это только на psp можно сделать (если никто еще не сломал его, ведь откуда-то знают что он AES делает, но как именно не говорят)

Код:

  decrypt(0, 0, 0x400D580, 0x400D5C0, 0xBFC00000, 0x100)
  memset(0x400D580, 0, 0x40);
  memset(0x400D5C0, 0, 0x40);
  M(0xBC10004C) |= 0x400;
  M(0xBC100050) |= 0x80;
  M(0xBC100050) &= ~0x80;
  M(0xBC10004C) &= ~0x400;
  M(0xBC100050) |= 0x80;
  if( kirk_decrypt(0xBFC00000, 0xBFC00000) ) {
    memset(0xBFC00000, 0, 0x1000)
    fill_dcache();
    clear_important_mem();
    l04006824();
    l04008250(0);
    while(1);
  }
  memcpy(buf, 0xBFC00000, 0x20);
  memset(0xBFC00000, 0, 0x1000);
  memcpy(0xBFC00200, buf, 0x20);

rustot добавил 15-02-2010 в 14:53
мне уже раскриптовали. не те это ключи, это известные
Цитата:

0xEA, 0x95, 0xD0, 0x1B, 0x6C, 0x91, 0x4C, 0xED,
0xA2, 0x1C, 0x72, 0x45, 0xEE, 0x08, 0x21, 0xB0,
0xB7, 0x0D, 0x55, 0x62, 0x73, 0x5F, 0xB0, 0x99,
0xB8, 0x2D, 0x41, 0xF8, 0xBE, 0x7E, 0x67, 0x1F

its the kernel key seed for slim and phat. 0x00-0x10 is phat, 0x10-0x20 is slim. The slims seed goes through further processing.


Текущее время: 06:22. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.