4 ms·
How clean is it? Can you simply exec the result? Glibc used to have unexec(), which is fairly old, but it was removed because nobody used it (except Emacs, and
by klodolph 7y ago
How clean is it? Can you simply exec the result?
Glibc used to have unexec(), which is fairly old, but it was removed because nobody used it (except Emacs, and there were better solutions to the problem it was solving).
- mmoez 7y ago> How clean is it? It's as clean as any official Win32 API which uses their privilege system to restrict/allow accesses to each and any bit of information on the process state and/or memory. > Can you simply exec the result? This is possible using CreateThread() [1] which creates a remote thread inside another process execution context. [1] https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createthread https://docs.microsoft.com/en-us/windows/win32/api/processth... > Glibc used to have unexec() My understanding is that unexec() was more about making a snapshot of the whole process state to an executable on disk.
- hackworks 7y agoThat is my understanding too. Solaris had a flag for dldump (https://docs.oracle.com/cd/E19455-01/806-0627/6j9vhfmop/index.html https://docs.oracle.com/cd/E19455-01/806-0627/6j9vhfmop/inde...). Emacs moved to a portable dumper (maybe inspired from XEmacs)
- rjsw 7y agoEmacs had its own unexec().