This is a discussion on Change loader for programs within the Debian Linux Users forum forums, part of the Debian Linux category; --> Hello world, I would like to ask a rookie question about the possibility to reassign by substitution a new ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hello world, I would like to ask a rookie question about the possibility to reassign by substitution a new loader (/lib/ld-linux.so.2 or alike) to each program. In fact, I know that it's possible to launch it for example echo by using /new/path/lib/ld-2.3.2 /new/path/bin/echo but I would like to do it without specifiing boot loader. I've investigate in elf tools and I've found objdump and objcopy. I discover by objdump that the loader is specified in .interp section. So I try the following commands cd /tmp objcopy --remove-section=.interp /bin/echo /tmp/echo echo -n "/lib/ld-linux.so.2" > foo objcopy --add-section .interp=foo /tmp/echo /tmp/echo.new and, unfortunately: ../echo.new bash: ./echo.new: cannot execute binary file With objdump, here are my output : $ objdump -Sl -j .interp /tmp/echo.new /tmp/echo.new: format de fichier elf32-i386 Déassemblage de la section .interp: 00000000 <opterr-0x804c460>: 0: 2f das 1: 6c insb (%dx),%es 2: 69 62 2f 6c 64 2d 6c imul $0x6c2d646c,0x2f(%edx),%esp 9: 69 6e 75 78 2e 73 6f imul $0x6f732e78,0x75(%esi),%ebp 10: 2e cs 11: 32 .byte 0x32 $ objdump -Sl -j .interp /bin/echo /bin/echo: format de fichier elf32-i386 Déassemblage de la section .interp: 08048114 <.interp>: 8048114: 2f das 8048115: 6c insb (%dx),%es 8048116: 69 62 2f 6c 64 2d 6c imul $0x6c2d646c,0x2f(%edx),%esp 804811d: 69 6e 75 78 2e 73 6f imul $0x6f732e78,0x75(%esi),%ebp 8048124: 2e 32 00 xor %cs This changing loader property would help me to have an operational Debian system on a user (non chroot account). Thanks for answer EQ -- To UNSUBSCRIBE, email to debian-user-REQUEST@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org |