load macho files in memory without touching the Disk
<Bare Bones>
for Mac OS
main & libtest.dylib
is 8kb
<each>
only .< load macho from memory with socket connection >
The macho loader requires access to some system functions
(e.g., NSCreateObjectFileImageFromMemory
, NSLinkModule
)
we first walk to the very top of the stack.
We then start walking downwards on the stack and we inspect
every pointer we find.
The trick is that the offset inside of libdyld.dylib must be
present as it's placed there by the dynamic linker as the
return function when main returns.
We find the offset, we resolve the functions and from then on,
it's standard loading of macho bundle .
"Core/loadfunctions.pas"
in loadall()
../Build.sh
after installing FreePascalnode server.js
./main
Coldzer0 [at] protonmail.ch
>