# default local/user paths Windows platforms PY_WIN_LOCAL_DEFAULTS = set()
PY3_RELEASES = ["37", "38", "39", "310"]
for py_rel in PY3_RELEASES: PY_WIN_DEFAULTS.add("C:\\Program Files\\Python%s" % py_rel) PY_WIN_DEFAULTS.add("C:\\Program Files (x86)\\Python%s-32" % py_rel) PY_WIN_LOCAL_DEFAULTS.add("%%LOCALAPPDATA%%\\Programs\\Python\\Python%s" % py_rel) PY_WIN_LOCAL_DEFAULTS.add("%%LOCALAPPDATA%%\\Programs\\Python\\Python%s-32" % py_rel)
# default paths Linux/Mac OS X platforms PY_LINUX_DEFAULTS = ("/usr/bin",)
# retsync plugin needs a Python interpreter to run broker and dispatcher def get_python_interpreter(): # when available, use spawn module to search through PATH if spawn_module: interpreter = distutils.spawn.find_executable('python') if interpreter: # discard Universal Windows Platform (UWP) directory parts = os.path.split(interpreter) if (len(parts) > 1 and parts[-2].endswith('WindowsApps')): rs_log("Warning, python.exe was detected but is installed as a Windows App (UWP).\n" " Dir: \"%s\"\n" " This plugin requires a Windows desktop program in order to work properly.\n" " Searching for other installations.\n" % interpreter) else: return interpreter
# otherwise, look in various known default paths if sys.platform == 'win32': PYTHON_BIN = 'python.exe' PYTHON_PATHS = PY_WIN_DEFAULTS
# add paths from %LOCALAPPDATA% for ladp in PY_WIN_LOCAL_DEFAULTS: PYTHON_PATHS.add(os.path.expandvars(ladp))
上面可以看到他會先抓 python27 路徑,然後底下 if 判斷事先看是不是 win32 之後看是否是 linux 不然就跳錯誤
所以像我的 python 3.13 就出問題,可以直接寫死自己的 python 位置即可
我的作法很簡單,直接在 line 213 那邊加上一個 return 放自己的 python 位置,如下
1 2 3
def get_python_interpreter(): # when available, use spawn module to search through PATH return "C:\\Users\\user\\Desktop\\my_tool\\Python313_7\\python.exe"
上面 return 的是我的 python 位置,就放在函數: get_python_interpreter() 裡面的第一個,其他都不用動,這樣 ida pro 的 Plugin 我執行就正常
環境資訊:
windows 11 x64
ida pro 9.1
python 3.13
date: 2025.09.24
x64dbg 就很簡單,單純把 plugin 放到對應資料夾即可
但 x64dbg 目前作法是要自己開 vs 編譯,或有找到他人編譯好的 (時間: 2021 年),我自己測試是可以