Hi there, me again
As I said, I'm trying to make an eboot loader from an exploit. I've managed to load the program section from the ELF. Now the thing is to resolve the imports table. And sincerely, my ignorance about this on PSP is absolute, except for understanding what an import table is, of course. And I guess it has something to do with the symbol table too...
I have also read that you can use the import table of the game being exploited to do the resolving. I guess if a function is not imported in the game, you'll not be able to resolve it, right?
And also, how relocating works on PRXs? I understand the concept of relocation sections, and that the symbols there needs to be relocated, but how it is done I cannot figure out.
:(
ELF import table
ELF import table
The Incredible Bill Gates wrote:The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers.
Ok, the imports table is .lib.stub, in case someone has the same question. It's explained here: http://hitmen.c02.at/files/yapspd/psp_d ... ec26.2.2.6
Relocation next.
Relocation next.
The Incredible Bill Gates wrote:The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers.
-
- Posts: 203
- Joined: Sat Jul 05, 2008 8:03 am
thx tyranid has also provide macros to handle function that must be imported
Code: Select all
.macro IMPORT_START module, flags_ver
.set push
.section .rodata.sceResident, "a"
.word 0
__stub_modulestr_\module:
.asciz "\module"
.align 2
.section .lib.stub, "a", @progbits
.global __stub_module_\module
__stub_module_\module:
.word __stub_modulestr_\module
.word \flags_ver
.word 0x5
.word __executable_start
.word __executable_start
.set pop
.endm
.macro IMPORT_FUNC module, funcid, funcname
.set push
.set noreorder
.extern __stub_module_\module
.section .sceStub.text, "ax", @progbits
.globl \funcname
.type \funcname, @function
.ent \funcname, 0
\funcname:
.word __stub_module_\module
.word \funcid
.end \funcname
.size \funcname, .-\funcname
.section .rodata.sceNid, "a"
.word \funcid
.set pop
.endm
.macro IMPORT_FUNC_WITH_ALIAS module, funcid, funcname, alias
.set push
.set noreorder
.extern __stub_module_\module
.section .sceStub.text, "ax", @progbits
.globl \alias
.type \alias, @function
\alias:
.globl \funcname
.type \funcname, @function
.ent \funcname, 0
\funcname:
.word __stub_module_\module
.word \funcid
.end \funcname
.size \funcname, .-\funcname
.section .rodata.sceNid, "a"
.word \funcid
.set pop
.endm