Use xxd and remove python scripts.

This commit is contained in:
Andy Nguyen
2026-05-12 23:14:30 +02:00
parent f87828b554
commit d66ed49866
6 changed files with 11 additions and 102 deletions

View File

@@ -15,7 +15,7 @@ endif
CFLAGS = -O2 -fno-stack-protector -ffreestanding -nostdlib -m64 -I$(PS5_PAYLOAD_SDK)/target/include
LDFLAGS = -T linker.ld
TARGET = shellcode_kernel.elf
TEXT_BIN = shellcode_text.bin
TEXT_BIN = shellcode_kernel.bin
SRC = main.c utils.c kernel_code.c
OBJ = $(SRC:.c=.o)
@@ -37,4 +37,4 @@ clean:
rm -f $(OBJ) $(TARGET) $(TEXT_BIN) $(dump)
$(dump): $(TEXT_BIN)
python3 bin_to_c_kernel.py $(TEXT_BIN)
xxd -i $(TEXT_BIN) > $(dump)

View File

@@ -1,48 +0,0 @@
import sys
import os
def create_shellcode_header(input_file_text):
if not os.path.exists(input_file_text):
print(f"Error: {input_file_text} not found.")
return
# Read binary data_text
with open(input_file_text, "rb") as f:
data_text = f.read()
# Hardcoded output name
output_name = "shellcode_kernel.h"
array_name_text = "shellcode_kernel_text"
with open(output_name, "w") as f:
f.write(f"// Generated from {input_file_text}\n")
f.write(f"#ifndef SHELLCODE_KERNEL_H\n")
f.write(f"#define SHELLCODE_KERNEL_H\n\n")
f.write(f"#include <unistd.h>\n\n")
f.write(f"#include \"shellcode_kernel_args.h\"\n\n")
f.write(f"uint8_t {array_name_text}[] = {{\n ")
for i, byte in enumerate(data_text):
f.write(f"0x{byte:02X}")
if i < len(data_text) - 1:
f.write(", ")
# New line every 12 bytes
if (i + 1) % 12 == 0:
f.write("\n ")
f.write(f"\n}};\n\n")
f.write(f"uint64_t {array_name_text}_len = {len(data_text)};\n\n")
f.write(f"#endif // SHELLCODE_KERNEL_H\n")
print(f"Done! Created {output_name} ({len(data_text)} bytes)")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python bin_to_c_kernel.py <text.bin>")
else:
create_shellcode_header(sys.argv[1])

View File

@@ -1,8 +1,10 @@
#include "kernel_code.h"
#include "../include/config.h"
#include "../shellcode_hypervisor/shellcode_hypervisor.h"
#include "../shellcode_hypervisor/shellcode_hypervisor_args.h"
#include "shellcode_kernel_args.h"
#include "utils.h"
#include <unistd.h>
#define DIG1TRANSMITTERCONTROL 0x4c
@@ -118,8 +120,8 @@ static void patch_hv(void) {
}
// Install hv_shellcode 2
memcpy((void *)PHYS_TO_DMAP(cave_hv_code), shellcode_hypervisor,
shellcode_hypervisor_len);
memcpy((void *)PHYS_TO_DMAP(cave_hv_code), shellcode_hypervisor_bin,
shellcode_hypervisor_bin_len);
// Jump to shellcode final identity mapping
uint8_t shellcode_jmp[] = {