ida 使用虚拟环境

https://docs.hex-rays.com/user-guide/idalib#installation-for-python

https://community.hex-rays.com/t/using-a-virtualenv-for-idapython/261/2

uv python install 3.12

./idapyswitch --force-path /Users/cyril/.local/share/uv/python/cpython-3.12.9-macos-aarch64-none/lib/libpython3.12.dylib
code ~/.idapro/idapythonrc.py

添加下面内容:

# via: https://github.com/eset/ipyida/blob/master/README.virtualenv.adoc
def activate_virtualenv(virtualenv_path: Path):
    for bindir in ("Scripts", "bin"):
        activate_this_path = virtualenv_path / bindir / "activate_this.py"
 
        if not activate_this_path.exists():
            continue
 
        if not activate_this_path.is_file():
            continue
 
        exec(activate_this_path.read_text(), dict(__file__=str(activate_this_path)))
        print("activated virtual environment: " + str(virtualenv_path))
        break
 
    else:
        raise ValueError('Could not find "activate_this.py" in ' + str(virtualenv_path))
 
 
IDAUSR = Path(idaapi.get_user_idadir())
activate_virtualenv(IDAUSR / "venv")

之后要安装包,你可以选择激活环境( source ~/.idapro/venv/bin/activate.fish )或直接调用 pip: ~/.idapro/venv/bin/pip install foo 。


找不到动态库

  1. 找到你虚拟环境的 site-packages 路径:
/Users/cyril/.idapro/venv/lib/python3.9/site-packages/
  1. 创建一个叫 sitecustomize.py 的文件(如果没有):
code /Users/cyril/.idapro/venv/lib/python3.9/site-packages/sitecustomize.py
  1. 编辑内容,添加这几行:
import os 
os.environ["DYLD_FALLBACK_LIBRARY_PATH"]="/Users/cyril/.idapro/keystone/build/llvm/lib"