본문 바로가기
Study/Python

[Python] resolve "failed to create process." issue

by Becoming a Hacker 2021. 11. 5.
반응형

Offline에서 Python Package를 다운로드 받으려고 시도했으나 어떤 이유인지 일부 Package(Frida)는 설치가 되지 않았습니다. 그래서 최후의 방법으로 Python 폴더를 통째로 옮기려고 했으나 "failed to create process."라는 에러를 볼 수 있었습니다.

I tried to download Python Package from Offline, but for some reason, some packages (Frida) were not installed. So, as a last resort, I tried to move the entire Python folder, but I got an error saying "failed to create process."

 

이 에러가 발생하는 이유는 Python\Scripts 경로의 파일들에서 python.exe의 경로가 설치했던 경로로 하드코딩되어 있었기 때문입니다.

The reason for the error is python.exe path in the file. The Python path was hard-coded as the path of initial installation.

Pyhton Path was Hard-Coded

 

정상적인 실행을 위해 하드코딩된 경로를 상대 경로로 변경하였습니다.

For normal execution, I Changed Hard-Coded Python Path to Relative Path.

Chagned Python Path

 

이후, 실행이 불가능하던 Pyhton Package인 Frida를 실행할 수 있었습니다.

After that, Frida, a Pyhton Package that was not executable, was able to be executed.

executed Frida

 

Automation Code

import os, sys

if (len(sys.argv)!=2):
    print("Please Input Python Scripts Path")
    exit(0)

file_path = sys.argv[1]

file_list = os.listdir(file_path)
for file in file_list:
    print(file)
    f = open(f"{file_path}\\{file}", "rb")
    data = f.read()
    # relative Path1
    index1 = data.find(b"#!c:")+2
    # Not Found
    if(index1==1):
        f.close()
        continue
    # relative Path2
    index2 = data[index1:].find(b"python.exe")+index1
    # Replace String
    tmp = data[index1:index2]
    data = data.replace(tmp,len(tmp)*b"\x20")
    f.close()
    f = open(f"{file_path}\\{file}", "wb")
    f.write(data)
    f.close()

댓글