리눅스 elf 파일이 실행이 안될때
글쓴이: declspec / 작성시간: 토, 2012/07/28 - 3:01오전
root@declspec-desktop:~# file 242
242: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
root@declspec-desktop:~# ./242
bash: ./242: No such file or directory
root@declspec-desktop:~# ls -al 242
-rwxrwxrwx 1 root root 5163 2012-07-28 02:59 242
root@declspec-desktop:~#
242 라는 ELF 파일이 있습니다
권한을 777 을 주고 루트로 실행하려는데도 실행이 안됩니다
bash: ./242: No such file or directory
이거만 나오네요...
어떻게 된걸까요?, 참고로 다른 서버에서는 잘 실행되던 파일입니다
gdb 로 열고 disassemble 도 되는데 gdb 상에서도 실행시키면
bash: ./242: No such file or directory
이게 뜨네요
원인이 뭘까요?
Forums:
shared lib이 없는 건 아닌가요
shared lib이 없는 건 아닌가요
readelf 로 .interp 섹션에 나와있을
readelf 로 .interp 섹션에 나와있을 동적링커가 시스템에 있는지 확인해보세요..
Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.
감사합니다
감사합니다!
readelf -l ./242
하니까 INTERP 부분에 대해서
ld-linux.so.0 을 요구하는거같네요
그런데 ld-linux.so.2 만 있어서
안됬던거같네요
자세하게 뭐가 어떻게되는건지 아직 잘 모르겠지만
일단 실마리는 잡은거같습니다~
자기실력이 좋다고 느껴지는건 공부를 안하고 있다는 신호.
x86
시스템이 64bit인데 32bit 프로그램을 실행시키면 가끔씩 안되는 경우가 있더군요
ldd ./242 해서 필요한 라이브러리 다 있는지
ldd ./242 해서 필요한 라이브러리 다 있는지 확인해보시면 뭔가 없을겁니다.
윗분들 말씀도 결국 이것과 같은 내용입니다.
감사합니다만..
ldd ./242
linux-gate.so.1 => (0x007af000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x005a9000)
/lib/ld-linux.so.0 => /lib/ld-linux.so.2 (0x00ed0000)
이렇게 되는데 없는건 없는거아닌가요?
오직 libc 만 쓰는거같은데..
그리고 같은 바이너리를 또 다른 서버에서도 실행해도 안되서(오리지날 서버에서만 실행됨)
거기서도 ldd 해보니
/usr/bin/ldd: line 1: ./242: No such file or directory
여긴또 이렇게 나오네요... ㅠㅠ
자기실력이 좋다고 느껴지는건 공부를 안하고 있다는 신호.
음 ..
먼저 두 서버의 파일이 동일한지 cksum 이나 sha1sum 으로 체크해 보세요.
어떻게 복사하셨는지 모르겠지만, 혹시 ftp 로 복사하면서 ascii 모드로 전송한 건 아닌지 확인해 보시구요.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
댓글 달기