Ps5-self-decrypter
Une charge utile qui utilise la lecture/écriture arbitraire du noyau pour déchiffrer les ELFs signés (SELFs) à partir du système de fichiers et dump the ELFs...
Choisir une liste...
Décrypteur d'ELF PS5
Une charge utile qui utilise la lecture/écriture arbitraire du noyau pour déchiffrer les ELFs signés (SELFs) à partir du système de fichiers et dump the ELFs en texte simple vers le lecteur USB.
Annexe
- Remplacer
PC_IPetPC_PORTmacros sur les lignes 24-25 avec l'IP/port de votre serveur TCP- Il est recommandé d'utiliser l'enregistrement pour savoir jusqu'où la charge utile a progressé ou si elle est bloquée
- Branchez le lecteur USB compatible dans PS5 avec au moins 1 Go d'espace libre avant de courir
- Les fichiers seront rejetés à
[USB root]/PS5/ - Doit supporter 3.xx-4.xx, mais pas testé sur tous les firmwares (ouvrir un problème pour tout problème)
- Actuellement, la charge utile suppose l'état pré-jailbroken (c.-à-d. évadé bac à sable), ajouter le code jailbreak ici est un TODO
- Si vous remarquez que l'activité de log s'est arrêtée pendant plus d'une minute, le PS5 a été coupé par le bouton d'alimentation pour trois bips. et redémarrez la console et exécutez à nouveau
- La console peut paniquer au milieu des fichiers de dumping, c'est bien, redémarrer la console et courir à nouveau
- La charge utile reprendra là où elle s'est arrêtée et continuera de déverser là où elle a été arrêtée précédemment.
- Des améliorations pour réduire la charge utile sont les bienvenues
TODO
- [ ] Ajouter du code pour échapper au bac à sable au cas où l'environnement ne serait pas déjà en prison
- [ ] Mieux verrouiller l'accès aux données partagées pour améliorer la stabilité
- [ ] Nettoyer diverses fonctions
Exemple de journal
[+] kernel .data base is ffffffff88e40000, pipe 12->13, rw pair 14->21, pipe addr is ffffa04b61800480
[+] firmware version 0x3000038 ( 3.000.038)
[+] got auth manager: 4
...
[+] dumping /system_ex/common_ex/lib...
[+] decrypting /system_ex/common_ex/lib/libSceJsc.sprx...
[?] decrypting block info segment for 0
[?] decrypting block info segment for 1
[?] decrypting block info segment for 2
[?] decrypting block info segment for 4
[?] decrypting block info segment for 9
[?] decrypting block info segment for 10
[?] decrypting segment=1, block=1/593
[?] decrypting segment=1, block=2/593
[?] decrypting segment=1, block=3/593
[?] decrypting segment=1, block=4/593
Notes pour le portage offset
- L'un des objectifs dans l'écriture de cette charge utile était de garder un peu facile à porter à d'autres firmwares, même sans noyau .texte dump
- La charge utile utilisera des appels lib pour déterminer la version du système et adapter à l'exécution, en supposant que le firmware a appui
- Il y a au total 11 compensations, les notes pour les trouver sont les suivantes (elles ne sont pas garanties, mais fondées sur des observations):
offset_authmgr_handle: +0x30 octets du pointeur à la chaîne "sdt" (il devrait également être généralement 0x4)offset_sbl_mb_mtx: -0x20 octets du pointeur à la chaîne "SblDrvSendSx"offset_mailbox_base: +0x8 octetsoffset_sbl_mb_mtxoffset_sbl_sxlock: +0x8 octetsoffset_mailbox_baseoffset_mailbox_flags: -0x8 octets du pointeur à la chaîne "req mtx"offset_mailbox_meta: -0x18 octets du pointeur à la chaîne "req msg cv"offset_dmpml4i: -0x8 octets de pointeur à chaîne "invlgn"offset_dmpdpi: +0x4 octetsoffset_dmpml4ioffset_pml4pml4i: -0x1C octets du pointeur vers la chaîne "pmap"offset_datacave_1/offset_datacave_2: deux plages 0x4000 octets qui semblent inutilisées (sans doute pas besoin de changer)
Je vous remercie.
- ChendoChap (aide et essais divers pour inverser la tendance)
- Znullptr (essai)
- flat z (le noyau fonctionne hors de + diverses informations)
- alexaltea (travail précédent avec orbital pour référence)
Licence
Spectre (criptogène) - @SpecterDev
Ce projet est sous licence sans licence - voir la LICENSE.md fichier pour les détails.
Contributeurs GitHub
illusionyy
2
contributions
Cryptogenic
8
contributions
john-tornblom
205
contributions
zecoxao
3
contributions