README.md

This commit is contained in:
q3aql 2024-07-07 22:07:35 +02:00
parent 989550aea1
commit 365cd911f2

View File

@ -1,32 +1,29 @@
`packelf` was inspired by [the idea of Klaus D](https://askubuntu.com/a/546305). It is used to pack a ELF program and its dependent libraries into a single executable file. `packelf` was inspired by [the idea of Klaus D](https://askubuntu.com/a/546305). It is used to pack a ELF program and its dependent libraries into a single executable file.
## Usage (packelf): ## Usage packelf:
``` ```
Usage: ./packelf.sh <ELF_SRC_PATH> <DST_PATH> [ADDITIONAL_LIBS] Usage: ./packelf.sh <ELF_SRC_PATH> <DST_PATH> [ADDITIONAL_LIBS]
``` ```
First, pack a ELF program. For example, you can pack `ls` like this: Example:
``` ```
# ./packelf.sh /bin/ls /root/ls # ./packelf.sh /usr/bin/mpv mpv-x86_64.AppRun
tar: Removing leading `/' from member names
'/bin/ls' was packed to '/root/ls'
Just run '/root/ls ARGS...' to execute the command.
Or run 'PACKELF_UNPACK_DIR=xxx /root/ls' to unpack it only.
``` ```
You can execute the packed program directly: Note: Every time the packed program is executed, an internal unpacking operation is performed automatically, which results in a slower startup of the program.
``` ## Extract without running:
# /root/ls -lh /root/ls
-rwxr-xr-x 1 root root 1.3M May 21 08:35 /root/ls
```
However, every time the packed program is executed, an internal unpacking operation is performed automatically, which results in a slower startup of the program. You can extract the files of a created package without executing it with the following command:
## USAGE EXTRA TOOLS: ```
# ./<package> --packelf-extract
```
## Usage Extra Tools:
``` ```
Usage: ./packelf-copylibs.sh <ELF_SRC_PATH> <PATH_TO_COPY_LIBRARIES> Usage: ./packelf-copylibs.sh <ELF_SRC_PATH> <PATH_TO_COPY_LIBRARIES>