AiPE

[SecretMode GUI] 1. GoodbyeDPI 관리자 권한 요청 실행 본문

[XiBBaL] Development Project/SecretMode GUI

[SecretMode GUI] 1. GoodbyeDPI 관리자 권한 요청 실행

Oshimaker XiBBaL 2022. 12. 10. 16:09
반응형

https우회를 위해 Goodbyedpi.exe실행

단, Goodbyedpi.exe는 실행 시 관리자권한을 요청하게 되어 있음

 

import subprocess 
subprocess.call(["C:\\파일경로입력"])

으로 서브쉘에서 호출해 실행하기를 시도.

 

 

 

[오류1] 20221129

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 발생

 

 

[해결1] 20221129

\n 등 백슬래시(\)가 탈출기호로 쓰여서 발생하는 문제.

1. 역슬래시(\) 기호를 슬래시(/)로 대체해주었더니 해결

2. 1번이 싫으면 \를 \\로 치환해도 됨,

(실제로 macOS나 LinuxOS에서는 \기호 대신 /을 쓴다고 함.. 왜 윈도우만 이리 만들었는지 알 수 없다.)

앞으로 특정 경로를 입력할때 주의할 필요 있음.

 

 

 

 

[오류2] 20221129

서브쉘에서 호출해 실행할 경우

OSError: [WinError 740] 요청한 작업을 수행하려면 권한 상승이 필요합니다

"OSError: [WinError 740] 요청한 작업을 수행하려면 권한 상승이 필요합니다" 발생.

GoodbyeDpi가 실행 시 관리자권한을 요구하기때문에 발생하는 오류로 보임

 

 

[해결2] 20221129

서브쉘에서 호출하는 방식 대신 아래와 같이 import os 사용한 다른 방식 시도

import os 
os.system("C:/파일경로") #GoodbyeDPI실행 (관리자권한 자동으로 요청)

위 결과 관리자권한을 요청하는 창이 뜨면서 정상적으로 실행 됨.

 

다만 뜨는 관리자권한 창을 눌러주어야하는 귀찮음이 있으므로 관리자권한을 자동으로 승인하는 방법도 고민해봐야할듯.

 

 

 

 

[오류3.1] 20221130

절대경로 ("C:/파일경로" 의 형태)로 GoodByeDPI 프로그램을 호출할 경우 파일경로가 바뀔때마다 코드를 수정해야 함.

내가 이 프로그램을 만들어 배포했을때 사용자가 다른 경로에 파일을 두면 실행이 불가함.

따라서 GoodbyeDPI와 Secretmode GUI 실행파일을 같은 폴더 내에 둔 뒤 그때그때 경로를 호출해 실행하는 코드 필요.

 

[해결3.1] 20221130

def OpenGDPI():
    from pathlib import Path
    import os

    GDPIpath = Path.cwd()
    os.system(str(GDPIpath) + "/" + "goodbyedpi.exe") #GoodbyeDPI실행 (관리자권한 자동으로 요청)

"pathlib"이라는 라이브러리를 사용해 현재 .Py파일의 경로를 붙여넣고 그 경로에 / 기호와 GoodbyeDPI.exe 문자열을 추가하는 방식으로 진행했다.

절대경로가 바뀌어도 정상작동하는 것을 확인했다.

 

 

 

 

[오류3.2] 20221130

위 파일을 바탕화면에 놓고 실행하면 경로를 제대로 읽지 못하는 문제가 발생한다.

 

 

[해결3.2] 20221130

'C:\Users\admin\OneDrive\바탕'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.

'C:\Users\admin\OneDrive\바탕'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.

위 문구에서 "바탕 화면"이라는 글자가 띄어쓰기로 인해 "바탕"이라고 잘려서 인식되는 것을 확인할 수 있었다.

바탕화면에 안 두고 쓰면 된다. 문자열을 읽어서 합치는 방식이 아니라 한번에 경로를 읽을 수 있는지 고민해봐야겠다.

반응형