mirror of
https://github.com/Karmaz95/Snake_Apple.git
synced 2026-03-30 14:00:16 +02:00
Generate Mach-O files with ARM64 headers for specified file types.
This commit is contained in:
43
I. Mach-O/python/create_macho_samples.py
Normal file
43
I. Mach-O/python/create_macho_samples.py
Normal file
@@ -0,0 +1,43 @@
|
||||
import struct
|
||||
|
||||
# Mach-O magic number for 64-bit
|
||||
MAGIC_64 = 0xFEEDFACF
|
||||
|
||||
# Correct file type codes for each specified Mach-O file type
|
||||
file_types = {
|
||||
"FVMLIB": 0x3, # MH_FVMLIB
|
||||
"PRELOAD": 0x5, # MH_PRELOAD
|
||||
"CORE": 0x4, # MH_CORE
|
||||
"DYLIB_STUB": 0x9, # MH_DYLIB_STUB
|
||||
}
|
||||
|
||||
def create_macho_file(file_type_name, file_type_code):
|
||||
# Updated settings for ARM64 architecture
|
||||
magic = MAGIC_64
|
||||
cpu_type = 0x100000C # CPU_TYPE_ARM64
|
||||
cpu_subtype = 0x0 # ARM64 subtype
|
||||
ncmds = 0 # Number of load commands
|
||||
sizeofcmds = 0 # Total size of all load commands
|
||||
flags = 0x0 # No special flags
|
||||
|
||||
# Pack the Mach-O header for a 64-bit file
|
||||
header = struct.pack(
|
||||
"<Iiiiiii", # Format for Mach-O 64-bit header
|
||||
magic,
|
||||
cpu_type,
|
||||
cpu_subtype,
|
||||
file_type_code,
|
||||
ncmds,
|
||||
sizeofcmds,
|
||||
flags
|
||||
)
|
||||
|
||||
# Write the header to a new file
|
||||
with open(f"{file_type_name}.macho", "wb") as f:
|
||||
f.write(header)
|
||||
f.write(b'\x00' * 1024) # Add some padding as placeholder content
|
||||
|
||||
# Generate files with the correct headers
|
||||
for name, code in file_types.items():
|
||||
create_macho_file(name, code)
|
||||
print(f"Created {name}.macho with ARM64 and file type {hex(code)}")
|
||||
Reference in New Issue
Block a user