우분투에서 파일이 있음에도 실행이 안됩니다.
글쓴이: ha3k1e / 작성시간: 일, 2017/10/22 - 10:50오후
우분투 초보라서 잘 모르겠습니다.. 도움 부탁드립니다.
@ubuntu:~/rever$ ll -rw-rw-r-- 1 hkkim hkkim 164 Oct 22 06:26 hello.asm
이 상태에서, 어셈으로 코딩한 것을 실행 파일로 만들려고 합니다.
nasm -felf64 hello.asm && ld -I/lib/ld-linux.so.2 -lc --entry main hello.o
실행 결과 생긴 파일은,
@ubuntu:~/rever$ ll -rwxrwxr-x 1 hkkim hkkim 2872 Oct 22 06:47 a.out* -rw-rw-r-- 1 hkkim hkkim 164 Oct 22 06:26 hello.asm -rw-rw-r-- 1 hkkim hkkim 880 Oct 22 06:47 hello.o
여기서 a.out 뒤에 *이 붙는 것은 무슨 의미인가요..?
@ubuntu:~/rever$ ./a.out bash: ./a.out: No such file or directory
실행 시킬려고하면 이렇게 파일이 없다고 뜹니다.
그런데, objdump를 쓰면 또 읽힙니다..
@ubuntu:~/rever$ objdump -d a.out a.out: file format elf64-x86-64 Disassembly of section .plt: 0000000000400220 <printf@plt-0x10>: 400220: ff 35 7a 01 20 00 pushq 0x20017a(%rip) # 6003a0 <_GLOBAL_OFFSET_TABLE_+0x8> 400226: ff 25 7c 01 20 00 jmpq *0x20017c(%rip) # 6003a8 <_GLOBAL_OFFSET_TABLE_+0x10> 40022c: 0f 1f 40 00 nopl 0x0(%rax) 0000000000400230 <printf@plt>: 400230: ff 25 7a 01 20 00 jmpq *0x20017a(%rip) # 6003b0 <_GLOBAL_OFFSET_TABLE_+0x18> 400236: 68 00 00 00 00 pushq $0x0 40023b: e9 e0 ff ff ff jmpq 400220 <printf@plt-0x10> Disassembly of section .text: 0000000000400240 <main>: 400240: 68 b8 03 60 00 pushq $0x6003b8 400245: e8 e6 ff ff ff callq 400230 <printf@plt> 40024a: b8 01 00 00 00 mov $0x1,%eax 40024f: bb 00 00 00 00 mov $0x0,%ebx 400254: cd 80 int $0x80
Forums:
일단 file 뒤에 asterik가 붙는 것은
일단 file 뒤에 asterik가 붙는 것은
https://superuser.com/questions/178786/what-does-the-asterisk-mean-after-a-filename-when-you-type-ls-l
참고 하시면 됩니다. 쉽게 실행 파일임을 표시해 준다고 보시면 됩니다.
그리고, 증상은 실행만 안되는 것 같은데.. 혹시 마운트 옵션에 noexec 가 있지 않은지 확인해 보세요.
댓글 달기