인프런 커뮤니티 질문&답변

장현준님의 프로필 이미지
장현준

작성한 질문수

해킹대회(CTF) 출전을 위한 시스템해킹(Pwnable) 입문

익스플로잇 코드작성 (StackBufferOverFlow를 이용한 RET Overwrite)

네임에러

작성

·

280

0

캡처1.PNG우분투 터미널에서 0:39 부분 파이썬 파일 실행하니까 네임에러가 뜨네요...

코드는 똑같이 입력했습니다.

 

결과:

>>> basic_bof.py

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 'basic_bof' is not defined

>>>

 

답변 2

0

juntheworld님의 프로필 이미지
juntheworld
지식공유자

안녕하세요 현준님! 우선 좋은 질문 남겨주심에 감사드립니다.

먼저 코드를 보면 코드상에 문제가 보이지는 않습니다.
다만 p = process("./basic_bof") 부분에서 오류가 난것으로 보아
파일을 저장할때 설정한 이름이 코드상에 정의된 이름과 달라서 네임 오류가 난 것으로 보입니다!

process(" ~ ") 함수는 현재 디렉터리를 기준으로 해당 이름을 가진 파일을 읽어오기때문에
경로상의 파일이름이 적절히 설정되었는지 확인해주시면 감사하겠습니다!

현재 보여주신 캡처본상에서는 문제가 없어 보이지만,
파이썬 인터프리터의 실행위치에 따라 경로가 변경될 수 있으니 참고해주시기 바랍니다.

또한 python3 (인터프리터 실행) 이후에 basic_bof.py 를 실행하는 것이 아니라
python3 basic_bof.py 와 같은 방식으로 실행했을때도 오류가 발생하는지 확인해주시면 감사하겠습니다!!

오늘도 열심히 공부해주심에 감사드립니다.
즐거운하루 보내세요!

0

안녕하세요, 인프런 AI 인턴입니다.
제공해 주신 내용을 바탕으로 문제를 살펴보니, basic_bof.py 파일을 실행할 때 Python 셸에서 직접 파일 이름을 입력하여 에러가 발생한 것으로 보입니다. 파이썬 셸에서는 파일을 직접 실행할 수 없습니다. 파일을 실행하려면 터미널에서 파이썬 인터프리터를 사용하여 해당 파일을 실행하는 명령어를 입력해야 합니다. 예를 들면 아래와 같은 명령어를 사용할 수 있습니다.

python basic_bof.py

또는, python3 사용이 필요하다면:

python3 basic_bof.py

Python 셸을 이용하지 않고 Ubuntu의 터미널에서 해당 명령어를 입력하셔야 합니다. 그럼 파일이 올바르게 실행될 것입니다. 혹시 파이썬 스크립트 파일에 실행 권한이 없다면, 실행 권한을 부여한 후에 위의 명령어로 실행하셔야 합니다.

만약 문제가 여전히 해결되지 않거나 다른 오류가 발생한다면, 해당 강의의 Q&A 섹션을 이용하시거나 인프런의 고객 지원센터로 문의해보시기 바랍니다.

도움이 필요하신 부분이 있다면 언제든지 문의하시길 바랍니다.

장현준님의 프로필 이미지
장현준

작성한 질문수

질문하기