본문 바로가기
Rev/Info

Python - Subprocess Error

by zooonique 2022. 3. 20.
반응형
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\Python27\lib\subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
  File "c:\Python27\lib\subprocess.py", line 679, in __init__
    errread, errwrite)
  File "c:\Python27\lib\subprocess.py", line 896, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

파이썬으로 간단한 스크립트를 만들때 subprocess.py의 Popen함수를 자주 사용한다.

 

그럴때마다 이따금씩 위와 같은 에러를 만나게되는데, 내가 해결한 방법 3가지를 적어본다.

 

 

① ComSpec 환경변수 조정

stackoverflow에서도 제시하는 방법이다. 나는 Comspec 변수 값을 여러번 쓸데없이 편집해서, 이 부분도 모두 삭제후 다시 편집해줬다.

(유효한지는 솔직히 모르겠다.)

 

shell=Ture 파라미터 삽입

초기 코드는 process = subprocess.Popen([ O O O], cwd = 경로) 의 형태로 되어있었다.

여기서 shell=True의 인자를 추가해서 해결했다. 

shell 인자는 기본적으로 False로 설정되어있는데, 프로그램 실행하면서 shell을 사용할지 말지를 결정하는 인자이다.

 

하지만 shell = True로 실행하면, 유효성 검증 없이 실행이 되서 shell injection 에 취약하게 된다고 하니, 유의하는게 좋을 것 같다.

 

③ 재부팅

이 모든 과정을 했는데도 아무런 변화가 없으면, 재부팅을 해보고 다시 시도해보자.

 

나는 위 두 과정을 거치고나서, 재부팅을 통해 해결했다.

 

- 킹부팅 -

 

 

 

반응형

'Rev > Info' 카테고리의 다른 글

How to Debug  (0) 2022.03.31
랜섬웨어 주요 암호화 알고리즘  (0) 2022.03.22
[Malware] Cobalt Strike  (0) 2022.02.25
Find Windows OS (ASLR)  (0) 2022.02.21
[Malware] Agent Tesla  (0) 2021.12.30