mirror of
https://github.com/Gezine/Luac0re.git
synced 2026-10-22 08:32:28 -05:00
93 lines
3.8 KiB
Lua
93 lines
3.8 KiB
Lua
|
|
-- sources: Y2JB kernel_offset.js, ps5-payload-dev SDK, PS5_KernelOffset.java
|
|
|
|
fw_offsets = {
|
|
["4.00"] = { ALLPROC=0x027EDCB8, SECURITY_FLAGS=0x06506474, ROOTVNODE=0x066E74C0, KERNEL_PMAP_STORE=0x03257A78, GVMSPACE=0x064C3F80 },
|
|
["4.02"] = "4.00", ["4.03"] = "4.00", ["4.50"] = "4.00", ["4.51"] = "4.00",
|
|
["5.00"] = { ALLPROC=0x0291DD00, SECURITY_FLAGS=0x066466EC, ROOTVNODE=0x06853510, KERNEL_PMAP_STORE=0x03398A88, GVMSPACE=0x06603FB0 },
|
|
["5.02"] = "5.00", ["5.10"] = "5.00",
|
|
["5.50"] = { ALLPROC=0x0291DD00, SECURITY_FLAGS=0x066466EC, ROOTVNODE=0x06853510, KERNEL_PMAP_STORE=0x03394A88, GVMSPACE=0x06603FB0 },
|
|
["6.xx"] = { ALLPROC=0x02869D20, SECURITY_FLAGS=0x065968EC, ROOTVNODE=0x0679F510, KERNEL_PMAP_STORE=0x032E4358, GVMSPACE=0x065540F0 },
|
|
["7.xx"] = { ALLPROC=0x02859D50, SECURITY_FLAGS=0x00AC8064, ROOTVNODE=0x030C7510, KERNEL_PMAP_STORE=0x02E2C848, GVMSPACE=0x02E76090 },
|
|
["8.xx"] = { ALLPROC=0x02875D50, SECURITY_FLAGS=0x00AC3064, ROOTVNODE=0x030FB510, KERNEL_PMAP_STORE=0x02E48848, GVMSPACE=0x02EAA090 },
|
|
["9.00"] = { ALLPROC=0x02755D50, SECURITY_FLAGS=0x00D72064, ROOTVNODE=0x02FDB510, KERNEL_PMAP_STORE=0x02D28B78, GVMSPACE=0x02D8A570 },
|
|
["9.05"] = { ALLPROC=0x02755D50, SECURITY_FLAGS=0x00D73064, ROOTVNODE=0x02FDB510, KERNEL_PMAP_STORE=0x02D28B78, GVMSPACE=0x02D8A570 },
|
|
["9.xx"] = "9.05",
|
|
["10.xx"] = { ALLPROC=0x02765D70, SECURITY_FLAGS=0x00D79064, ROOTVNODE=0x02FA3510, KERNEL_PMAP_STORE=0x02CF0EF8, GVMSPACE=0x02D52570 },
|
|
["11.xx"] = { ALLPROC=0x02875D70, SECURITY_FLAGS=0x00D8C064, ROOTVNODE=0x030B7510, KERNEL_PMAP_STORE=0x02E04F18, GVMSPACE=0x02E66570 },
|
|
["12.xx"] = { ALLPROC=0x02885E00, SECURITY_FLAGS=0x00D83064, ROOTVNODE=0x030D7510, KERNEL_PMAP_STORE=0x02E1CFB8, GVMSPACE=0x02E7E570 },
|
|
["13.00"] = { ALLPROC=0x028C5E00, SECURITY_FLAGS=0x00D99064, ROOTVNODE=0x03133510, KERNEL_PMAP_STORE=0x02E74FF8, GVMSPACE=0x02ED6570 },
|
|
["13.20"] = { ALLPROC=0x028C5E00, SECURITY_FLAGS=0x00D99064, ROOTVNODE=0x03133510, KERNEL_PMAP_STORE=0x02E74FF8, GVMSPACE=0x02ED6570 }
|
|
}
|
|
|
|
local struct_offsets = {
|
|
-- proc
|
|
PROC_PID = 0xBC,
|
|
PROC_UCRED = 0x40,
|
|
PROC_FD = 0x48,
|
|
PROC_VM_SPACE = 0x200,
|
|
-- ucred
|
|
UCRED_CR_UID = 0x04,
|
|
UCRED_CR_RUID = 0x08,
|
|
UCRED_CR_SVUID = 0x0C,
|
|
UCRED_CR_NGROUPS= 0x10,
|
|
UCRED_CR_RGID = 0x14,
|
|
UCRED_CR_PRISON = 0x30,
|
|
UCRED_CR_SCEAUTHID = 0x58,
|
|
UCRED_CR_SCECAPS0 = 0x60,
|
|
UCRED_CR_SCECAPS1 = 0x68,
|
|
UCRED_CR_SCEATTRS = 0x83,
|
|
-- filedesc
|
|
FILEDESC_OFILES = 0x00,
|
|
FDESCENTTBL_HDR = 8,
|
|
FILEDESCENT_SIZE= 0x30,
|
|
-- fd
|
|
FD_RDIR = 0x10,
|
|
FD_JDIR = 0x18,
|
|
KQ_FDP = 0xA8,
|
|
KL_LOCK = 0x68,
|
|
-- net
|
|
INPCB_PKTOPTS = 0x120,
|
|
IP6PO_RTHDR = 0x70,
|
|
-- pipe sigio
|
|
PIPE_SIGIO = 0xD8,
|
|
-- pmap
|
|
PMAP_CR3 = 0x28,
|
|
PMAP_PML4 = 0x20,
|
|
-- gpu vmspace
|
|
SIZEOF_GVMSPACE = 0x100,
|
|
GVMSPACE_START_VA = 0x08,
|
|
GVMSPACE_SIZE = 0x10,
|
|
GVMSPACE_PAGE_DIR = 0x38,
|
|
TARGET_ID_REL = 0x09,
|
|
QA_FLAGS_REL = 0x24,
|
|
UTOKEN_REL = 0x8C,
|
|
}
|
|
|
|
local function resolve_entry(key)
|
|
local entry = fw_offsets[key]
|
|
for _ = 1, 5 do
|
|
if type(entry) ~= "string" then break end
|
|
entry = fw_offsets[entry]
|
|
end
|
|
return type(entry) == "table" and entry or nil
|
|
end
|
|
|
|
function get_offsets(fw_version)
|
|
local major, minor = fw_version:match("(%d+)%.(%d+)")
|
|
if not major then return nil end
|
|
|
|
local exact_key = tostring(tonumber(major)) .. "." .. minor
|
|
local entry = resolve_entry(exact_key)
|
|
|
|
if not entry then
|
|
entry = resolve_entry(tostring(tonumber(major)) .. ".xx")
|
|
end
|
|
|
|
if not entry then return nil end
|
|
|
|
local OFF = {}
|
|
for k, v in pairs(entry) do OFF[k] = v end
|
|
for k, v in pairs(struct_offsets) do OFF[k] = v end
|
|
return OFF
|
|
end |