본문 바로가기

Programming

Linux 에서 실행파일 인식을 못할때

chmod 777 을 해도 분명 실행파일인데 실행파일이 아닌것처럼 인식되는것은 보통

ld.so 를 못찾아서이다.


hexdump 를 해보면

root@ubuntu:/home/meltdown/v1# hexdump -C ls | more

00000000  7f 45 4c 46 01 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|

00000010  02 00 28 00 01 00 00 00  d9 b6 00 00 34 00 00 00  |..(.........4...|

00000020  08 04 01 00 02 00 00 05  34 00 20 00 09 00 28 00  |........4. ...(.|

00000030  1c 00 1b 00 01 00 00 70  e8 fc 00 00 e8 7c 01 00  |.......p.....|..|

00000040  e8 7c 01 00 30 00 00 00  30 00 00 00 04 00 00 00  |.|..0...0.......|

00000050  04 00 00 00 06 00 00 00  34 00 00 00 34 80 00 00  |........4...4...|

00000060  34 80 00 00 20 01 00 00  20 01 00 00 05 00 00 00  |4... ... .......|

00000070  04 00 00 00 03 00 00 00  54 01 00 00 54 81 00 00  |........T...T...|

00000080  54 81 00 00 27 00 00 00  27 00 00 00 04 00 00 00  |T...'...'.......|

00000090  01 00 00 00 01 00 00 00  00 00 00 00 00 80 00 00  |................|

000000a0  00 80 00 00 1c fd 00 00  1c fd 00 00 05 00 00 00  |................|

000000b0  00 80 00 00 01 00 00 00  e4 fe 00 00 e4 fe 01 00  |................|

000000c0  e4 fe 01 00 e4 03 00 00  50 10 00 00 06 00 00 00  |........P.......|

000000d0  00 80 00 00 02 00 00 00  f0 fe 00 00 f0 fe 01 00  |................|

000000e0  f0 fe 01 00 10 01 00 00  10 01 00 00 06 00 00 00  |................|

000000f0  04 00 00 00 04 00 00 00  7c 01 00 00 7c 81 00 00  |........|...|...|

00000100  7c 81 00 00 44 00 00 00  44 00 00 00 04 00 00 00  ||...D...D.......|

00000110  04 00 00 00 51 e5 74 64  00 00 00 00 00 00 00 00  |....Q.td........|

00000120  00 00 00 00 00 00 00 00  00 00 00 00 06 00 00 00  |................|

00000130  04 00 00 00 52 e5 74 64  e4 fe 00 00 e4 fe 01 00  |....R.td........|

00000140  e4 fe 01 00 1c 01 00 00  1c 01 00 00 04 00 00 00  |................|

00000150  01 00 00 00 2f 6c 69 62  2f 61 72 6d 2d 6c 69 6e  |..../lib/arm-lin|

00000160  75 78 2d 67 6e 75 65 61  62 69 68 66 2f 6c 64 2d  |ux-gnueabihf/ld-|

00000170  6c 69 6e 75 78 2e 73 6f  2e 33 00 00 04 00 00 00  |linux.so.3......|

00000180  10 00 00 00 01 00 00 00  47 4e 55 00 00 00 00 00  |........GNU.....|


바이너리 초반부에 프로그램이 참조하는 ld.so 의 경로가 나타나는데, 저부분이 시스템에따라 안맞는경우 실행파일 인식이 안되므로, 이런경우 심볼릭링크로 맞춰주면 해결된다.