Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Userland Vita Loader: Difference between revisions

From GameBrew
No edit summary
m (HydeWing moved page Userland Vita Loader Vita to Userland Vita Loader without leaving a redirect)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{#seo:
{{#seo:
|title=Vita Homebrew Apps (Exploits) - GameBrew!
|title=Vita Homebrew Apps (Exploits) - GameBrew
|title_mode=append
|title_mode=append
|image=userlandvitaloadervita.jpg
|image=userlandvitaloadervita.jpg
Line 12: Line 12:
|lastupdated=2018/01/05
|lastupdated=2018/01/05
|type=Exploits
|type=Exploits
|version=1.0
|version=2018
|license=Apache-2.0
|license=Apache-2.0
|download=https://dlhb.gamebrew.org/vitahomebrews/userlandvitaloadervita.7z
|website=https://github.com/yifanlu/UVLoader
|website=
|source=https://github.com/yifanlu/UVLoader
|source=https://github.com/yifanlu/UVLoader
}}
}}
'''UVLoader (Userland Vita Loader)''' is an exploit for loading unsigned executables on your Vita.
In short, this is a loader that allows running homebrew games on the Vita using save-file exploits or similar methods where there is no access to the system loader functions (which are found in the kernel). UVL does this by hooking on to functions and API calls imported by the running game and passing them to the homebrew being loader. This is not a way to run backups or pirated games as that is not only wrong to do, but also because UVL does not and can not decrypt content nor can it do dynamic linking or other sophisticated things that the system loader does.


