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