== UVLoader - What is this? ==
In short, this is a loader that allows running homebrew games on the Vita using save-file exploits or similar methods where there is no access to the system loader functions (which are found in the kernel). UVL does this by hooking on to functions and API calls imported by the running game and passing them to the homebrew being loader.
This is '''not''' a way to run backups or pirated games as that is not only wrong to do, but also because UVL does not and can not decrypt content nor can it do dynamic linking or other sophisticated things that the system loader does.
== How do I run UVLoader? ==
UVL is designed to work with any userland exploit with little configuration. However, you should check with the developer of the exploit who ported UVL to see how to use it. UVL cannot do anything by itself, it is simply a payload that is executed by an exploit to run homebrews unmodified.
UVL is designed to work with any userland exploit with little configuration. However, you should check with the developer of the exploit who ported UVL to see how to use it. UVL cannot do anything by itself, it is simply a payload that is executed by an exploit to run homebrews unmodified.
==Screenshot==
[[image:userlandvitaloadervita.jpg|600px]]
== How can I call UVLoader API functions from my homebrew? ==
Make sure <code>$VITASDK</code> points to where the toolchain is installed. Then run <code>make install_lib</code> to install the UVL stub library to the right place. Then you can include <code>psp2/uvl.h</code> into your project and build with <code>-lUVLoader_stub</code>. Finally to create the resulting VELF, you need to pass the UVL JSON database as the parameter to <code>vita-elf-create</code> (<code>$(VITASDK)/share/uvloader.json</code>). See the documentation for details on the exported functions and when to use them. The library exposes functions for logging and dynamic code generation that is otherwise missing from the SDK.
== How do I port UVLoader? ==
If you have an exploit for the Vita (not the PSP emulator as UVL does not work on that), then you should be able to port the exploit by finding a couple of memory addresses for some API calls and passing them to the config file. More information will be available when the time comes...
== How do I compile UVLoader? ==
First of all, be aware that it is impossible to use UVL without an exploit, but once you have that and need a payload, all you need to do is modify the Makefile to point to your ARM toolchain and run &quot;make&quot;. The toolchain that is tested with is https://launchpad.net/gcc-arm-embedded/+download.
== Who's responsible for this? ==
This project is based heavily off of [http://valentine-hbl.googlecode.com/ Half Byte Loader] for the PSP. Some code is ripped from the [https://github.com/android/platform_bionic/ Bionic] libc project. The project is started by [http://yifan.lu/ Yifan Lu] with thanks to the following people for their contribution. (Apologies for those forgotten.)


==Changelog==
==Changelog==
'''1.1.0'''
'''1.1.0'''
* Added Unity PSM cleanup code (thanks Netrix)
* Added Unity PSM cleanup code (thanks Netrix).


'''1.0.1'''
'''1.0.1'''
* Added support for multiple loads (stacked homebrew loading)
* Added support for multiple loads (stacked homebrew loading).


'''1.0.0'''
'''1.0.0'''
* Relocatable ELF (ET_SCE_RELEXEC) support
* Relocatable ELF (ET_SCE_RELEXEC) support.
* ARM relocation resolving
* ARM relocation resolving.
* SceLibKernel NID cache database (for NID poison bypass)
* SceLibKernel NID cache database (for NID poison bypass).
* Library reloading (another NID antidote technique)
* Library reloading (another NID antidote technique).
* UVL custom exports (code alloc, icache flush, logging via USB)
* UVL custom exports (code alloc, icache flush, logging via USB).


'''0.1.0 '''
'''0.1.0 '''
* Initial release
* Initial release.
 
== Credits ==
This project is based heavily off of [http://valentine-hbl.googlecode.com/ Half Byte Loader] for the PSP. Some code is ripped from the [https://github.com/android/platform_bionic/ Bionic] libc project. The project is started by [http://yifan.lu/ Yifan Lu] with thanks to the following people for their contribution. (Apologies for those forgotten.)


== Thanks To ==
Thanks to:
* Davee for many ideas and help
* Davee for many ideas and help.
* Proxima for module reloading NID antidote method
* Proxima for module reloading NID antidote method.
* naehrwert for some code snippets and programming help
* naehrwert for some code snippets and programming help.
* roxfan for finding structures
* roxfan for finding structures.
* Netrix for Unity cleanup code
* Netrix for Unity cleanup code.
* anyone in #vitadev who answered my stupid questions
* anyone in #vitadev who answered my questions.


== External links ==
== External links ==
* Github - https://github.com/yifanlu/UVLoader
* GitHub - https://github.com/yifanlu/UVLoader

Latest revision as of 14:46, 6 February 2023

Userland Vita Loader
Userlandvitaloadervita.jpg
General
Authoryifanlu
TypeExploits
Version2018
LicenseApache-2.0
Last Updated2018/01/05
Links
Website
Source

In short, this is a loader that allows running homebrew games on the Vita using save-file exploits or similar methods where there is no access to the system loader functions (which are found in the kernel). UVL does this by hooking on to functions and API calls imported by the running game and passing them to the homebrew being loader. This is not a way to run backups or pirated games as that is not only wrong to do, but also because UVL does not and can not decrypt content nor can it do dynamic linking or other sophisticated things that the system loader does.

UVL is designed to work with any userland exploit with little configuration. However, you should check with the developer of the exploit who ported UVL to see how to use it. UVL cannot do anything by itself, it is simply a payload that is executed by an exploit to run homebrews unmodified.

Changelog

1.1.0

  • Added Unity PSM cleanup code (thanks Netrix).

1.0.1

  • Added support for multiple loads (stacked homebrew loading).

1.0.0

  • Relocatable ELF (ET_SCE_RELEXEC) support.
  • ARM relocation resolving.
  • SceLibKernel NID cache database (for NID poison bypass).
  • Library reloading (another NID antidote technique).
  • UVL custom exports (code alloc, icache flush, logging via USB).

0.1.0

  • Initial release.

Credits

This project is based heavily off of Half Byte Loader for the PSP. Some code is ripped from the Bionic libc project. The project is started by Yifan Lu with thanks to the following people for their contribution. (Apologies for those forgotten.)

Thanks to:

  • Davee for many ideas and help.
  • Proxima for module reloading NID antidote method.
  • naehrwert for some code snippets and programming help.
  • roxfan for finding structures.
  • Netrix for Unity cleanup code.
  • anyone in #vitadev who answered my questions.

External links

Advertising: